H100详解
NVIDIA H100是当前最强大的AI训练GPU,基于Hopper架构。 本文将深入分析H100的技术创新和性能优势。
预计阅读时间:50分钟·难度:中级·更新时间:2024年4月
H100概述
H100是NVIDIA于2022年发布的旗舰数据中心GPU,采用Hopper架构。 相比A100,H100在大模型训练方面带来了显著的性能提升。
H100核心创新
H100核心创新:
├── 第四代Tensor Core
│ ├── FP8格式支持
│ ├── 更高计算密度
│ └── 3x算力提升
│
├── Transformer Engine
│ ├── 自动精度管理
│ ├── FP8/FP16混合
│ └── 大模型训练加速
│
├── 新的DPX指令
│ ├── 动态规划加速
│ ├── 基因组学7x加速
│ └── 路径优化加速
│
├── 第四代NVLink
│ ├── 900GB/s带宽
│ ├── 18条链路
│ └── 更高互联效率
│
└── 机密计算
├── 安全启动
├── 数据加密
└── 隐私保护架构设计
Hopper架构特性
GH100芯片规格:
┌──────────────────────────────────────────┐
│ 制造工艺: TSMC 4nm │
│ 芯片面积: 814 mm² │
│ 晶体管数: 80 billion │
│ SM数量: 132 (H100启用132个) │
│ CUDA核心: 16896 │
│ Tensor Core: 528 (第四代) │
│ 基础频率: 1095 MHz │
│ 加速频率: 1980 MHz │
│ TDP: 700W │
└──────────────────────────────────────────┘
SM结构改进:
├── 128个CUDA核心/SM
│ ├── 128 FP32核心
│ └── 64 FP64核心
│
├── 4个Tensor Core/SM
│ └── 第四代设计
│
├── 256KB共享内存/L1 Cache
│ └── 比A100增加33%
│
└── 新增DPX单元
└── 动态规划加速器详细规格
H100完整规格
| 规格项 | H100 SXM | 对比A100 |
|---|---|---|
| 架构 | Hopper | Ampere |
| CUDA核心 | 16896 | 6912 |
| Tensor Core | 528 | 432 |
| FP64 | 34 TFLOPs | 19.5 TFLOPs |
| FP32 | 67 TFLOPs | 19.5 TFLOPs |
| TF32 Tensor | 989 TFLOPs | 156 TFLOPs |
| FP16 Tensor | 1979 TFLOPs | 312 TFLOPs |
| FP8 Tensor | 3958 TFLOPs | 不支持 |
| 显存容量 | 80GB HBM3 | 80GB HBM2e |
| 显存带宽 | 3.35 TB/s | 2.0 TB/s |
| NVLink | 900 GB/s | 600 GB/s |
| TDP | 700W | 400W |
Transformer Engine
Transformer Engine技术原理
Transformer Engine (TE) 功能:
┌──────────────────────────────────────────┐
│ 核心功能:自动精度管理 │
│ │
│ 工作原理: │
│ ├── 实时监控Tensor数值范围 │
│ ├── 自动选择最优精度 (FP8/FP16) │
│ ├── 透明集成到训练流程 │
│ └── 无需修改模型代码 │
└──────────────────────────────────────────┘
TE优化技术:
├── 层级精度选择
│ ├── 每层独立精度决策
│ ├── 基于数值稳定性
│ └── 动态调整
│
├── 混合精度策略
│ ├── FP8用于矩阵乘法
│ ├── FP16/BF16用于累加
│ └── 自动转换
│
└── 性能提升
├── 训练加速2-3x
├── 显存节省
└── 精度保持
TE使用示例:
# PyTorch集成
import transformer_engine as te
# 替换Linear层
model = te.Linear(hidden_size, hidden_size)
# 自动FP8训练
with te.fp8_autocast():
output = model(input)FP8精度
FP8格式详解
FP8格式定义: ┌──────────────────────────────────────────┐ │ E4M3格式 (用于前向传播): │ │ ├── 1位符号 │ │ ├── 4位指数 │ │ ├── 3位尾数 │ │ └── 数值范围: ±448 │ │ │ │ E5M2格式 (用于梯度): │ │ ├── 1位符号 │ │ ├── 5位指数 │ │ ├── 2位尾数 │ │ └── 数值范围: ±57344 │ └──────────────────────────────────────────┘ FP8 vs 其他精度: ├── FP16: 16位, 数值范围±65504 ├── BF16: 16位, 数值范围同FP32 ├── FP8 E4M3: 8位, 数值范围±448 └── FP8 E5M2: 8位, 数值范围±57344 FP8优势: ├── 算力翻倍 (vs FP16) ├── 显存减半 ├── 带宽压力减半 └── 适合大模型训练 FP8使用注意事项: ├── 需要TE支持 ├── 部分层不适合FP8 ├── 需要监控精度损失 └── 收敛性验证
NVLink 4.0
NVLink 4.0特性
NVLink 4.0规格:
┌──────────────────────────────────────────┐
│ 链路数量: 18条 │
│ 单链带宽: 50 GB/s (双向) │
│ 总带宽: 900 GB/s │
│ 对比PCIe 5.0: 约14倍带宽 │
│ 对比A100 NVLink: 1.5倍带宽 │
└──────────────────────────────────────────┘
H100 NVLink拓扑:
├── 8 GPU配置 (DGX H100)
│ ├── NVSwitch全互联
│ ├── 900GB/s任意GPU对
│ └── 256GB/s到NVSwitch
│
├── 新增特性
│ ├── NVLink网络扩展
│ ├── 跨节点NVLink (NVLink-Network)
│ └── 统一内存扩展
│
└── 集群互联
├── NVLink-Network交换机
├── 节点间NVLink
└── 与InfiniBand共存性能对比
H100 vs A100训练性能对比
| 模型 | A100时间 | H100时间 | 加速比 |
|---|---|---|---|
| GPT-3 175B | 34天 | 11天 | 3.1x |
| LLaMA-2 70B | 21天 | 7天 | 3.0x |
| BERT-Large | 20分钟 | 7分钟 | 2.9x |
| 推理吞吐 | 基准 | 3-4x | 3.5x |
应用场景
1. 大模型训练
千亿参数以上模型训练首选,FP8+TE带来显著加速
2. 高吞吐推理
大流量推理服务,单卡吞吐量领先
3. LLM微调
快速迭代大模型微调,提高研发效率
4. 多模态模型
视觉语言模型训练,利用FP8优化
上一篇
← A100详解下一篇
RTX 4090 →