1

假设我想在两个图像之间进行操作(例如加法),其中图像 Img1 中的每个像素在图像 Img2 中都有一个对应的像素。对应向量存储在元组 Delta 中。基本上,是这样的:

Img(x, y) = Img1(x, y) + Img2(x + Delta[0](x, y), y + Delta[1](x, y));

这是一个内存收集操作。在 Halide 中描述这种模式的最佳方法是什么?如何安排它?

4

1 回答 1

0

真的没有一个很好的方法来安排它。即使存在收集指令,收集也很慢。您可能仍然希望在 x 上对其进行矢量化,以便使用矢量完成寻址数学和来自 Img1 和 Delta 的负载。我只是使用明显的东西:

Img.vectorize(x, 8).parallel(y, 4);
于 2017-03-18T00:59:06.840 回答