我正在努力优化可分离的图像缩小器。我的下一步是通过将所有必要的纹素读入本地存储器来减少相同纹素的多个采样(最近)。这开始有趣......
降尺度器具有多种功能,因此它可以将任何较大的尺寸缩小为任何较小的尺寸,甚至可以拍摄图像的各个部分并将其缩小为目标图像。因此,最终的分辨率分频器永远不是一个整数。大多数情况下,这将是3.97左右。这意味着:我不知道编译时该本地数组所需的大小。
对我而言,这意味着:在排队任务之前,我必须创建一个所需大小的本地mem对象。
我如何知道OpenCL将选择哪些工作组大小?
如果没有办法,是否有“最佳实践”来克服这个问题?
P.S。:我正在为OpenCL 1.1兼容性而写作。
答案 0 :(得分:1)
由于您正在使用图像,因此可以依赖纹理缓存而不是使用共享本地内存。