CUDA笔记--GPU的结构与SM(流处理器)结构

来源:互联网 发布:磁力链解析源码 编辑:程序博客网 时间:2024/04/27 22:53

GPU的结构简单的可以分为:

一个连接GPU和PCIe总线的主机接口;

0~2个复制引擎;

一个连接GPU与GPU内存设备的DRAM接口;

一定数目的TPC或者GPC(纹理处理集群或图形处理集群),每个包含一定的缓存和一些流处理器簇(SM)。


主机接口:主要是读取GPU命令(如内存复制和内核启动命令),并将其分派给相应的硬件单元,负责CPU和GPU之间、GPU不同引擎之间和不同GPU之间的同步。

复制引擎:复制引擎可以在流处理簇做计算时执行主机与设备之间的内存传输。在早期的CUDA硬件并没有任何复制引擎,后来版本的硬件包括了一个复制引擎,可以传输线性设备内存(CUDA数组除外),而最新的CUDA硬件则包括了两个复制引擎,这样可以使PCIe总线饱和并可以在CUDA数组和线性内存之间转换。

DRAM接口:GPU的DRAM接口包含了用于合并内存请求的硬件,可以支持超过100GB/s的带宽。

TPC和GPC:TPC和GPC用于执行CUDA计算,特斯拉架构硬件将SM组合成TPC(纹理处理集群),其中,TPC包含纹理硬件支持(一个纹理缓存)和2个或3个SM。费米架构硬件则将SM组合为GPC(图形处理器集群),其中每个GPU包含有一个光栅单元和4个SM。


特斯拉架构的SM的结构包括:

执行单元,用以执行32位整数和单、双精度浮点运算;

特殊函数单元(SFU),用以计算log/exp,sin/cos,rcp/rsqrt的单精度近似值;

一个线程束调度器,用以协调把指令分发到执行单元;

一个常量缓存,用于广播式传送数据给SM;

共享内存,用于线程之间的数据交换;

纹理映射的专用硬件。


1 0