GPU编程1--- GPU中的基本概念

硬件资源

  在硬件上,GPU的资源有SP和SM。

  • SP:最基本的处理单元,streaming processor,也称为CUDA core。最后具体的指令和任务都是在SP上处理的。GPU进行并行计算,也就是很多个SP同时做处理。我们所说的几百核心的GPU值指的都是SP的数量;
  • SM:多个SP加上其他的一些资源组成一个streaming multiprocessor。也叫GPU大核,其他资源如:warp scheduler,register,shared memory等。SM可以看做GPU的心脏(对比CPU核心),register和shared memory是SM的稀缺资源。CUDA将这些资源分配给所有驻留在SM中的threads。因此,这些有限的资源就使每个SM中active warps有非常严格的限制,也就限制了并行能力。

  每个SM包含的SP数量依据GPU架构而不同,Fermi架构GF100是32个,GF10X架构是48个,Kepler架构是192个,Maxwell架构是128个,Turing架构是64个。相同架构的GPU包含的SM数量则根据GPU的中高低端来定。下图是Turing架构的SM。

image-20200624172710353

软件资源

 从软件上看,即GPU的线程模型,可以分为Grid、Block、Thread和Warp,其中前三个用下面的图表示非常的直观。

  • Thread:一个CUDA的并行程序会被以许多个threads来执行

  • Block:数个threads会被群组成一个block,同一个block中的threads可以同步,也可以通过shared memory通信

  • Grid:多个blocks则会再构成Grid

  • Warp:GPU执行程序时的调度单位,同一个warp里的线程执行相同的指令,即SIMT。

  举一个比较形象的例子,把GPU当做一个学校,学校里面有不同的年纪(Grid),每个年纪有几个班(Block),每个班都有很多的学生(Thread),平时干值日要分不同的组(Warp),目前又给Warp中,有32个线程,即一个班中32个同学为一组一起干值日。

image-20200624160026635

存储资源

  每一个Thread都有自己的local memoryresigters,即每个同学都可以把自己的东西放到自己的课桌上;每一个Block有shared memory,这个Block中的所有Thread都可以访问,即每个班所在的教室里的走道、讲台等,是这个班里同学们的公共区域;Grid之间会有Global memoryCache,所有的Grid都可以访问,即学校里的操场、餐厅等,是全校同学的公共区域。

image-20200625111838373

GPU模型总结

  我们把GPU跟一个学校对应起来,学校里有教学楼、操场、食堂,还有老师和学生们;很快有领导来检查,因此这个学校的学生们要完成打扫除的工作。

  软件资源包括Thread、Warp、Block和Grid,硬件资源包括SP和SM。

  软件资源和硬件资源的最小单位我们都认为是学生,即一个Thread对应一个SP(SP可以分为更小的ALU等,我们这里先不考虑)。

  Block对应的是班级,Warp是班级里的不同小组,每个小组有32个学生;SM是教学楼的一个楼层,一个楼层上可以有多个班级;一个Grid是一个年级,年级和楼层并没有确定的对应关系。

  每个学生都有个课桌 ,放自己的物品,不能让别人用,表示每个Thread都有自己的空间(local memory + registers);

  每个班级在一个教室里,教室里的有公共的空间(走道、讲台等),所有同学都可以停留,表示一个Block中有shared memory,这个Block中的Thread都可以访问;

  学校里的公共区域,比如操场、食堂等,所有同学都可以去运动、吃饭,表示GPU中有一些公共的存储空间供所有的Grid访问。

  虽然GPU是并行运行,但也并不是我们理想中所有的Thread一起工作,在打扫卫生时,并不是所有学生一起干活,一个楼层同一时刻只能有一组32个学生(即一个Warp)干活,其他的学生都处于等待状态。

微信公众号:Quant_Times

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值