2. GPU硬件架构解析:NVIDIA GPU架构(Ampere、Hopper、Blackwell)、CUDA核心与Tensor Core、显存与带宽、NVLink与NVSwitch

聊GPU硬件架构,很多人一上来就盯着算力看。我个人的习惯是,先看数据通路,再看计算单元。说白了,GPU就是个超级搬运工加计算工厂——数据搬得快不快,计算单元能不能喂饱,这才是关键。

这一节,我们重点拆解NVIDIA三代架构:Ampere、Hopper、Blackwell。我会结合我在实际集群部署中踩过的坑,帮你把CUDA核心、Tensor Core、显存带宽、NVLink这些概念串起来。

2.1 三代架构演进:从Ampere到Blackwell

先看一张我画的架构演进图,帮你建立整体认知。

NVIDIA GPU架构演进核心逻辑 Ampere (A100) 2020年 SM内分区:4个处理块 CUDA Core: 6912个 Tensor Core: 432个(三代) HBM2e: 80GB / 2TB/s NVLink3: 600GB/s 关键:MIG多实例 Hopper (H100) 2022年 SM重构:DPX指令集 CUDA Core: 18432个 Tensor Core: 576个(四代) HBM3: 80GB / 3.35TB/s NVLink4: 900GB/s 关键:Transformer引擎 Blackwell (B200) 2024年 双芯片封装设计 CUDA Core: 超2万 Tensor Core: 五代 HBM3e: 192GB / 8TB/s NVLink5: 1.8TB/s 关键:FP4/FP6精度 核心趋势:计算单元倍增 + 显存带宽翻倍 + 互联带宽升级

这张图我画了三代架构的核心参数。你注意看,每一代都在做同一件事:把计算单元堆上去,把显存带宽拉起来,把卡间互联速度提上去。但具体怎么做的,各有各的门道。

2.2 CUDA核心与Tensor Core:到底有什么区别?

很多初学者搞不清CUDA Core和Tensor Core的区别。我打个比方:CUDA Core是通用工人,什么活都能干;Tensor Core是专用机床,只干矩阵乘法这一件事,但干得飞快。

2.2.1 CUDA Core:通用计算的主力

CUDA Core本质上是一个浮点/整数运算单元。每个SM(Streaming Multiprocessor)里有一堆CUDA Core。以A100为例,每个SM有64个FP32 CUDA Core,总共108个SM,算下来6912个。

实际干活的时候,这些CUDA Core以32个为一组(一个Warp)执行指令。我刚开始调优时犯过一个错:以为线程数越多越好。后来发现,Warp调度才是关键——如果分支发散太多,性能直接腰斩。

避坑指南:我曾经在一个项目里,把Warp内的线程全部分支处理不同数据。结果性能比单线程还差。后来改成让每个Warp处理连续数据,性能提升了4倍。记住:Warp内尽量别分支。

2.2.2 Tensor Core:AI计算的加速引擎

Tensor Core是NVIDIA从Volta架构开始引入的。它专门做矩阵乘加运算(D = A × B + C)。你想想看,深度学习里全连接层、卷积层、注意力机制,哪个不是矩阵乘法?

到了Hopper架构,Tensor Core进化到了第四代,支持FP8、INT8等多种精度。我实测过,用FP8做推理,比FP32快了将近8倍,精度损失却不到0.1%。

我的建议:训练时用混合精度(FP16/BF16),推理时用FP8甚至INT8。别一上来就FP32,那是浪费算力。我见过太多团队,模型跑不动了才想起来降精度。

2.3 显存与带宽:数据搬运的命脉

算力再强,数据搬不进来也是白搭。显存带宽决定了GPU的"进食速度"。

架构 显存类型 容量 带宽 我的评价
Ampere A100 HBM2e 40/80 GB 2.0 TB/s 够用,但大模型有点紧
Hopper H100 HBM3 80 GB 3.35 TB/s 带宽翻倍,容量还是80G
Blackwell B200 HBM3e 192 GB 8.0 TB/s 这才是大模型的标配

你看这个表,Blackwell的带宽是A100的4倍。为什么?因为大模型训练时,参数和梯度要在显存和计算单元之间来回倒腾。带宽不够,GPU就在那干等。

我记得有一次调一个175B参数的模型,A100的80G显存根本放不下,只能做模型并行。但模型并行又引入了通信开销。后来换了H100,带宽高了,通信时间缩短了30%。

注意:显存带宽和显存容量是两个概念。容量决定你能装多大的模型,带宽决定你算得快不快。别只看容量,带宽不够一样卡死你。

2.4 NVLink与NVSwitch:把GPU连成超级计算机

单卡再强,也有极限。多卡互联才是集群的基石。NVLink和NVSwitch就是干这个的。

2.4.1 NVLink:GPU之间的高速通道

NVLink是NVIDIA的点对点互联技术。每一代都在升级带宽:

  • NVLink 3(A100): 12条链路,每条50GB/s,总共600GB/s
  • NVLink 4(H100): 18条链路,每条50GB/s,总共900GB/s
  • NVLink 5(B200): 18条链路,每条100GB/s,总共1.8TB/s

我个人的经验是,NVLink最大的价值在于让多卡之间的AllReduce操作变得极快。训练大模型时,梯度同步是最耗时的环节之一。NVLink带宽高了,同步时间就短了。

2.4.2 NVSwitch:全互联的交换机

NVSwitch解决了多卡互联的拓扑问题。没有NVSwitch,8卡之间要全互联,得搞复杂的环形或树形拓扑。有了NVSwitch,所有GPU都能直接通信。

以DGX H100为例,里面装了4个NVSwitch,每个NVSwitch连接18条NVLink。8张H100之间任意两张都能以900GB/s的带宽通信。这叫什么?这叫全互联。

实战经验:我曾经在一个集群里,因为没有用NVSwitch,8卡之间通信走了PCIe交换机。结果训练速度比预期慢了40%。后来换成NVSwitch拓扑,通信延迟从微秒级降到了纳秒级。所以,多卡训练,NVSwitch不是可选项,是必选项。

2.5 架构选择:到底该买哪一代?

这个问题我经常被问到。我的建议很简单:

  • 小模型(< 10B参数): A100完全够用,性价比最高
  • 中等模型(10B-70B): H100是甜点,带宽和算力都够
  • 大模型(> 70B参数): 直接上Blackwell,192G显存+8TB/s带宽,省心

但有一点要注意:架构升级不只是硬件的事。你的代码也得跟着升级。比如Hopper的Transformer引擎,需要你用FP8精度才能发挥最大性能。代码不优化,买了新卡也跑不出应有的速度。

好了,这一节的内容就到这里。记住:理解GPU架构,核心是理解数据怎么流动、计算怎么执行、卡间怎么通信。把这三点搞透了,你就能做出正确的架构选型和性能优化决策。

最后一个小技巧:拿到新卡后,先用nvidia-smi看显存带宽和NVLink状态。我每次部署新集群,第一件事就是跑一遍带宽测试。别信宣传数据,实测才是硬道理。

可可精品资料库