赞
踩
以Fermi GPU为例:
左侧是一个粗略的GPU架构图,可以看到GPU由“显存”和“计算单元”组成,有以下几个部分:
DRAM:Dynamic Random Access Memory,即GPU的显存,容量较大,速度慢,CPU和GPU都可以访问。DRAM相当于CPU的RAM,里面存放的数据断电就没有了。
SM:streaming multiprocessor,即计算单元,一个GPU有多个SM。CPU可以使多核的,比如四核八核,而GPU的核心就特别多,一个SM里面包含多个核心(core)。
L2 Cache:这是一个二级缓存,比如当我们在CPU上执行100个1相加的时候,首先计算1+1,将结果2保存,再继续计算2+1,如此循环。但是由于在内存上读写数据耗费时间,我们只需要将中间结果保存在缓存里面,将最后结果写入内存即可。所有缓存大致就是这个作用。
每一个SM的架构如同右边所示:
其他补充
每一个Core架构:
如图所示是GPU里面Core部分的架构,在了解Core之前首先要知道什么是异构计算:
异构架构计算:GPU和CPU协同工作,CPU端称为主机端用host表示,GPU端称为设备端用device表示。GPU和CPU连接一般协议是PCI-E,速度可达16G/s或者32G/s,最新的协议有NVme,延迟更小。
每一个Core里面包含多个Grid,每一个Grid里面包含多个Block,每一个Block里面包含多个thread。在运行代码时会涉及到对于线程的分配,我会在之后的学习笔记中贴出。
文章中图片出自:哔哩哔哩阿婆主:洞主2233的教学视频第二节
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。