ran*_*ana 18 gpu nvidia gpu-shared-memory
在当今的大多数nVIDIA GPU上,共享内存的大小(OpenCL术语中的"本地内存")仅为16 KiB.
我有一个应用程序,我需要创建一个具有10,000个整数的数组.所以我需要适应10,000个整数的内存量= 10,000*4b = 40kb.
Pau*_*l R 26
将共享内存视为显式托管缓存.您需要将数组存储在全局内存中,并根据需要将其部分缓存在共享内存中,方法是进行多次传递或其他方案,以最大限度地减少加载和存储到/来自全局内存的数量.
如何实现这将取决于您的算法 - 如果您可以提供一些您正在尝试实现的具体细节,您可能会得到一些更具体的建议.
最后一点 - 请注意共享内存在块中的所有线程之间共享 - 每个线程的路径小于16 kb,除非您拥有一个块中所有线程共用的单个数据结构.
所有计算能力2.0和更高的设备(大多数在过去一两年)每个多处理器有48KB的可用共享内存.那个开始说,保罗的答案是正确的,因为你可能不希望将所有10K整数加载到单个多处理器中.
| 归档时间: |
|
| 查看次数: |
21613 次 |
| 最近记录: |