我想在我的 OpenCL 内核中优化我的本地内存访问模式。我在某处阅读了有关可配置本地内存的信息。例如。我们应该能够配置哪些数量用于本地内存,哪些数量用于自动缓存。
我还读到可以在此处为最新的 (Kepler) Nvidia 硬件选择存储体大小: http://www.acceleware.com/blog/maximizing-shared-memory-bandwidth-nvidia-kepler-gpus .这一点对于在本地内存中存储 double 值似乎非常关键。
Nvidia是否提供CUDA用户专属设置本地内存的功能?我找不到适用于 OpenCL 的类似方法。那么这可能是以不同的方式调用还是它真的不存在?
最佳答案
不幸的是,在使用 OpenCL 时无法控制 L1 缓存/本地内存配置。此功能仅由 CUDA 运行时提供(通过 cudaDeviceSetCacheConfig
或 cudaFuncSetCacheConfig
)。
关于cuda - 使用 Nvidia 平台为 OpenCL 配置本地(共享)内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25869334/