机器学习和生物信息学实验室联盟

标题: 解读SM, SP和Warp [打印本页]

作者: xmubingo    时间: 2012-8-13 16:18
标题: 解读SM, SP和Warp
本帖最后由 xmubingo 于 2012-8-13 18:11 编辑

经常在阅读文档的时候会遇到这些名词。一般他们都会以tesla架构为例子,比如teslaC1060也就是1个SM有8个SP.
[attach]924[/attach]
我的总结:
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访问,需要满足:
[attach]923[/attach]


现在Tesla C2075拥有448个core。
http://en.wikipedia.org/wiki/Nvidia_Tesla
GPU计算,看来显存和core核数是关键。
个人认为,同样的core核数,SM数量应该多点,SM中的SP数可以少点。SP多了之后对SM资源抢占变得紧缺。就像有10个房间,每个房间3个人,和3个房间,每个房间10个人一样。

参考资料:http://kheresy.wordpress.com/200 ... E%9A%E8%88%87-warp/





欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/) Powered by Discuz! X3.2