【发布时间】:2011-05-10 07:38:02
【问题描述】:
我的问题是关于以 CL_DEVICE_LOCAL_MEM_SIZE 作为参数的 opencl 调用 clGetDeviceInfo。
它是返回每个工作组的本地内存量,还是设备上本地可用的内存总量?还是别的什么?
我的 GPU 是 Nvidia GeForce 9800 GT,上述调用的返回值为 16K。
提前致谢!
【问题讨论】:
标签: opencl
我的问题是关于以 CL_DEVICE_LOCAL_MEM_SIZE 作为参数的 opencl 调用 clGetDeviceInfo。
它是返回每个工作组的本地内存量,还是设备上本地可用的内存总量?还是别的什么?
我的 GPU 是 Nvidia GeForce 9800 GT,上述调用的返回值为 16K。
提前致谢!
【问题讨论】:
标签: opencl
它是每个计算单位。本地内存由计算单元上执行的所有工作组使用。单个组不能超过此大小,因为它必须在单个计算单元上执行。
例如,在您的情况下,如果每个工作组需要 8K 的本地内存,则每个计算单元上最多可以同时安排两个工作组。
【讨论】:
CL_DEVICE_LOCAL_MEM_SIZE 是每个工作组可用的最大本地内存量。在您的 NVIDIA 卡的上下文中,它是每个多处理器的片上共享内存量 - 在本例中为 16kb,可由一个或多个将在多处理器上运行的工作组使用。
【讨论】: