GPU 架构与内存

1969 字
10 分钟
GPU 架构与内存

Datawhale
Datawhale

大家好,我是芯缘,是 Datawhale 社区发起的 2026 年 8 月“llm-algo-leetcode 推理优化方向”组队学习活动的运营助教。本文记录了我学习 Task 1-1 GPU Hardware 的笔记。

GPU 架构#

GPU 组织结构#

CPU 与 GPU 组织结构
CPU 与 GPU 组织结构

图 1. CPU 与 GPU 的整体组织结构及其内存连接。

一个 GPU 包含许多流式多处理器(Streaming Multiprocessor,SM)。每个 SM 都拥有自己的 CUDA Core、Tensor Core、寄存器文件(Register File)和共享内存(Shared Memory)/L1,而所有 SM 共享 L2 和 GPU DRAM。相比之下,CPU Core 共享容量较大的末级缓存(Last-Level Cache)和系统 DRAM。

一个 Kernel 会启动由多个线程块(Thread Block)组成的网格(Grid)。每个 Block 在一个 SM 上运行,并被划分为由 32 个线程组成的线程束(Warp),再由 SM 调度执行。

Blackwell SM 架构
Blackwell SM 架构

图 2. Blackwell SM 的组织结构,包括 CUDA Core、Tensor Core、共享内存、TMA 和 TMEM。

Blackwell SM 新增了张量内存(Tensor Memory,TMEM),用于存放 Tensor Core 的累加器数据。张量内存加速器(Tensor Memory Accelerator,TMA)可以在全局内存(Global Memory)与共享内存之间搬运数据块(Tile),复制过程本身不占用 CUDA Core。

V100、A100、H100 与 B200#

下列表格采用数据中心 SXM 版本:V100 SXM2 32 GB、A100 80 GB SXM、H100 SXM 80 GB 和 B200 SXM。

表 1. 数据中心 GPU 规格。

规格V100A100H100B200
架构VoltaAmpereHopperBlackwell
发布年份2017202020222024
计算能力(Compute Capability)7.08.09.010.0
SM 数量80108132148
Tensor Core 数量640432528592
L2 缓存6 MB40 MB50 MB126 MB
GPU 显存32 GB HBM280 GB HBM2e80 GB HBM3180 GB HBM3e
显存带宽900 GB/s2.039 TB/s3.35 TB/s7.7 TB/s
最大功耗300 W400 W700 W最高 1,000 W

表 2. 各代 GPU 的主要架构变化。

GPU主要架构变化
V100首次引入第一代 Tensor Core,用于混合精度(Mixed Precision)矩阵运算。
A100新增 TF32、BF16、结构化稀疏(Structured Sparsity)、多实例 GPU(Multi-Instance GPU,MIG)、异步复制(Asynchronous Copy),并大幅增大 L2 缓存。
H100新增 FP8、Transformer Engine、张量内存加速器(TMA)、线程块集群(Thread-Block Cluster)和分布式共享内存。
B200将两个受光刻掩模尺寸限制的裸片(Die)作为一个 GPU 使用,并新增 FP6、FP4 和第二代 Transformer Engine。

表 3. 不同精度下的稠密理论峰值算力。

精度V100A100H100B200
FP32(CUDA Core)15.719.56775
TF32(Tensor Core)1564951,125
FP16(Tensor Core)1253129892,250
BF16(Tensor Core)3129892,250
FP8(Tensor Core)1,9794,500
FP6(Tensor Core)4,500
FP4(Tensor Core)9,000

所有数值均为以 TFLOPS 计量的稠密理论峰值。FP32 使用 CUDA Core,其余各行使用 Tensor Core。

Tensor Core#

CUDA Core 为单个线程执行标量运算,而 Tensor Core 执行矩阵乘加(Matrix Multiply-Accumulate,MMA):

D=AB+C.D = AB + C.

Tensor Core 结合专用矩阵硬件、低精度输入以及通常更高精度的累加,来加速通用矩阵乘法(General Matrix Multiplication,GEMM)、卷积和 Transformer 层。只有当矩阵形状、数据布局、精度和数据搬运方式都与受支持的 Kernel 相匹配时,才能达到其峰值吞吐量。

内存与存储#

常用术语#

表 4. 容易混淆的缩写与名称。

术语含义
L1/L2/L3(Level 1/2/3 Cache,一级/二级/三级缓存)表示缓存层级;数字越小,通常距离计算单元越近、容量越小、速度越快。表 1 中的 GPU 拥有每个 SM 独立的 L1 和所有 SM 共享的 L2,但没有通用 L3。
共享内存(Shared Memory)由程序员管理的片上内存,供一个 Block 内的线程共享。
显存(Video RAM,VRAM)与 GPU 相连的内存,通常采用 GDDR 或 HBM;VRAM 描述的是用途角色,而不是存储单元技术。
固态硬盘(Solid-State Drive,SSD)持久化存储设备,通常基于 NAND Flash。
机械硬盘(Hard Disk Drive,HDD)使用旋转盘片的持久化磁存储设备。
NVMe(NVM Express)一种通常承载于 PCIe 之上的 SSD 通信协议;NVM 指非易失性存储器(Nonvolatile Memory)。
PCIe(Peripheral Component Interconnect Express)GPU、NVMe SSD 及其他设备使用的高速互连。
SATA(Serial ATA)一种 HDD/SSD 接口;ATA 指 Advanced Technology Attachment。

内存与存储分类#

表 5. 常见内存与存储类别。数值范围为代表性数据,适用范围以各单元格中的说明为准。

大类 系列 常见形式与典型用途 带宽 容量
随机存取存储器(Random-Access Memory,RAM)
易失性
静态随机存取存储器(Static RAM,SRAM) GPU 共享内存/L1 和 L2 缓存 共享内存:128 B/cycle/SM
L2:取决于产品
共享内存:96–228 KiB/SM
L2:6–126 MB/GPU
动态随机存取存储器(Dynamic RAM,DRAM) DDR SDRAM(Double Data Rate)——台式机/服务器内存 25–70 GB/s/channel 8 GB–4 TB/系统
LPDDR SDRAM(Low-Power DDR)——手机/笔记本电脑/Grace CPU 内存 50–500 GB/s/系统 6–480 GB/系统
GDDR SDRAM(Graphics DDR)——GPU 显存 0.3–1.8 TB/s 8–96 GB/GPU
HBM(High Bandwidth Memory,高带宽内存)——数据中心 GPU 显存 0.9–7.7 TB/s 32–180 GB/GPU
半导体非易失性存储器(Semiconductor Nonvolatile Memory,NVM) 只读存储器(Read-Only Memory,ROM) 固定式 ROM——启动代码/固件 取决于产品 KiB–GiB
EEPROM 与 Flash EEPROM(Electrically Erasable Programmable ROM)——少量配置数据 取决于接口 Bytes–MiB
NOR Flash——BIOS/UEFI 与固件 读取速度 ≤400 MB/s MiB–GiB
NAND Flash——SSD/手机/U 盘/SD 卡的存储介质 取决于接口和控制器 Gb–Tb/封装
存储设备(Storage Devices)
非易失性
固态存储(Solid-State Storage) SSD——SATA/NVMe 块存储,通常基于 NAND SATA:0.5 GB/s
NVMe:3–14 GB/s
0.25–122.88 TB/块
磁存储(Magnetic Storage) HDD——机械式大容量存储 0.12–0.3 GB/s 1–36 TB/块

GPU 内存名称及其物理实现#

表 6. 无法仅从名称直接判断物理实现的 GPU 内存。

架构名称名称所描述的对象物理实现
GPU 寄存器(Register)由 GPU 指令直接使用的每线程操作数专用片上寄存器文件;NVIDIA 并未将其归类为普通 CUDA 共享内存
张量内存(Tensor Memory,TMEM)Blackwell 中由第五代 Tensor Core 直接使用的累加器存储与寄存器和共享内存分离的专用片上内存;其存储单元技术尚未公开说明
CUDA 局部内存(Local Memory)每个线程私有的逻辑地址空间,用于寄存器溢出和部分自动变量GPU 设备 DRAM,通过缓存层级访问;物理位置并不在相应线程附近
常量内存与纹理内存(Constant and Texture Memory)具有专用缓存行为、以读取为主的 CUDA 地址空间数据位于 GPU 设备 DRAM 中,通过专用片上缓存提供访问
分布式共享内存(Distributed Shared Memory)访问同一线程块集群中其他 Block 的共享内存由参与计算的各个 SM 上已有的片上共享内存资源构成
CUDA 统一内存(Unified Memory)可由 CUDA 在不同处理器之间放置或迁移的托管虚拟内存分配CPU DRAM 或 GPU DRAM,取决于数据当前的放置位置

GPU 内存层级(Memory Hierarchy)#

GPU 内存层级
GPU 内存层级

图 3. 以 GPU 为中心的内存层级:越向下容量越大,越向上距离计算单元越近、速度越快。

高效的 Kernel 会尽量在寄存器和共享内存中复用数据,避免过早再次访问 HBM。

参考资料#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

评论区

Profile Image of the Author
平昊阳
乘长风,破巨浪, 展鸿图于未央!
--
总访问量
--
访客数
公告
欢迎来到我的个人博客!欢迎关注交流吖!
更多相关公告,见
社交-留言」。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
站点统计
文章
66
分类
16
标签
93
总字数
477,284
运行时长
0
最后活动
0 天前

文章目录