英伟达GPU架构发展历程:从Fermi到Blackwell
英伟达GPU架构发展历程:从Fermi到Blackwell
从2010年到2024年,英伟达推出了9代GPU架构,从最初的Fermi架构到最新的Blackwell架构,每一代架构都在性能、能效和功能上实现了显著提升。本文将详细介绍这9代架构的核心参数、特点和优势,帮助读者全面了解英伟达GPU技术的发展历程。
GPU架构发展历程概述
1999年,英伟达发明了GPU(Graphics Processing Unit),本节将介绍英伟达GPU从Fermi到Blackwell共9代架构,时间跨度从2010年到2024年,具体包括费米(Fermi)、开普勒(Kepler)、麦克斯韦(Maxwell)、帕斯卡(Pascal)、伏特(Volta)、图灵(Turing)、安培(Ampere)和赫柏(Hopper)和布莱克韦尔(Blackwell)架构。经过15年的发展,CUDA已成为英伟达的技术“护城河”,Tensor Core 5.0、NVLink 5.0、NVswitch 4.0、Transformer Engine 2.0等技术迭代更新,正如英伟达公司官方宣传语所言:“人工智能计算领域的领导者,推动了AI、HPC、游戏、创意设计、自动驾驶汽车和机器人开发领域的进步。”
架构名称 | 中文名字 | 发布时间 | 核心参数 | 特点&优势 | 纳米制程 | 代表型号 |
---|---|---|---|---|---|---|
Fermi | 费米 | 2010 | 16个SM,每个SM包含32个CUDA Cores,一共512 CUDA Cores | 首个完整GPU计算架构,支持与共享存储结合的Cache层次GPU架构,支持ECC GPU架构 | 40/28nm, 30亿晶体管 | Quadro 7000 |
Kepler | 开普勒 | 2012 | 15个SMX,每个SMX包括192个FP32+64个FP64 CUDA Cores | 游戏性能大幅提升,首次支持GPU Direct技术 | 28nm, 71亿晶体管 | K80, K40M |
Maxwell | 麦克斯韦 | 2014 | 16个SM,每个SM包括4个处理块,每个处理块包括32个CUDA Cores+8个LD/ST Unit+8 SFU | 每组SM单元从192个减少到每组128个,每个SMM单元拥有更多逻辑控制电路 | 28nm, 80亿晶体管 | M5000, M4000GTX 9XX系列 |
Pascal | 帕斯卡 | 2016 | GP100有60个SM,每个SM包括64个CUDA Cores,32个DP Cores | NVLink第一代,双向互联带宽160GB/s,P100拥有56个SM HBM | 16nm, 153亿晶体管 | P100, P6000, TTX1080 |
Volta | 伏特 | 2017 | 80个SM,每个SM包括32个FP64+64 Int32+64 FP32+8个Tensor Cores | NVLink2.0,Tensor Cores第一代,支持AI运算,NVSwitch1.0 | 12nm, 211亿晶体管 | V100, TiTan V |
Turing | 图灵 | 2018 | 102核心92个SM,SM重新设计,每个SM包含64个Int32+64个FP32+8个Tensor Cores | Tensor Core2.0,RT Core第一代 | 12nm, 186亿晶体管 | T4,2080TI, RTX 5000 |
Ampere | 安培 | 2020 | 108个SM,每个SM包含64个FP32+64个INT32+32个FP64+4个Tensor Cores | Tensor Core3.0,RT Core2.0,NVLink3.0,结构稀疏性矩阵MIG1.0 | 7nm, 283亿晶体管 | A100, A30系列 |
Hopper | 赫柏 | 2022 | 132个SM,每个SM包含128个FP32+64个INT32+64个FP64+4个Tensor Cores | Tensor Core4.0,NVLink4.0,结构稀疏性矩阵MIG2.0 | 4nm, 800亿晶体管 | H100 |
Blackwell | 布莱克韦尔 | 2024 | - | Tensor Core5.0,NVLink5.0, 第二代Transformer引擎,支持RAS | 4NP, 2080亿晶体管 | B200 |
Fermi架构
2006年英伟达提出G80架构,使开发者可以基于C语言在GPU上进行开发。2008年基于G80架构提出GT200,增加了流处理器核的数量,更高的精度和并行能力使GPU进行科学计算和高性能计算成为可能。
2010年英伟达提出Fermi架构,最大可支持16个SMs,每个SM有32个CUDA Core,一共512个CUDA Core,架构设计主要是以当时游戏用户的需求为主,因此整个GPU有多个GPC(图形处理簇),单个GPC包含一个光栅引擎(Raster Engine)和4个SM。
GPU拥有6个64位内存分区,总共是384位内存,最多支持6GB GDDR5 DRAM内存。主机接口通过PCI-Express连接GPU和CPU。GigaThread全局调度器将线程块分配给SM线程调度器。因为计算核心较多,因此将L2 Cache放在处理器中间位置,使得数据可以在CUDA Core之间快速传输。
恩里科·费米(Enrico Fermi)是意大利裔美国物理学家,20世纪最重要的物理学家之一,被誉为“原子能时代之父”。他在核物理、量子力学和统计力学等领域做出了重要贡献。主要成就包括:
- 提出费米子统计,即著名的费米-狄拉克统计,描述了半整数自旋的粒子的统计性质。
- 领导了芝加哥大学的“费米堆”课程,成功实现了世界上第一座自持核链反应堆。
- 参与了曼哈顿计划,对原子弹的研发做出了重要贡献。
- 获得了1938年的诺贝尔物理学奖,以表彰他在人类利用新的放射性同位素所作出的贡献。
Fermi架构采用第三代流处理器,每个SM有16个加载/存储单元(Load/Store, LD/ST),允许为每个时钟16个线程计算源地址和目标地址,支持将每个地址的数据加载并存储到缓存或DRAM中。特殊功能单元(Special Function Unit, SFU)执行超越函数,如sin、cos、导数和平方根。每个SFU在每个线程、每个时钟执行一条指令,一次warp(由32个线程组成的线程组)要经过8个时钟周期。SFU管线与调度单元解耦,允许调度单元在占用SFU时向其他执行单元发出命令。双精度算法是高性能计算应用的核心,每个SM、每个时钟可执行多达16个双精度融合乘加运算。
每个SM有两个warp调度器和两个指令调度单元,允许同时发出和执行两个warp。并行计算主要在CUDA中进行处理,每个CUDA处理器都有一个完整的流水线整数算术逻辑单元(ALU)和浮点单元(FPU),可以选择FP 32或者INT 8执行计算,但是FP Unit和INT Unit的执行不是并行的。
Fermi架构支持新的并行线程执行PTX 2.0(Parallel Thread Execution)指令集架构。一个CUDA程序被称作并行的Kernel,线程分为三级,包含线程(Threads)、块(Blocks)和网格(Grid),每个层次结构对应硬件,Thread可以共享局部内存(Local memory),线程块使用共享内存(Shared Memory),Grid共享全局内存(Global Memory),具有相应的每个线程专用、每个块共享和每个应用程序全局内存空间。
Kepler架构
2012年英伟达提出Kepler架构,由7.1亿个晶体管组成的Kepler GK110将提供超过1 TFlop的双精度吞吐量,采用台积电28nm制程,每瓦的性能是费米架构的3倍。由15个SMX单元和6个64bit内存控制器,内存子系统提供额外的缓存功能,在每个层次结构的存储器有更大的带宽,实现更快的DRAM I/O,同时为编程模型提供硬件支持。
约翰内斯·开普勒(Johannes Kepler)是一位德国天文学家、数学家和占星术士,被誉为现代天文学的奠基人之一。他生活在16世纪末至17世纪初,是科学革命时期的重要人物,他的工作对天文学和物理学领域产生了深远的影响,为后来伽利略和牛顿等科学家的研究奠定了基础。主要成就包括:
- 提出了行星运动的三大定律,即开普勒定律:
- 第一定律:行星绕太阳运行的轨道是椭圆形的,太阳位于椭圆的一个焦点上。
- 第二定律:行星在其轨道上的矢量面积与时间的比率是常数。
- 第三定律:行星轨道的半长轴与公转周期的平方成正比。
- 通过观测和分析提出了行星运动的椭圆轨道理论,颠覆了当时的圆周运动观念。
- 对光学、天文学和数学领域都做出了重要贡献,为日后牛顿的引力理论奠定了基础。
开普勒架构相比上一代Fermi架构,SM(Streaming Multiprocessor)更名为SMX,但是本身的概念没有改变,每个SMX具有四个warp调度器和八个指令调度单元,允许同时发出和执行四个warp。Fermi架构共有32核,Kepler架构拥有192核,大大提升了GPU并行处理的能力。Fermi支持最大线程数是1536,Kepler最大线程数达到2048。64个双精度(Double-Precision,DP)单元,32特殊功能单元(SFU)和32个LD/ST(load/store)单元,满足高性能计算场景的实际需求。
Kepler架构支持动态并行(Dynnamic Parallelism),在不需要CPU支持的情况下自动同步,在程序执行过程中灵活动态地提供并行数量和形式。Hyper-Q使多个CPU核使用单个GPU执行工作,提高GPU利用率并显着减少CPU空闲时间,允许32个同时进行的硬件管理连接,允许从多个CUDA流处理,多个消息传递进程中分离出单个进程。使用网格管理单元(Grid Management Unit,GMU)启用动态并行和调度控制,比如挂起或暂停网格和队列直到执行的环境准备好。
英伟达GPUDirect可以使单个计算机内的GPU或位于网络上不同服务器中的GPU直接交换数据,而无需转到CPU系统内存,RDMA特性允许第三方设备直接访问同一系统内多个GPU上的内存,减少了对系统内存带宽的需求,释放GPU DMA引擎供其它CUDA任务使用。
Maxwell架构
2014年英伟达提出Maxwell架构,麦克斯韦架构相比上一代架构没有太大改进,其中SM又使用了原来的名称,整体的核心个数变为128个,因为核心数不需要太多,可以通过超配线程数来提升GPU并行计算的能力。
SMM使用基于象限的设计,其中每个SMM有四个共32核处理块,每个处理块都有一个专用的warp调度器,能够在每个时钟调度两条指令。每个SMM提供8个纹理单元,一个图形的几何处理引擎,以及专用的寄存器文件(Register File)和共享内存(Shared Memory)。单核性能是