1,一个GPU会有多个SM(Streaming MultiProcessor),SM之间是并行的;

 

2,一个SM可以同时处理多个Block的多个wrap,也就是说,同一时刻,一个SM内,不止只有一个wrap在执行;

参考:Programming Guide :: CUDA Toolkit Documentation

3,SM处理完一个Block后,才会处理下一个Block,也就是说例如SM可以同时处理3个Block,那么这3个Block的其中一个处理完后,才会处理第四个Block。

4,一个wrap的线程会分配到32个(假设一个wrap的线程数量是32)CUDA core,也叫stream processor(sp)里执行。

编程建议:将Block个数尽量设置为SM的整数倍,可以提高设备利用率。

参考:

CUDA性能优化----warp深度解析 - 爱码网

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐