【问题标题】:How would I handle extra-large images in OpenCL?如何在 OpenCL 中处理超大图像?
【发布时间】:2013-01-24 02:19:01
【问题描述】:

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

我之前使用 Cloo (http://sourceforge.net/projects/cloo/) 框架使用 C# 和 OpenCL 编写了一个类似的程序,但我想让一些东西更便携(因为 Cloo 框架无法运行在 Linux 上正确)。

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

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

非常感谢任何可以为我指明正确方向的资源!

编辑:我想我应该提到我想要这样做的原因是因为我在当前构建中遇到了内存分配异常(因为图像太大)。

【问题讨论】:

  • “超大”有多大?
  • 大约 16000 x 9000 或更大的地方。

标签: opencl gpgpu pyopencl


【解决方案1】:

我设法通过使用 Python 图像库的裁剪和粘贴功能拆分图像来处理子图像并在处理后将它们替换为输出图像来解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    相关资源
    最近更新 更多