gre*_*man 3 memory cuda coalesce
假设我有几个线程,他们访问地址A + 0,A + 4,A + 8,A + 12(每个访问=下一个线程)的内存.这种访问是合并的,对吗?
但是,如果我以相反的顺序访问相同的内存,则意味着:
thread 0 -> A+12
thread 1 -> A+8
thread 2 -> A+4
thread 3 -> A+0
Run Code Online (Sandbox Code Playgroud)
这里的合并也会触发吗?
是的,对于cc 2.0和更新的GPU,只要所有请求的32位数据元素来自(请求)相同的128字节(和128字节),32位数据元素随机排列到线程就会发生合并.全局记忆中的区域).
GPU在内存控制器中具有类似"纵横开关"的功能,可根据需要分配元素.您可能对此讨论合并的GPU网络研讨会感兴趣,并将以图形方式说明此特定情况(在幻灯片12上).
在NVIDIA研讨会页面具有其他有用的网络研讨会,你可能感兴趣的为好.
对于pre-cc2.0设备 ,具体情况因计算能力而异,但计算1.0和1.1的设备不具备合并"逆序"或随机顺序的读取的能力.
归档时间: |
|
查看次数: |
278 次 |
最近记录: |