【问题标题】:Is CL_DEVICE_LOCAL_MEM_SIZE for the entire device, or per work-group?CL_DEVICE_LOCAL_MEM_SIZE 是针对整个设备还是针对每个工作组?
【发布时间】:2017-03-25 22:59:28
【问题描述】:

我不太清楚CL_DEVICE_LOCAL_MEM_SIZE的实际含义,是通过clGetDeviceInfo函数获取的。这个值是表示某个设备上所有可用本地内存的总和,还是表示某个工作组的本地内存共享上限?

【问题讨论】:

  • 谢谢!!我对OpenCL的基本概念还不是很清楚,应该深入了解!

标签: parallel-processing opencl gpgpu


【解决方案1】:

TL;DR:每个单个处理单元,因此也是分配给一个工作单元的最大值。

此值是设备中每个计算单元上可用的本地内存量。由于工作组被分配给单个计算单元,这也是任何工作组可以拥有的最大本地内存量。

出于许多 GPU 上的性能原因,通常希望在每个计算单元上同时运行多个工作组(例如,以隐藏内存访问延迟)。如果一个工作组使用了所有可用的本地内存,则设备将无法将任何其他工作组调度到同一计算单元上,直到它完成。如果可能,建议限制每个工作组使用的本地内存量(例如总本地内存的四分之一),以允许多个工作组同时在同一个计算单元上运行。

【讨论】:

  • 感谢您的耐心等待!现在我明白了 CL_DEVICE_LOCAM_MEM_SIZE 的含义;你的解释很有启发性! :-)
  • 你是怎么发现的?
猜你喜欢
  • 1970-01-01
  • 2019-09-07
  • 2020-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 1970-01-01
相关资源
最近更新 更多