☰
【CUDA编程入门⑩】Hopper与Blackwell新特性:FP8、TMA与NVL72如何改变AI Infra
2026/10/28 1:46:14 网站建设 项目流程

【CUDA编程入门⑩】Hopper与Blackwell新特性:FP8、TMA与NVL72如何改变AI Infra

本文是「CUDA编程与HPC高性能计算」系列的第十篇,也是第二章的收官之作。GPU架构的每一次升级,都不只是"算力翻倍"的数字游戏——新的硬件特性会深刻改变kernel的写法、并行策略的设计、甚至整个系统的架构。本文带你看懂两代旗舰架构(Hopper H100 和 Blackwell B200/GB200)的核心新特性,以及它们对AI Infra的深远影响。


一、写在前面:架构演进背后的不可能三角

GPU为什么要不断更新架构?因为模型越来越大、需求越来越高。

而GPU架构的每一次演进,本质上都是在计算 / 通信 / 显存这个不可能三角上重新分配筹码:

  • 计算侧:摩尔定律放缓,纯靠制程提频提密度越来越贵 → 那就用低精度(FP16 → FP8 → FP4)来换单位晶体管的算力
  • 显存侧:模型规模增速远超单卡显存增速 → HBM带宽和容量不断提升,但仍然是瓶颈
  • 通信侧:单卡装不下就得多卡 → 卡之间的互联带宽,直接决定了并行策略的设计空间

Hopper和Blackwell的所有新特性,都可以放进这个三角里理解。下面我们按代际展开。


二、Hopper H100:2022-2024的主力卡

2.1 关键规格速览

项目H100 SXM对比A100
Tensor Core第四代新增FP8支持
FP8 dense算力约1979 TFLOPS是FP16的2倍
FP16/BF16算力约989 TFLOPS是A100的约3.2倍
显存80GB HBM3带宽约3.35 TB/s(A100是2.0 TB/s)
互联NVLink 4.0约900 GB/s(A100是600 GB/s)

FP8是Hopper最重磅的特性。

FP8有两种格式:

  • E4M3:4位指数 + 3位尾数 → 精度高、动态范围小 → 用于前向的权重与激活
  • E5M2:5位指数 + 2位尾数 → 范围大、精度低 → 用于反向的梯度

为什么FP8这么重要?因为它在不可能三角的三个边上同时获益:

  • 计算:Tensor Core算力翻倍
  • 显存:每元素字节数减半(从2B到1B)
  • 带宽:同样的带宽,能读两倍的数据量

代价呢?需要精细的量化与缩放管理(per-tensor / per-block scaling)——精度控制不好,训练就崩了。这也是Transformer Engine等框架存在的意义。


2.2 TMA:硬件级异步数据搬运

TMA(Tensor Memory Accelerator)是Hopper引入的硬件级异步批量数据搬运单元。

之前是怎样的?

在Ampere(A100)时代,global → shared的拷贝要靠每个线程发cp.async指令:

  • 每个线程都要算地址、处理越界
  • 占用了线程的指令槽和寄存器
  • 指令多、开销大
TMA带来了什么变化?

TMA把数据搬运这件事整个offload到了专用硬件引擎:

  • 一个线程发起,整个tile搬完:线程只需构造一个多维tensor描述符(形状、stride、tile大小),TMA引擎负责后续所有地址生成与搬运
  • 越界处理硬件化:描述符声明了真实边界,越界部分硬件自动填充——kernel里不用写mask分支了
  • 解放线程与寄存器:省下的寄存器可以扩大tile或提高occupancy
  • 配合mbarrier异步等待:数据到达后通知,真正实现"搬运与计算重叠"

对kernel写法的影响是结构性的——数据搬运从"所有线程的职责",变成了"一条描述符 + 一次发起 + 一次等待"。

这为下一个特性——Warp Specialization——铺平了道路。


2.3 Thread Block Cluster 与 DSMEM:扩大共享内存域

Hopper还引入了一个新特性:Thread Block Cluster。

简单说就是:允许多个thread block组成一个cluster,cluster内的block可以直接读写彼此的shared memory——这就是Distributed Shared Memory(DSMEM)。

可移植的cluster大小最多8个block(硬件上限16个)。

意义是什么?

扩大了"共享内存域"。

原本一个block的共享内存只有~164KB(A100),只能服务于一个block。现在一个cluster可以共享约1.8MB(8个block)的片上存储。

对GEMM这类算子,相邻block需要相同的A/B tile——有了DSMEM,tile只需从HBM加载一次,然后在cluster内分发,直接削减了L2/HBM的流量。


2.4 Warp Specialization:warp分工的新范式

传统kernel里,每个warp都是"搬数据 → 算 → 搬数据 → 算"的循环——搬运延迟只能靠软件流水线部分隐藏。

Hopper上高性能kernel的主流写法变成了warp specialization(warp分工):

生产者warp(少数):专职发TMA搬运,填满共享内存的多级缓冲 消费者warp(多数):专职从共享内存取数、调用Tensor Core计算 两者之间:用mbarrier做满/空信号同步,形成多级流水

就像工厂里的流水线:

  • 有人专门负责运料(生产者)
  • 有人专门负责生产(消费者)
  • 中间用传送带(多级缓冲)连接

这样做的好处是:计算单元几乎不停歇——消费者warp一直在算,数据由生产者warp提前备好。

CUTLASS 3.x把这一范式产品化了,有cooperative和pingpong两种schedule。


2.5 FlashAttention-3:新特性的集大成者

FA3是检验Hopper新特性价值的最佳案例:

  • FA2在H100上只达到约35%的峰值利用率——因为FA2是为A100设计的,没用上TMA与异步能力,GEMM与softmax之间的串行依赖让Tensor Core大量空转
  • FA3通过TMA + warp specialization + GEMM-softmax流水重叠,达到约75%的峰值利用率——相对FA2接近翻倍
  • FP8版FA3进一步提速,但FP8在attention里的精度问题很敏感——Q/K/V的离群值会被量化放大。FA3用block量化(每个tile独立缩放因子)和非相干处理来缓解误差

FA3也印证了一个趋势:吃满新硬件红利的kernel,手写复杂度大幅上升——这正是为什么"Triton价值上升、但极致场景仍需手写CUDA"。


三、Blackwell B200/GB200:2024-2025的新旗舰

3.1 关键规格与新特性

项目B200相对H100的变化
封装双die,约2080亿晶体管两颗die超高速互连封装为一颗GPU
Tensor Core第五代新增FP4与微缩放格式
低精度格式FP4、MXFP6、MXFP4FP8之上再砍一半位宽
显存HBM3e容量和带宽进一步提升
互联NVLink 5每GPU约1.8 TB/s,是NVLink 4的2倍
MXFP6/MXFP4:微缩放出马

什么是MXFP?就是微缩放(microscaling)格式:

  • 不再对整个tensor用一个缩放因子
  • 而是每32个元素共享一个缩放因子
  • 细粒度缩放让4-bit/6-bit精度在实际模型上真的能用

这延续了"用更精细的量化管理,换取计算/显存/带宽三重收益"的路线。


3.2 NVL72:机柜级scale-up域

Blackwell最大的结构性变化不在单卡,而在整机柜:

NVL72把72个GPU用NVLink 5全互联,组成一个巨型scale-up域——柜内任意两卡之间都能以接近单跳NVLink的带宽通信。

对比一下:

  • Hopper时代:一台DGX H100只有8卡组成NVLink域,跨机必须走IB(带宽差一个数量级)
  • Blackwell时代:NVL72把高速域扩大了9倍!
这对MoE意味着什么?

MoE模型的专家并行(EP)需要频繁的all-to-all通信——每个token被路由到不同专家。

  • 8卡时代:EP度数大了就必须跨机 → all-to-all走IB → 瓶颈
  • NVL72时代:EP=64甚至更高的all-to-all可以完全在机柜内完成→ 通信不出柜

这直接改变了大MoE模型(如DeepSeek类架构)的并行策略设计:

  • scale-up域(NVL72内):负责EP(专家并行)——通信量大,但NVLink带宽够
  • scale-out网络(IB/RoCE):只承担DP/PP的低频通信

集群拓扑设计的第一性问题变成了:哪些通信必须留在NVLink域内?


四、三代架构对比总表

最后用一张表,把A100到B200的演进串起来:

维度A100 (Ampere)H100 (Hopper)B200 (Blackwell)
发布年份202020222024
Tensor Core第三代第四代(+FP8)第五代(+FP4/MXFP)
FP16/BF16 dense~312 TFLOPS~989 TFLOPS~2.25 PFLOPS
FP8 dense不支持~1979 TFLOPS~4.5 PFLOPS
FP4 dense不支持不支持~9 PFLOPS
显存+带宽80GB HBM2e,~2.0 TB/s80GB HBM3,~3.35 TB/sHBM3e,更高
GPU互联NVLink 3,~600 GB/sNVLink 4,~900 GB/sNVLink 5,~1.8 TB/s
scale-up域8卡(DGX)8卡(DGX/HGX)72卡(NVL72)
标志性新特性TF32TMA、Cluster/DSMEM、FP8双die、FP4/MXFP、NVL72

注:以上数字是常见公开口径的约数,不同版本有差异,以官方datasheet为准。


五、对AI Infra的深远影响

新硬件不只是"更快了"——它会改变整个技术栈的设计思路。

5.1 FP8训练与推理已成标配

H100时代,FP8训练需要精细的scaling策略(delayed scaling、per-tensor scale的amax历史),框架层(Transformer Engine)已经封装好了。Blackwell的MXFP4把同样的思路推到了4-bit。

对Infra工程师的要求:理解量化误差的来源与缓解手段,而不只会开开关。

5.2 kernel开发门槛提高,Triton/CUTLASS价值上升

TMA描述符、mbarrier、warp specialization……手写复杂度远超Ampere时代。

这造成了两个后果:

  1. 极致kernel集中在少数团队(FA3、CUTLASS)——普通人写不动了
  2. 大多数人转向Triton——编译器逐步接入新特性,虽然慢半拍,但开发效率高太多了

这就是我们反复说的"分层格局"——原型和非核心算子用Triton,核心算子沉淀到CUTLASS/手写CUDA。

5.3 并行策略跟着scale-up域走

8卡时代,EP度数保守;NVL72时代,EP可以开大、MoE的all-to-all留在柜内。

集群规划时,**“哪些通信必须留在NVLink域内”**成了拓扑设计的第一性问题。

5.4 Decode吞吐看带宽,不看算力

低精度时代,算力过剩、带宽稀缺。Decode阶段的理论上限是:

Decode吞吐上限 = 带宽 ÷ 每token参数字节数

评估硬件代际收益时,先算这笔账——别光看算力数字。


六、新特性速查表

最后,用一张表把新特性和受益技术对应起来:

硬件新特性所属维度直接受益的技术对不可能三角的作用
FP8 Tensor Core计算+显存FP8训练、FP8推理、FA3-FP8算力翻倍 + 每元素字节减半
TMA计算-显存之间warp specialization、FA3、CUTLASS 3.x搬运硬件化,解放线程与寄存器
Cluster/DSMEM显存(片上)大tile GEMM、跨block数据复用扩大共享内存域,削减L2/HBM流量
Warp Specialization计算-显存重叠CUTLASS pingpong/cooperative、FA3消除计算单元空转
FP4 / MXFP6 / MXFP4计算+显存低比特推理、量化训练探索算力再翻倍 + 字节再减半
NVLink 5 + NVL72通信MoE专家并行、大EP all-to-allscale-up域从8卡扩到72卡

七、第二章收官:我们学到了什么

到这里,「CUDA编程与HPC高性能计算」这一章就全部讲完了。我们来回顾一下:

基础篇:

  • CUDA编程体系:Grid/Block/Thread、内存层次、Warp执行模型
  • 性能优化基础:合并访存、共享内存、Warp Shuffle、Occupancy

算子篇:

  • Reduce:从全局原子加到共享内存树形归约,再到Warp Shuffle优化
  • GEMM:从为什么需要Tiling,到Shared Memory Tiling实现,再到Tensor Core
  • Attention:从标准Attention的内存墙,到FlashAttention、Flash-Decoding、PagedAttention

拓展篇:

  • CPU多线程并行:OpenMP、NUMA、SIMD——CPU优化也不能丢
  • HPC算子开发实战:五大核心优化技术、多平台差异、业务实战
  • 性能分析工具链:nsys、ncu、PyTorch Profiler、Roofline模型
  • Triton编程:用Python写高性能kernel,开发效率与性能的tradeoff
  • Hopper/Blackwell新特性:FP8、TMA、warp specialization、NVL72——架构演进如何改变AI Infra

贯穿始终的主线:还是那个不可能三角——计算、通信、显存。所有优化、所有架构演进,本质上都是在这三者之间做取舍。

下一章预告:我们将进入「AI编译器」的世界——模型是怎么从PyTorch代码变成高效执行的kernel的?TVM的架构是什么样的?图优化Pass有哪些?编译后端又是怎么回事?敬请期待。


📚本系列导航(第二章·完):

  • 第1篇:CUDA编程体系全景:线程模型、内存层次与Warp执行机制
  • 第2篇:CUDA性能优化基础:内存访问、Warp Shuffle与Occupancy调优
  • 第3篇:经典算子实战:Reduce归约——从朴素到高性能
  • 第4篇:经典算子实战:GEMM矩阵乘法——从Tiling分块到Tensor Core加速
  • 第5篇:Attention算子:从FlashAttention到PagedAttention的演进之路
  • 第6篇:CPU多线程并行优化:OpenMP、NUMA与SIMD向量化
  • 第7篇:HPC算子开发实战:从优化方法论到业务落地
  • 第8篇:性能分析工具链:Nsight、Profiler与Roofline模型
  • 第9篇:Triton编程实战:用Python写高性能GPU Kernel
  • 第10篇:Hopper与Blackwell新特性:FP8、TMA与NVL72(本文)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询