GPU 英伟达GPU架构回顾

1999 年,英伟达发明了 GPU(graphics processing unit),本节将介绍英伟达 GPU 从 Fermi 到 Blackwell 共 9 代架构,时间跨度从 2010 年至 2024 年,具体包括费米(Feimi)、开普勒(Kepler)、麦克斯韦(Maxwell)、帕斯卡(Pashcal)、伏特(Volt)、图灵(Turing)、安培(Ampere)和赫柏(Hopper)和布莱克韦尔(Blackwell)架构。经过 15 年的发展,CUDA 已成为英伟达的技术“护城河”,Tensor Core5.0,NVLink5.0,NVswitch4.0,Transformer Engine2.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 年英伟达提出 Feimi 架构,最大可支持 16 个 SMs,每个 SM 有 32 个 CUDA Core,一共 512 个 CUDA Core,架构设计主要是以当时游戏用户的需求为主,因此整个 GPU 有多个 GPC(图形处理簇),单个 GPC 包含一个光栅引擎(Raster Engine)和 4 个 SM。

GPU 拥有 6 个 64 位内存分区,总共是 384 位内存,最多支持 6 GB GDDR5 DRAM 内存。主机接口通过 PCI-Express 连接 GPU 和 CPU。GigaThread 全局调度器将线程块分配给 SM 线程调度器。因为计算核心较多,因此将 L2 Cache 放在处理器中间位置,使得数据可以在 CUDA Core 之间快速传输。

恩里科·费米(Enrico Fermi)是意大利裔美国物理学家,20 世纪最重要的物理学家之一,被誉为“原子能时代之父”。他在核物理、量子力学和统计力学等领域做出了重要贡献。主要成就包括:

  1. 提出费米子统计,即著名的费米-狄拉克统计,描述了半整数自旋的粒子的统计性质。

  2. 领导了芝加哥大学的“费米堆”课程,成功实现了世界上第一座自持核链反应堆。

  3. 参与了曼哈顿计划,对原子弹的研发做出了重要贡献。

  4. 获得了 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 的双精度吞吐量,采用台积电 28 nm 制程,每瓦的性能是费米架构的 3 倍。由 15 个 SMX 单元和 6 个 64 bit 内存控制器,内存子系统提供额外的缓存功能,在每个层次结构的存储器有更大的带宽,实现更快的 DRAM I/O,同时为编程模型提供硬件支持。

约翰内斯·开普勒(Johannes Kepler)是一位德国天文学家、数学家和占星术士,被誉为现代天文学的奠基人之一。他生活在 16 世纪末至 17 世纪初,是科学革命时期的重要人物,他的工作对天文学和物理学领域产生了深远的影响,为后来伽利略和牛顿等科学家的研究奠定了基础。主要成就包括:

  1. 提出了行星运动的三大定律,即开普勒定律:
  • 第一定律:行星绕太阳运行的轨道是椭圆形的,太阳位于椭圆的一个焦点上。

  • 第二定律:行星在其轨道上的矢量面积与时间的比率是常数。

  • 第三定律:行星轨道的半长轴与公转周期的平方成正比。

  1. 通过观测和分析提出了行星运动的椭圆轨道理论,颠覆了当时的圆周运动观念。

  2. 对光学、天文学和数学领域都做出了重要贡献,为日后牛顿的引力理论奠定了基础。

开普勒架构相比上一代 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)。单核性能是

### NVIDIA GPU 架构详解 #### 早期架构发展 英伟达™(NVIDIA®)公司在1998年至2004年间推出了多个不同微体系结构的GPU,这些GPU虽然无法使用CUDA进行编程,但已经展示了摩尔定律效应下的技术进步,在此期间晶体管数量显著增长[^1]。 #### G80架构特点 到了G80架构阶段,英伟达实现了重大的突破。这是首个采用MIMD(多指令流多数据流)标量架构GPU系列,具备高达128个SP(流处理器)。尽管存在较高的功耗问题,它仍然是当时最为强劲的产品之一,并且配置了DDR3类型的显存来提升整体效能表现[^2]。 #### 现代架构演进 随着时代的发展,特别是进入人工智能和高性能计算领域之后,NVIDIA不断革新其GPU的设计理念和技术参数。自V100至最新的H100型号之间经历了多次迭代更新,每一次都带来了前所未有的技术创新与性能跃升。例如Pascal架构不仅吸引了众多深度学习爱好者的关注,还提供了更高效的并行处理能力以满足日益复杂的算法需求[^4]。 #### AI计算平台设计差异 对于专门构建的人工智能计算环境而言,Nvidia提出了两种不同的硬件部署方案——SXM版和PCIe版。前者利用了特制的高带宽接口实现极低延迟的数据交换;后者则是基于标准PCIE总线连接方式,适用于广泛存在的数据中心基础设施之中。值得注意的是,无论是哪种形式,都会配备相应的NVLink桥接器用来增强设备间的通讯速率和支持更大规模集群式的运算任务执行[^5]。 ```python # Python代码示例展示如何查询当前安装的NVIDIA驱动程序版本 import os def get_nvidia_driver_version(): try: result = os.popen('nvidia-smi').read() lines = result.split('\n') driver_line = [line for line in lines if 'Driver Version' in line][0] version = driver_line.strip().split()[-1] return f"NVIDIA Driver Version: {version}" except Exception as e: return str(e) print(get_nvidia_driver_version()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值