GPU 架构实例:NVIDIA A100 (Ampere)

基于 A100-SXM4-80GB (CC 8.0) 服务器实测。A100 是 NVIDIA 数据中心 GPU 从 Volta 到 Hopper 的关键转折点——它引入了 TF32 精度、结构稀疏性(Sparsity)、MIG 分区等至今仍是 AI 训练推理基座的能力。本文从架构规格到实测验证完整覆盖。


1. Ampere GA100 概览

A100 基于 Ampere 架构的 GA100 芯片,SM 数量从 V100 的 80 个提升到 108 个。与 V100 的对比:

规格 V100 (Volta) A100 (Ampere) 变化
SM 数量 80 108 +35%
CUDA Cores/SM 64 FP32 64 FP32 + 64 INT32 → 可全部用于 FP32 翻倍
CUDA Cores 总数 5120 6912 +35%
Tensor Cores/SM 8 (Gen1) 4 (Gen3) 减半但单核性能翻倍+
Tensor Core 精度 FP16 TF32, FP16, BF16, INT8, INT4, INT1 精度矩阵完整
L2 Cache 6 MB 40 MB +6.7×
显存 32/16 GB HBM2 80/40 GB HBM2e +2.5×
显存带宽 900 GB/s 2039 GB/s (80GB) +2.3×
NVLink 6 links × 25 GB/s = 300 GB/s 12 links × 25 GB/s = 600 GB/s +2×
PCIe Gen 3 x16 Gen 4 x16 +2×
制程 TSMC 12nm TSMC 7nm 密度提升
MIG 不支持 支持 (最多 7 实例) 新能力
Sparsity 不支持 支持 (2:4 结构化稀疏) 新能力

注:A100 80GB 版本使用 HBM2e,显存时钟 1593 MHz;40GB 版本使用 HBM2,显存时钟 1215 MHz。本文数据基于 80GB 版本。


2. GA100 SM 内部结构

每个 GA100 SM 包含 4 个处理分区(Partitions),每个分区有独立的 L0 指令缓存、Warp Scheduler 和 Dispatch Unit:

GA100 SM (108 个在 A100 中)
├── 4 × 处理分区 (Processing Partition)
│   ├── 1 × Warp Scheduler (32 threads/warp)
│   ├── 16 × FP32 CUDA Core ──┐
│   ├── 16 × INT32 CUDA Core ─┤ 在同一数据路径上
│   ├── 1 × Tensor Core (Gen3) │ → 每 SM 共 4 个 Tensor Core
│   ├── 4 × LD/ST Unit          │
│   └── 1 × SFU                 │
├── 128 KB L1 Data Cache / Shared Memory (可配置)
├── 读取-Only Data Cache
└── 寄存器文件: 65536 × 32-bit

关键改进:V100 中 FP32 和 INT32 数据路径分离,不能同时使用。A100 将两者合并到同一条数据路径上——当不需要 INT32 运算时,INT32 数据路径也可执行 FP32 指令,使每 SM 的 FP32 吞吐实际上可达 V100 的 2 倍。


3. 第三代 Tensor Core

A100 的 Tensor Core 是第三代,带来两个关键新能力:

3.1 TF32:训练精度的”甜点”

TF32 = FP32 的 8-bit 指数 + FP16 的 10-bit 尾数 = 19 bits

TF32 的数值范围与 FP32 相同(不会溢出),但尾数精度截断到 10 bits。对于深度学习训练,这种精度截断在实践中不影响收敛,却能让 Tensor Core 吞吐达到 FP16 的水平——不需要修改任何训练代码,只需将输入保持为 FP32

// CUDA 11+ 中,TF32 默认开启
// cuBLAS / cuDNN 中的 FP32 矩阵乘法自动使用 TF32 Tensor Core
cublasSetMathMode(handle, CUBLAS_TF32_TENSOR_OP_MATH);

3.2 精度矩阵

精度 吞吐 (相对 FP32) 主要用途
TF32 训练(无代码改动)
FP16 训练 + 推理
BF16 训练(与 TPU 兼容)
INT8 16× 推理量化
INT4 32× 轻量推理
FP64 HPC(A100 FP64 ratio = 2:1,V100 相同)

4. HBM2e 显存与 L2 Cache

A100 80GB 版本配备 5 个 HBM2e 堆栈,每个提供 1024-bit 接口:

显存位宽: 5 stacks × 1024 bits = 5120 bits
显存时钟: 1593 MHz
理论带宽: 2 × 1.593 GHz × 5120 / 8 = 2039 GB/s

L2 Cache 从 V100 的 6 MB 暴增到 40 MB——这是 A100 最被低估的升级。40 MB 的 L2 意味着多数中等大小矩阵的中间结果可以被完整缓存,大幅减少 HBM 访问。

实测验证:在 A100 上运行 transpose (4 MB 矩阵),optimized copy 达到 ~1188 GB/s (~58% 理论峰值)。64 MB 矩阵在 RTX 5090 (96 MB L2) 上达到峰值 1341 GB/s——A100 的 40 MB L2 对于 4 MB 矩阵同样提供了可观的加速。


5. A100 实测验证

以下数据来自一台 8 × A100-SXM4-80GB (NVSwitch Gen2) 服务器实测:

# deviceQuery 关键输出
nvidia-smi --query-gpu=index,name,memory.total,clocks.current.sm,clocks.current.memory --format=csv
# 3, NVIDIA A100-SXM4-80GB, 81920 MiB, 1410 MHz, 1593 MHz
属性 deviceQuery 值 说明
Compute Capability 8.0 Ampere
SMs 108 × 64 CUDA Cores/SM = 6912
Max Threads/SM 2048 V100 也是 2048
Max Blocks/SM 32 比 RTX 5090 的 24 更多
Shared Memory/SM 167936 bytes 可配置为 164 KB
Registers/SM 65536  
Async Copy Engines 3 RTX 5090 只有 2
Warp Size 32 所有 NVIDIA GPU 一样
ECC Enabled 数据中心级
NVLink 12 links × 25 GB/s 总双向 600 GB/s
PCIe Gen 4 × 16 max: 5 (RTX 5090) / 4 (A100)

deviceQuery 完整输出参见02_gpu_programming/04_profiling/README.md 中提及的 deviceQuery

NVLink 拓扑:8 卡通过 NVSwitch Gen2 全互联 (NV12),每对 GPU 间 600 GB/s 双向。详见 NVLink 诊断与实操


6. MIG:多实例 GPU

A100 是首款支持 MIG (Multi-Instance GPU) 的 NVIDIA GPU——将一张物理 GPU 切分为最多 7 个独立的 GPU 实例,每个实例有专用的 SM、显存、L2 Cache 和内存带宽:

A100-80GB MIG 配置示例:
  7 × 1g.10gb  (10 GB, ~14 SMs)    — 最多实例
  3 × 2g.20gb  (20 GB, ~28 SMs)    — 均衡
  1 × 4g.40gb  (40 GB, ~56 SMs)    — 最大单实例
  1 × 7g.80gb  (80 GB, full GPU)   — 默认 (非 MIG)

适用场景:多租户推理服务、小模型训练、CI/CD 资源隔离。训练通常不用 MIG(需要整卡算力),推理场景中 MIG 可以避免多个服务竞争同一 GPU。

# 启用 MIG 模式
nvidia-smi -i 0 -mig 1

# 列出 MIG 实例
nvidia-smi mig --list-gpu-instances

7. 结构化稀疏 (2:4 Sparsity)

A100 的 Tensor Core 支持 2:4 结构化稀疏——在每 4 个连续权重值中,最多 2 个可以为零。硬件直接跳过零值的计算,使有效吞吐翻倍:

权重向量: [w0, 0, w2, 0, w4, w5, 0, w7]
            └──2:4──┘  └──2:4──┘
稀疏后有效计算: 50% 的非零值 → Tensor Core 跳过零 → 2× 加速

配合 cuSPARSELt 库或 PyTorch 的 torch.sparse 使用,对推理场景尤其有效。


8. A100 vs 消费级 GPU

A100 与文档中频繁对比的 RTX 5090 的关键差异:

能力 A100 RTX 5090 影响
FP64 性能比 2:1 64:1 A100 适合 HPC 双精度
NVLink 600 GB/s 不支持 多卡训练必须 NVLink
MIG 支持 不支持 多租户 GPU 分区
ECC 默认开启 可选 数据中心可靠性
Async Engines 3 2 并发 D2H/H2D 能力
Max Threads/SM 2048 1536 A100 SM 容更多线程
L2 Cache 40 MB 96 MB RTX 5090 L2 更大(但无 NVLink)

参考