我读了关于在openCL(http://developer.amd.com/resources/documentation-articles/articles-whitepapers/opencl-optimization-case-study-simple-reductions/)中将1d数组减少到一个值的论文,我理解了关联运算符的概念。也应该可以将这个概念扩展到ONE 2d阵列。
但我的问题有些不同:我有大约1000张256x256像素的图像,每张16bit,我想总结所有这些图像,最后得到它们的平均图像。通常的GPU应该有足够的内存(~130Mb)来执行这项任务,但我真的不知道如何实现内核。
答案 0 :(得分:1)
正如1D问题扩展到2D,它也可以扩展到3D(这就是你所拥有的:1000x256x256)。
完全相同的原则适用: 1.尝试尽可能多地并行工作而不与其他工作组争用。 2.分阶段减少,以便每个都可以平行。
你可能会限制带宽,通过131 MB内存,但这不是一个真正的问题。只需编写内核即可进行合并读取以获得最佳性能。