2011-05-10 52 views
4

我的问题是关于以CL_DEVICE_LOCAL_MEM_SIZE作为参数的opencl调用clGetDeviceInfo。opencl设备信息,本地内存量

它是返回每个工作组的本地内存量,还是它作为本地设备上可用的内存总量?还是其他什么?

我的GPU是Nvidia GeForce 9800 GT,上述调用返回值为16K。

在此先感谢!

+0

这是每个工作组。 – 2011-05-10 07:39:44

回答

6

它是每计算单位。本地内存由计算单元上执行的所有工作组使用。单个组不能超过此大小,因为它必须在单个计算单元上执行。

例如,对于您的情况,如果每个工作组都需要8K的本地内存,则最多可以在每个计算单元上同时安排两个工作组。

2

CL_DEVICE_LOCAL_MEM_SIZE是每个工作组可用的本地内存的最大数量。在您的NVIDIA显卡上下文中,每个多处理器共享内存的数量是16KB,可以由一个或多个可在多处理器上运行的工作组使用。