我需要访问图像中的非连续位置(n×n像素的滑动方形窗口,其中n> 5覆盖在SDTV和HDTV分辨率之间的图像上)。我想在Mac上使用OpenCL,但是当我在iMac上查询ATI 5670卡以获取CL_DEVICE_IMAGE_SUPPORT时,会返回CL_FALSE。我现在能想到的选择是
1)在Apple的OpenCL实现中使用2D数据缓冲区时,消耗GPU(或CPU)上不连续访问的成本。为我的2D数据缓冲区实现我自己的CLK_FILTER_LINEAR / CLK_ADDRESS_CLAMP_TO_EDGE版本。或者使用1D数据缓冲区。在任何一种情况下,内核都将从每个像素周围的-n // 2到n / 2访问内存位置,其中每个像素都是我的内核的get_global_id()。
2)将CPU设备用于图像(但是英特尔CPU在模拟图像支持方面“非常”慢,对吗?)
3)安装Windows?有谁知道Boot Camp是否包含允许Stream计算的驱动程序?或者使用rEFIt来运行linux?
是否有一个我忘记的选项,或者我只是坚持使用错误的工具来完成工作?