我正在尝试更改实现的缓冲区布局。我了解 Halide 的目的是允许“一次”定义算法,然后能够分别更改计划和存储布局等内容。
我已经尝试my_output_function.reorder_storage(x,y,c)
(和排列x,y,c
);然而对于任何存储顺序,实现缓冲区的步幅保持不变(即布局不会改变)。
如果我在调用时更改尺寸顺序my_output_function.realize(width, height, channels)
,则代码不会编译,因为违反了某些边界条件。我需要更改算法定义,破坏卤化物的目的。
我应该怎么做才能改变输出布局?为什么不reorder_storage
影响输出?
谢谢你的帮助。