Cuda_bank-conflict
2013-09-22 21:58
211 查看
一直不太理解GPU共享缓存中所谓的bank conflict是什么意思,知道今天对共享缓存操作时,发现简简单单的一句话:temp[tdx] = cach4[7];对程序的运行时间竟然有0.05ms的影响!!
是时候彻底弄清楚到底何谓bank conflict了。
对于有八个memory-bank 的GPU,共享内存的存储方式如表一中所述。目前计算能力大于2.0的GPU中,大多有16个memory-bank.
表一 Memory Bank Architecture
对于同一个wrap中的线程(一个wrap内包含了32个线程),访问共享存储器时,以half-wrap的形式分两次访问。
同一half-wrap内的线程同时可以访问不同的bank,而不同线程对同一个bank 的访问只能顺序进行。
所谓的bank-conflict,就是同一half-wrap内的线程,访问了同一bank里的共享内存。bank-conflict会让原本并行的对共享内存的访存操作变成串行从而极大的降低程序效率。
特殊情况是:half-wrap内所有的线程访问同一个共享内存中的同一地址,会产生一次广播,在这种情况下不会发生bank conflict
是时候彻底弄清楚到底何谓bank conflict了。
对于有八个memory-bank 的GPU,共享内存的存储方式如表一中所述。目前计算能力大于2.0的GPU中,大多有16个memory-bank.
表一 Memory Bank Architecture
对于同一个wrap中的线程(一个wrap内包含了32个线程),访问共享存储器时,以half-wrap的形式分两次访问。
同一half-wrap内的线程同时可以访问不同的bank,而不同线程对同一个bank 的访问只能顺序进行。
所谓的bank-conflict,就是同一half-wrap内的线程,访问了同一bank里的共享内存。bank-conflict会让原本并行的对共享内存的访存操作变成串行从而极大的降低程序效率。
特殊情况是:half-wrap内所有的线程访问同一个共享内存中的同一地址,会产生一次广播,在这种情况下不会发生bank conflict
相关文章推荐
- CUDA中Bank conflict冲突
- CUDA中Bank conflict冲突 (转)
- CUDA中Bank conflict冲突
- CUDA 共享内存 bank conflict
- CUDA中Bank conflict冲突
- 2.2CUDA-Memory(存储)和bank-conflict
- CUDA 共享内存 bank conflict
- CUDA中Bank conflict冲突
- CUDA(15)之CUDA bank conflict in Shared Memory
- CUDA GPU编程如何避免Bank conflict
- 【并行计算-CUDA开发】CUDA bank conflict in shared memory
- [Z]CUDA中Bank conflict冲突
- cuda shareMemory bank conflict 探究
- CUDA中Bank conflict冲突
- 关于一个GPGPU优化中Bank Conflict的讨论
- CUDA 共享内存的bank co…
- Bank conflict for shared memory
- 【OpenCL】What is a bank conflict?
- 共享存储器bank conflict
- bank conflict