GPU 与 CPU 架构的根本差异决定了其在 AI 并行计算中的核心地位,数千计算核心 + 专用加速单元实现了百倍于 CPU 的吞吐量。
GPU 与 CPU 架构差异
| 维度 | CPU | GPU |
|---|
| 设计目标 | 低延迟、复杂逻辑控制 | 高吞吐、大规模并行 |
| 核心数量 | 2-64 个复杂核心 | 数千个简单核心 |
| ALU 占比 | <30% | >80% |
| 适用场景 | 分支密集、逻辑复杂任务 | 数据并行、矩阵密集任务 |
SIMT 架构:GPU 采用单指令多线程(SIMT)模型,以 warp(32 线程)为单位调度执行,线程组织为 Grid→Block→Thread 三级层次。
AI 场景核心优势
大规模并行处理
AI 训练本质是大量矩阵运算,GPU 数千核心可同时处理不同数据元素。以 RTX 4090 为例:16384 个 CUDA 核心,83 TFLOPS 张量性能,原生支持 FP8/FP16/BF16 低精度计算。
专用硬件加速单元
Tensor Core:专为深度学习设计,单周期执行 4×4×4 GEMM 运算,相当于 64 个 FMA 操作。最新一代相比初代性能提升 60 倍。
| 硬件单元 | 功能 |
|---|
| CUDA Core | 标准浮点/整数运算 |
| Tensor Core | 矩阵乘加加速 |
| SFU | 超越函数(指数、对数、三角函数) |
| Warp 调度器 | 线程调度分发 |
内存带宽匹配
HBM2 带宽达 256 GB/s,远超 GDDR6 的 64 GB/s。高带宽确保数据快速传输到计算单元,避免内存瓶颈。
PyTorch GPU 实现
CUDA 张量
1
2
3
4
5
6
7
8
9
| import torch
# GPU 张量类型
x = torch.cuda.FloatTensor(3, 3) # FP32
x = torch.cuda.HalfTensor(3, 3) # FP16
x = torch.cuda.BFloat16Tensor(3, 3) # BF16
# 设备转移
x = x.to('cuda')
|
混合精度训练
1
2
3
4
5
6
7
8
9
10
11
| from torch.cuda.amp import autocast, GradScaler
scaler = GradScaler()
with autocast():
output = model(input)
loss = loss_fn(output, target)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
|
分布式训练
1
2
3
4
5
6
| # DDP 配置
torch.distributed.init_process_group(backend='nccl')
model = torch.nn.parallel.DistributedDataParallel(model)
# PyTorch Lightning
trainer = Trainer(accelerator="gpu", devices=8, strategy="ddp")
|
不同模型架构的 GPU 优化
| 模型类型 | 优化技术 |
|---|
| CNN | im2col 转 GEMM、FFT 卷积 |
| Transformer | FlashAttention、KV 并行、张量并行 |
| RNN/LSTM | 批量处理、向量化、时间步并行 |
发展趋势与挑战
技术突破
- Blackwell 架构:双芯片设计,10 TB/s 带宽,2080 亿晶体管
- HBM 容量扩展:80GB→141GB,带宽 2039 GB/s
- 统一内存架构:CPU-GPU 共享地址空间,NVLink-C2C 900 GB/s
核心挑战
| 挑战 | 现状 |
|---|
| 内存瓶颈 | LLaMA 4 109B 需 218GB 显存 |
| 功耗上升 | H100 达 700W,Blackwell 约 2000W |
| 成本高企 | 单模型月成本可达数百万美元 |
竞争格局
GPU + TPU + NPU + FPGA + ASIC 生态协作成为趋势。TPU 在特定场景效率更高,NPU 功耗更低(推理任务低 10 倍),但 GPU 通用性和生态优势显著。
Comments