Nvidia GPU架构

第一个直观感受:

简单说GPU = 显存 + 计算单元。

显存(Global Memory):显存是在GPU板卡上的DRAM,类似于CPU的内存,就是那堆DDR啊,GDDR5啊之类的。特点是容量大(可达16GB),速度慢,CPU和GPU都可以访问。
计算单元(Streaming Multiprocessor):执行计算的。每一个SM都有自己的控制单元(Control Unit),寄存器(Register),缓存(Cache),指令流水线(execution pipelines)。
 

第二张图:

上图是Volta GV100的 GPU内部架构,GV100有84个SM(Stream MultiProcessor),并且共享L2Cache,外围有显存控制器。

第三张图 下面看下其中一个SM(Stream MultiProcessor)

Nvidia GPU架构_第1张图片

 每个SM有两个SM Processing Block(SMP),每一个绿色的框就标识一个CUDA core,CUDA core也叫做stream processor(SP)。每一个SMP有独立的指令缓存,共享的指令缓存,共享的数据缓存和显存,单独的warp 调度器。

FP64双精度运算,FP32单精度运算,INT整数运算,另外还有大量专门用于深度学习的Tensor Core,LD/ST 是load store unit,用来内存操作。SFU是Special function unit,用来做cuda的intrinsic function,类似cos(),sin(),e指数之类的三角函数。

第四张图:CUDA CORE

 

包括控制单元dispatch port、Operand Collector,浮点运算单元,整数运算单元,计算结果队列。另外还有compare,logic,branch等。

第五张图:简单抽象化的内存结构

 

理论上说,越靠近SM的内存访问速度越快,但容量越少。

本文部分内容借鉴 https://blog.csdn.net/asasasaababab/article/details/80447254

如侵权,请联系删除。

参考文献:

 Volte 架构白皮书

Tesla 架构白皮书

你可能感兴趣的:(CUDA)