5. Warp and Bank

线程束

image
在一个线程束(warp)中的线程执行指令的方式是SIMT,即单指令多线程,单指令表明线程束中的线程执行相同的指令,如果因为条件语句导致线程束内的线程选择了不同分支,就会出现线程束分化。
warp是并行执行的一个独立单位,warp内所有线程是在同一个时钟周期内执行指令的。

Bank Conflict

共享内存被划分为多个大小相等的bank,其组织方式如下所示。
image
同一warp的不同线程访问同一bank的不同地址时,会产生bank conflict,此时这些线程会顺序执行,而失去了并行性。
对于不同warp,不存在bank conflict,假设有两个warp的线程同时访问同一个bank,那么他们会通过调度来决定先后,这个过程本身不属于bank conflict,而是调度问题。(在一个SM上,不同warp严格来说是并发执行的,而不是真正并行)

参考资料

https://face2ai.com/CUDA-F-3-2-理解线程束执行的本质-P1/
https://www.cnblogs.com/zhcnfyy/p/15184405.html
https://segmentfault.com/a/1190000007533157

posted @ 2025-07-30 01:34  TimeLimit  阅读(22)  评论(0)    收藏  举报