【发布时间】:2015-08-01 07:34:42
【问题描述】:
我正在浏览link提供的NVIDIA示例代码
在示例内核代码(文件oclReduction_kernel.c)中,reduce4 使用了
1) 展开和移除线程 id
2) 除此之外,代码使用块大小检查对本地内存中的数据求和。我认为在 OpenCL 中我们有 get_local_size(0/1) 来了解工作组的规模。块大小让我很困惑。
我无法理解上述两点。这些东西为什么以及如何帮助优化?任何关于 reduce5 和 reduce6 的解释都会有所帮助。
【问题讨论】:
-
docs.nvidia.com/cuda/samples/6_Advanced/reduction/doc/… 的演示文稿指的是 CUDA(诚然,我认为 OpenCL 示例基本上是通过尽可能将 CUDA 内核转换为 OpenCL 创建的),但它可能会带来一些见解,特别是关于进一步优化的 reduce5/reduce6 版本。
-
是的,他们只在 cuda 中。但它不回答任何问题
-
谢谢@Marco13 我在晚上错过了你的链接。可能是我困了:)