GPU是协处理器,CPU是主控 。GPU不是独立的计算平台,需要和CPU协同工作,所以可以看作是CPU的协处理器 。所以GPU并行计算是指CPU GPU的异构计算架构 。在异构计算架构中,GPU和CPU一般通过PCI-E总线相连,共同工作 。CPU的位置叫主机,GPU的位置叫设备 。
早期的CPU都是针对整数运算的,有的CPU浮点运算量很小,处理低像素还不错 。像素越来越多,需要大量的浮点运算处理器,GPU就出现了 。所以标准GPU的性能参数是FLOPS,每秒浮点运算次数 。衡量FLOPS最常用的基准之一是Linpack 。一个GFLOPS(千兆次浮点运算)等于每秒十亿次(= 10 ^ 9)浮点运算,一个TFLOPS(万亿次浮点运算)等于每秒一万亿次(= 10 ^ 12)浮点运算 。CPU的性能单位一般是DMIPS,每秒执行的dhrystone百万条指令,每秒执行的整数运算指令数是百万次 。AI的性能单位是TOPS,每秒TeraOperations,1TOPS是指处理器每秒可以执行一万亿(10 ^ 12)次运算,无论整数还是浮点,无论指令还是运算 。通常只有CPU可以做任务调度,但是主机、AI处理器、GPU都需要CPU配合,是协处理器设备 。
典型GPU架构图
图片来源:互联网
典型的GPU架构 。自2010年Fermi以来,NVIDIA一直使用类似的原理架构,并使用Giga线程引擎来管理所有正在进行的工作 。GPU分为多个GPC(图形处理集群),每个GPC有多个SMs (SMX、SMM、流式多处理器)和一个光栅引擎,其中有很多连接,最著名的是Crossbar,可以连接GPC和其他功能模块(如ROP或其他子系统) 。
GPU厂商经常标榜自己有“240”个核心,但其实他们所有的核心指的都是“ALUs/FPUs”,和CPU里说的核心还是有区别的 。一般NVIDIA或者ATI调用一个核心SP (streamingprocessor)或者SC (shadercore)或者TP (Threadcore),都是一个东西 。一个SM包含多个sp,但是这些sp并不是完全独立的执行单元 。虽然每个SP都有独立的寄存器文件和独立的指令指针,但它并没有完整的取指令、调度指令等独立前端,所以SP更像是CPU中的一个执行部分 。
费米的SM处理器内部框架
图片来源:互联网
Fermi是NVIDIA在2010年发布的GPU架构 。此后,英伟达的GPU架构一直以科学家命名,前端结构差别不大 。Warp Scheduler将一组32个线程作为一个经线(线程束,可以想象为一台纺纱机将多个线程编织在一起)进行管理,并将要执行的指令交给调度单元 。英伟达的GPU升级一般是升级核心内核,其他都和费米高度一致 。Fermi有32768个32位寄存器,Fermi有512个SM,即每个SM(每个线程束)分为64个寄存器,每个线程两个 。
费米的内核包含一个整数运算单元和一个浮点运算单元 。每个SM也有SFU(特殊函数单元),用于特殊运算,如三角函数和指数对数 。每个核相当于GPU中的ALU 。一个CPU核心最多可以有8个alu,一个GPU可以轻松达到上千个 。但是GPU通常只能处理一种算法 。CPU可以胜任多种算法 。ALU就像一个教授,从加减乘除到微积分什么都会 。GPU就像几千个小学生的集合,通常只做乘法 。FP后来成为GPGPU时代的FMA或FFMA(融合了多重累加) 。基本上所有所谓的人工智能算法都拆解到最底层,都是乘积累加计算,尤其是乘积累加指令集 。
NVIDIA的A100GPU物理架构,配Ampere架构用于AI 。
推荐阅读
- X-NV属于哪个汽车
- 汽车空调加热需要注意什么
- 蔚来es6续航里程多长
- 国机汽车重组最新消息
- 共享汽车要注意哪些东西
- 电脑显示屏分辨率调不了解决方法 分辨率调不了是怎么回事
- 冬天汽车怎么启动最好
- 冬天汽车多久不开最好
- 48V轻混系统什么意思
- 汽车的纵梁有什么用