H200CUDA QUICK REFQR-200

NVIDIA · HOPPER · GH100 DIE · SXM

H200· 数字速查

面向 CUDA 算子 / 框架工程师 · 写 kernel 时一眼查到的关键数字 · 括号内为相对 ×A100 倍数

MAIN READOUT · 主显示屏 DISP · 01
HBM3e 容量 · CAPACITY 141GB A100 80GB · ×1.76
HBM 带宽 · BANDWIDTH 4.8TB/s ×2.36 A100 · 最大跃升
SM 数量 · SM COUNT 132 ×1.22 A100 · 528 TC
BF16 算力 · DENSE 990TFLOPS SPARSE 1,979 · 非基准
SMEM / SM · 每 SM 228KB A100 164KB · L1 合池 256KB
COMPUTE CAPABILITY 9.0 HOPPER · cluster / wgmma / TMA
RDY · 口径 H200 SXM 700W · DENSE 为 ROOFLINE 基准 · ×A100 为整量比值 · 延迟为量级参考
SCALE 1:1 · GH100 · 141 GB
01

整机级

CHIP-LEVEL · FULL-DEVICE SPEC
指标H200 SXM相对 A100 · 刻度 0–4×直觉注解
核心规模
发布年份2023.11(SC23)A100 · 2020.5发布相隔 3.5 年;H200 2024Q2 起交付
架构 / dieHopper · GH100Ampere · GA100同 die,H200=H100 换 HBM3e
工艺 / 晶体管 / 面积TSMC 4N · 80B · 814mm²7nm · 54.2B · 826mm²4N 专工艺,频率/能效双升
SM 数量132×1.22108→132,多 24%
GPC / TPC8 GPC / 66 TPC7 GPC / 54 TPCcluster 受限于单 GPC 内
FP32 CUDA Cores16,896 (128/SM)×2.44每 SM 翻倍 64→128
FP64 Cores8,448 (64/SM)×2.44clock-for-clock 2×
INT32 Cores8,448 (64/SM)×1.22未翻倍,地址算力瓶颈点
Tensor Cores(第四代)528 (4/SM)×1.22数量同,但单核 2× 吞吐
存储与带宽
HBM 容量141 GB HBM3e×1.7680GB→141GB,放得下大模型
HBM 带宽4.8 TB/s (4800 GB/s)×2.362039→4800,HBM 是最大跃升
L2 Cache50 MB×1.2540→50MB,缓模型切片
L2 分区partitioned crossbarGPC 直连分区,局部性好
频率 / 功耗 / 互联
GPU Boost Clock~1.83 GHz×1.301.41→1.83GHz;1 cyc ≈ 0.55ns
TDP700 W (max 805W)×1.75液冷 SXM,能效仍升
NVLink(第四代)900 GB/s · 18 links×1.50600→900,all-reduce 3×
PCIeGen5 · 128 GB/s×2.00Gen4 64,双向往返
MIG 实例最多 7 × 18GB2代 MIG,含独立 NVDEC
Compute Capability9.08.0cluster/DSMEM/wgmma/TMA 门槛
02

单 SM 级

PER-SM RESOURCES · CC 9.0 VS CC 8.0
资源H200 (cc 9.0)A100 (cc 8.0)直觉注解
FP32 Cores12864datapath 翻倍,FP32 密集 kernel 受益
FP64 Cores64322× clock-for-clock
Tensor Cores4(第四代)4(第三代)同数,单核 MMA 吞吐 2×
Register File256 KB = 65,536 × 32-bit256 KB同;occupancy 与 reg/thread 权衡核心
Shared Memory(max)228 KB164 KB+39%,tiling 能开更大
L1 + SMEM 合池256 KB192 KB可配比,228KB smem 时 L1 仅 28KB
Max threads / SM2,0482,048同;64 warps
Max thread blocks / SM3232
Max registers / thread255255255 而非 256(硬件保留)
每 thread 平均寄存器 @满占用323265536 / 2048;加 reg 必降占用度
Max thread blocks / cluster16Hopper 新层;实际 cluster ≤ 8 blocks
OCCUPANCY 速算 · 寄存器与占用度的取舍

每 SM 65,536 个寄存器、最多 2,048 线程。寄存器越多 → 单线程越强,但能并发的 block/warp 越少(占用度下降)。

# 每 thread 用 R 个寄存器时,单 SM 最大并发线程数:
threads = min(2048, floor(65536 / R) * blocksize)
# 例:R=128, blocksize=256 → floor(65536/128)=512 threads/block... 实际按 block 对齐
# R=64  → 每 SM 1024 threads (50% 占用)  | R=32 → 2048 (100%)

Hopper 上 wgmma 需要较多寄存器存放 accum(每个 warpgroup 4 warps),常主动降到中占用度换 ILP——这是 Hopper kernel 与 Ampere 最大的调参差异之一。

03

Hopper 架构图

MICROARCHITECTURE SCHEMATIC · GH100
FIG. 03 · 设备线框原理图
HBM3e · 141 GB · 4.8 TB/s global memory · ~500-600 cyc/访 (~300ns) ~2.36× A100 L2 Cache · 50 MB · partitioned crossbar 全片共享 · 硬件管理 ~200 cyc (~110ns) · ×1.25 A100 GPC × 8(每 GPC 含多个 TPC/SM · cluster 受限于单 GPC) GPC 0GPC 1GPC 2 GPC 3GPC 4GPC 5 GPC 6GPC 7 THREAD BLOCK CLUSTER(≤8 blocks · same GPC)★ DSMEM:SM 间直访彼此 shared mem SM 4× TC 256KB reg 228KB smem TMA SM 4× TC SM 4× TC SM 4× TC 单 SM 内部结构(Streaming Multiprocessor) 4× Sub-partition · 每 partition: 32 FP32 + 1 TC 4× Tensor Core(第四代 · wgmma/mma_async) Register File 256KB · max 2048 threads Shared Mem / L1 合池 256KB(smem ≤228KB) TMA unit · async barrier(mbarrier) Warp Scheduler · LSU · DPX units 编程层级(自底向上) Thread(32/warp) → Warp → Warp Group(4 warps=128 · wgmma 单位) → Thread Block(单 SM) → Thread Block Cluster(≤8 SM · GPC 内)★ → Grid Hopper 三大异步 TMA(搬运)· wgmma(计算)· mbarrier(同步) 端到端流水,隐藏访存于计算 cluster 内 SM-to-SM 网络(DSMEM)
HBM(实心) 片上存储(L2 / SMEM / RF) SM / 计算单元 Hopper 新特性(Cluster / DSMEM / TMA) 数据通路 / 标注引线

FIG. 03 — GH100 BLOCK DIAGRAM · HBM → L2 → GPC → CLUSTER → SM

04

存储层级

MEMORY HIERARCHY · CAPACITY × BANDWIDTH
层级容量(每 SM / 全片)峰值带宽谁管理 / 注解
Register File256 KB/SM · 33.8 MB/片~13 TB/s/SM(量级)编译器分配;最快,决定占用度
Shared Memory / L1228 KB/SM(合池 256KB)~4 TB/s/SM(量级)程序员显式;bank conflict 防护
L2 Cache50 MB(全片共享)~12 TB/s(量级)硬件管理;可设 residency 控制
HBM(global)141 GB4.8 TB/s最大最慢;用 TMA / cp.async 隐藏
DSMEM(集群内邻居 SM)邻居 SM 的 smem~local smem 量级Hopper 新;SM-to-SM 网络

带宽列为架构推导量级 — 见页脚脚注 [1]

05

精度算力对照

PRECISION × THROUGHPUT · TFLOPS

单位 TFLOPS(INT8 为 TOPS)。dense = 稠密峰值(写 kernel 算 roofline 用这个),sparse = 2:4 结构化稀疏(NVIDIA 官方 spec 常引此值)。

DENSE · 主读数(基准口径)SPARSE · 副读数(2:4 参考,非基准)

精度H200 DENSEH200 SPARSE A100 DENSEA100 SPARSE×A100 (dense)
FP64(非 TC)349.7×3.50
FP64 Tensor Core6719.5×3.40
FP32(非 TC)6719.5×3.40
TF32 Tensor Core494989156312×3.17
BF16 Tensor Core9901,979312624×3.17
FP16 Tensor Core9901,979312624×3.17
FP8 Tensor Core1,9793,958HOPPER 新
INT8 Tensor Core1,9793,9586241,248×3.17
NOTE · 为什么 dense 才是写 kernel 的基准

NVIDIA datasheet 的 TF32/BF16/FP16/FP8/INT8 峰值通常是 sparse(2:4) 值——它要求每 4 个元素里至多 2 个非零,由 Tensor Core 硬件压缩。绝大多数 GEMM/Attention kernel 的权重/激活不满足 2:4 结构,所以 roofline / 性能分析必须用 dense 列(sparse 的一半),否则会把目标定高 2 倍。

06

关键延迟

LATENCY CROSS-SECTION · CYCLES @ ~1.83 GHZ

访问各级存储的延迟量级。cycle 数 @ ~1.83 GHz 换算 ns(1 cyc ≈ 0.546 ns)。资深工程师最易记忆模糊、却对优化最关键的一组数。

访问类型~cycles~ns @1.83GHz直觉注解
Register 读~1~0.5流水线内零可见延迟;依赖链 FP32~4cyc 才是要 hide 的
Shared Memory(无 bank conflict)~28–33~15–18SM 内 32 bank×4B 软件管理
L1(global 命中)~32–33~18与 smem 共池,命中即此延迟
L2(near 分区,命中)~264~144GPC 本地分区;H100/H200 的 L2 是两级
L2(far 跨分区)~500+~275+数据落远分区 ≈ near 的 2×
HBM(global,L2 miss)~650~355最慢;TMA / cp.async 必须异步覆盖
DSMEM(集群内邻居 SM)~200–210~110–115本地 smem(~33) 的 ~6×,但远低于 global(~650)
SMEM bank conflict×2 / ×4+倍增32 路冲突最坏 ×32

实测来源与可信度说明 — 见页脚脚注 [2]

CAUTION · 延迟敏感的直觉锚点
HBM ~650 cyc
×1 · 22 等分
SMEM ~30 cyc
×22 ≈ 1 次 HBM
REGISTER ~1 cyc
×650 ≈ 1 次 HBM

一次 HBM 访问(~650 cyc)≈ 22 次 shared memory 访问 ≈ 650 次 寄存器访问。这就是为什么 tiling 到 shared memory + 用 TMA 异步预取 是 Hopper kernel 的命门——不是可选项。

07

Roofline 临界点

ROOFLINE RIDGE POINT · FLOP/BYTE
RIDGE POINT · 脊点 = 峰值算力 ÷ HBM 带宽
ridge [FLOP/byte] = Peak_TFLOPS ÷ 4.8 TB/s

ridge point 是硬件常数(每块卡固定);AI(arithmetic intensity)是算子变量(每字节 FLOP)。判断:算子 AI > ridge → compute-bound;AI < ridge → memory-bound。用 dense 峰值算(见 §5)。

精度 (dense)峰值临界 ridge (FLOP/byte)典型 kernel 归属
FP8 TC1979 T~412几乎只有大 GEMM 能达标
FP16 / BF16 TC990 T~206GEMM / FlashAttention 可达
TF32 TC494 T~103大 GEMM 达标
FP32(非 TC)67 T~14elementwise/归一化多在此
FP6434 T~7HPC kernel 易达 compute-bound

实操:用 Nsight Compute 的 achieved AI 对照 ridge point,立即知道瓶颈是算力还是带宽。H200 带宽翻倍(×2.36)后,很多 kernel 从 compute-bound 滑向 memory-bound——这是 H100→H200 移植时最该重检的。

08

Hopper 关键特性

FEATURE MODULES × 5 · OPERATOR OPTIMIZATION

五大算子优化特性,每张卡 = 定义 + 关键数字 + 极简 snippet。点 [详情→] 看机制 / 完整可编译示例 / 陷阱

★ 特性 1 / 搬运

TMA · Tensor Memory Accelerator

单线程发起 · 1D-5D 张量 · ≤ smem 容量整块

硬件地址生成引擎,用 copy descriptor(张量维度+块坐标)替代逐元素寻址。把 A100 的 LDGSTS 地址循环开销整个卸到硬件。

// host: 建 tensor map(描述符)
CUtensorMap tmap;
cuTensorMapEncodeTiled(&tmap, ...);
// device: 单线程发起异步整块搬运
asm("cp.async.bulk.tensor.2d.shared.global"
    " .mbarrier::complete_tx::bytes ...");
mbarrier.wait();  // 等搬运完
机制 / multicast / 完整示例 →
★ 特性 2 / 计算

wgmma · 异步 Tensor Core

1 warpgroup = 4 warps = 128 threads · m64nNk16

warp group 级异步 MMA,比 Ampere mma.sync tile 更大且异步执行(fence→commit→wait)。A100 是单 warp 同步 mma.sync,Hopper 改为 4 warp 协作异步,吞吐翻倍。

// 128 线程协作发起一次异步 GEMM
wgmma.fence;
asm("wgmma.mma_async.sync.aligned"
    ".m64n128k16.f32.f16.f16 ...");
wgmma.commit_group;
wgmma.wait_group 0;
shape 表 / 完整示例 / 占用度 →
★ 特性 3 / 集群

Thread Block Clusters

≤ 8 thread blocks · 必须同 GPC

CUDA 编程层级新加一层(thread→warp→block→cluster→grid)。cluster 内多个 block 保证并发调度到一组 SM,硬件 barrier 同步,是 DSMEM 的前提。

// launch 时声明 cluster 维度
__global__ void __cluster_dims__(2,2,1)
    kernel(float* d) {
  namespace cg = cooperative_groups;
  cg::cluster_group c = cg::this_cluster();
  c.sync();          // 跨 SM 硬件 barrier
  unsigned r = c.block_rank();
}
约束 / launch 配置 / 示例 →
★ 特性 4 / 共享

DSMEM · 分布式共享内存

集群内 SM 间直访 · 比走 global 快 ~7×

cluster 内各 block 的 shared memory 映射进统一地址空间,线程可直接 load/store/atomic 邻居 SM 的 smem,不必绕道 global memory 做数据交换。

cg::cluster_group c = cg::this_cluster();
extern __shared__ int smem[];
// 取邻居 block(rank 1) 的同位置 smem 指针
int* nb = c.map_shared_rank(smem, 1);
int v = *nb;   // 直达 SM-to-SM 网络
寻址模型 / 示例 / 陷阱 →
★ 特性 5 / 精度

FP8 · 原生低精度

E4M3(精度) + E5M2(范围) · 2× FP16 吞吐

两种格式:E4M3 精度高范围小(前向),E5M2 范围大精度低(反向梯度)。相比 FP16 存储减半、吞吐翻倍。eager mode 支持运行时与 FP16/BF16 互转。

#include <cuda_fp8.h>
__nv_fp8_e4m3 w[...];     // 前向权重
__nv_fp8_e5m2 grad[...];   // 反向梯度(大范围)
float acc[...];            // FP32 累加
// 经 wgmma mma_async .e4m3 发射
格式对比 / scaling / TE →
AUXRESERVED · 预留扩展位