【发布时间】:2014-07-26 14:08:00
【问题描述】:
我有一个处理 RGB 图像的内核。现在, 我一个接一个地获取每个通道,并在该通道上运行相同的内核
内核输入是一个全局内存缓冲区:数据以块的形式从全局内存中移动 缓存到本地内存中进行处理,然后存储到另一个全局内存中 缓冲区作为输出。
我正在考虑重构它以将所有三个通道存储在 RGBA 中 缓冲区,并同时对所有三个通道进行操作,使用向量 操作。我知道图像具有更好的空间缓存。
这个重构有什么缺点吗?我意识到我将不得不减少 每个块的像素数,因为我现在将有三倍的数量 数据。
谢谢!
【问题讨论】:
-
问题:您的 RGB 数据是如何布局的?平面还是交错?另外,你的目标是什么硬件?不同的硬件会有不同的特性。最后,您的过滤器使用多少 ALU?大型复杂过滤器还是小型简单过滤器?
-
谢谢,user2746401。我可以选择使用什么格式——如果我切换到图像,我想交错是要走的路。目前它是平面的。另外,我将瞄准 AMD Hawaii GPUS;以 290X 为例。此外,过滤器又大又复杂。
标签: opencl