解读SM, SP和Warp

http://datamining.xmu.edu.cn/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。
http://en.wikipedia.org/wiki/Nvidia_Tesla
GPU计算,看来 显存和core核数 是关键。
个人认为,同样的core核数,SM数量应该多点,SM中的SP数可以少点。SP多了之后对SM资源抢占变得紧缺。就像有10个房间,每个房间3个人,和3个房间,每个房间10个人一样。
这些术语都是与 NVIDIA GPU 相关的概念,下面我简单介绍一下它们的含义: 1. CUDA Context:CUDA 上下文,是 CUDA 程序与 GPU 之间通信的桥梁,用于管理 GPU 资源的分配和释放。 2. CUDA Stream:CUDA 流,是一组 CUDA 操作的序列,可以在 GPU 上异步执行。通过使用多个流,可以在 GPU 上实现并行计算,从而提高计算效率。 3. Hyper-Q:Hyper-Q 技术是 NVIDIA GPU 上的一种并行计算技术,可以让多个 CPU 核心同时访问 GPU,并实现更高的并发度。 4. Multi Stream:多流技术是指在一个 CUDA 上下文中同时使用多个 CUDA 流,以实现更高的并行度。 5. MPS:MPS 技术是 NVIDIA GPU 上的一种并行计算技术,可以让多个 CUDA 上下文共享同一个 GPU,从而实现更高的计算效率。 6. SM:Streaming Multiprocessor,是 NVIDIA GPU 中的一个处理器单元,用于执行 CUDA 程序中的 kernel。 7. SP:Streaming Processor,是 SM 中的一个计算单元,用于执行 CUDA 程序中的指令。 8. Warp调度:Warp 调度是指将多个线程组成一个 warp,由 SM 中的 SP 统一调度执行。在一个 warp 中的线程可以并行执行,从而提高计算效率。 9. Kernel:Kernel 是 CUDA 程序中的一个函数,用于在 GPU 上执行计算任务。 10. Grid:Grid 是 CUDA 程序中的一个概念,用于描述线程块的组织方式。 11. Block:Block 是 CUDA 程序中的一个概念,用于描述线程的组织方式。每个 Block 包含多个线程,可以在 SM 中并行执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值