Parallel processing CL_DEVICE_LOCAL_MEM_大小是针对整个设备还是每个工作组?

Parallel processing CL_DEVICE_LOCAL_MEM_大小是针对整个设备还是每个工作组?,parallel-processing,opencl,gpgpu,Parallel Processing,Opencl,Gpgpu,我不太清楚通过clGetDeviceInfo函数获取的CL\u设备\本地\内存大小的实际含义。该值是指某个设备上所有可用本地内存的总和,还是工作组本地内存共享的上限?TL;DR:每个处理单元,因此也是可分配给工作单元的最大值。 该值是设备中每个计算单元上可用的本地内存量。由于工作组分配给单个计算单元,因此这也是任何工作组可以拥有的最大本地内存量 出于许多GPU上的性能原因,通常需要在每个计算单元上同时运行多个工作组(例如,隐藏内存访问延迟)。如果一个工作组使用了所有可用的本地内存,则在完成之前,

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

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

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


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

感谢您的耐心等待!现在我明白了CL_设备、LOCAM和MEM尺寸的含义;你的解释很有启发性!:-)你怎么知道的?谢谢你!!我仍然不太清楚OpenCL的基本概念,我应该获得更深入的理解!