Halide::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(...) = ...