我如何处理OpenCL中的超大图像?

时间:2013-01-22 20:28:15

标签: opencl gpgpu pyopencl

我一直在研究PyOpenCL程序,该程序将接收OpenCL内核(代表图像过滤器)和图像并应用所述过滤器来生成输出图像。问题是我需要让这个程序在任何大小的图像上运行。

我之前使用Cloo(http://sourceforge.net/projects/cloo/)框架使用C#和OpenCL编写了类似的程序,但我想让它更具可移植性(因为Cloo框架无法运行)正确地在Linux上。)

现在,在我的C#实现中,我只是将图像分成块并在每个块上运行内核。我通过在内核中将图像处理为普通字节数组来实现这一点。但是,我现在遇到的问题是我在PyOpenCL实现中尝试使用image2d_t数据类型,我不知道如何将图像分成块并将它们传递给内核。

image2d_t类是否为返回的图像添加了填充(我需要进行后处理),或者它是否支持某种自动化方法来处理这个问题?

非常感谢任何能指引我正确方向的资源!

编辑:我想我应该提到我之所以这样做的原因是因为我使用当前构建遇到内存分配异常(因为图像太大)。

0 个答案:

没有答案