打印循环嵌套卤化物::sum不是最优的,正如用教程写的那样。
这段代码为零初始化和求和提供了单独的循环。
Halide::Func f("f");
Halide::Var x("x");
Halide::RDom r(0, 3);
f(x) = Halide::sum(r + x);
f.print_loop_nest();
f.realize(10);
产出:
produce f:
for x:
produce sum:
for x:
sum(...) = ...
for x:
for r4:
sum(...) = ...
consume sum:
f(...) = ...
能融合这个循环吗?还是不影响性能?谢谢!
更新:熔断器如下:
produce f:
for x:
produce sum:
for x:
sum(...) = ...
for r4:
sum(...) = ...
consume sum:
f(...) = ...
发布于 2017-01-17 02:21:27
这是print_loop_nest令人困惑的情况。X上的内环大小是1,所以就消失了。编译后的循环嵌套就是您想要的。X上的外循环是一个非平凡的循环,所以这就是真正发生的事情:
produce f:
for x:
produce sum:
sum(...) = ...
for r4:
sum(...) = ...
consume sum:
f(...) = ...
https://stackoverflow.com/questions/41675911
复制相似问题