http://datamining./bbs/forum.php?mod=viewthread&tid=655
经常在阅读文档的时候会遇到这些名词。一般他们都会以tesla架构为例子,比如teslaC1060也就是1个SM有8个SP.
我的总结:
1. 一个显卡(GPU)里有多个(Streaming Multiprocessor)SM, 每个SM中有多个(Streaming processor)SP。
2. 一个SM会负责多个ThreadBlock(线程块)的计算任务,一般为8个。每个SP一个时刻负责一个thread。
3. 硬件层面,SM中有shared memory, register, L1 cache,因此ThreadBlock内可以共享shared memory,单独的thread拥有自己的Local memory(先被分配到register中,如果register不够就分配到global memory中)。
4. Warp是SM调度和执行的基本单位。SIMT机制使得同一个Warp里的线程根据不同的DATA执行相同的指令。一个SM,一次只能运算一个Block里的一组Warp,如果warp中有线程的DATA没有取到,那么调度下一下warp运算。
Half-Warp是SM存储操作的基本单位。它和coalescing访问global memory息息相关。
以我们实验室的GXT550 Ti为例子
( 4) Multiprocessors x (48) CUDA Cores/MP:& &&&192 CUDA Cores
Warp size:& && && && && && && && && && && && & 32
说明,有4个SM,每个SM中48个SP,一共192个SP(core)。
warp大小为32,即,要实现coalescing访问,需要满足:
现在Tesla C2075拥有448个core。
GPU计算,看来显存和core核数是关键。
个人认为,同样的core核数,SM数量应该多点,SM中的SP数可以少点。SP多了之后对SM资源抢占变得紧缺。就像有10个房间,每个房间3个人,和3个房间,每个房间10个人一样。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:10915次
排名:千里之外
原创:14篇
(1)(6)(1)(1)(4)(1)(1)(4)(1)