Halide:将内存块复制到重叠位置(相同图像)

时间:2017-04-21 20:46:24

标签: halide

我需要将一个区域从纹理移动到另一个位置。如果这两个街区没有重叠,那里就没有问题了。我知道Halide是正确的解决方案但我无法弄清楚如何在写入重叠像素之前等待读取...我可以根据移动的方向以某种方式迭代,但我无法和找不到在哈利德表达的方法。 Halide能够理解这些微妙之处吗?

1 个答案:

答案 0 :(得分:1)

反向迭代的方法是反转RDom:

RDom range(0, width);
f(width - range.x) = g(width - range.x); // Copy value going from higher addresses to lower.

(为此提供语法糖已经在todo列表上了一段时间。我认为我们已经讨论了用于反转循环的调度指令。在这种情况下,你使用specialize来决定方向正确处理重叠并调度到适当的时间表。但是,目前从范围方法中减去的RDom可能是唯一的选择。)