Contents

Performance Profile

确认PCIe 型号/通道数量/带宽

PCIe 版本发布时间传输速率编码方式单通道带宽x16 带宽
PCIe 1.02003年2.5 GT/s8b/10b250 MB/s4 GB/s
PCIe 2.02007年5.0 GT/s8b/10b500 MB/s8 GB/s
PCIe 3.02010年8.0 GT/s128b/130b984.6 MB/s15.75 GB/s
PCIe 4.02017年16.0 GT/s128b/130b1.969 GB/s31.5 GB/s
PCIe 5.02019年32.0 GT/s128b/130b3.938 GB/s63 GB/s
PCIe 6.02022年64.0 GT/sPAM47.877 GB/s126 GB/s
  • GT/s (Giga Transfers per second) 表示每秒传输次数
  • 实际带宽需要考虑编码开销

4090 vs L40S vs A100 PCIe 规格对比

显卡型号PCIe 版本通道数理论带宽实际带宽
RTX 4090PCIe 4.0x1664 GB/s63 GB/s
L40SPCIe 4.0x1664 GB/s63 GB/s
A100PCIe 4.0x1664 GB/s63 GB/s
  • 所有三款显卡都支持 PCIe 4.0 x16,理论带宽相同
  • 实际使用中,带宽利用率受以下因素影响:
    • 主板 PCIe 插槽版本
    • CPU 支持的 PCIe 版本
    • 系统总线带宽
    • 其他 PCIe 设备占用

查看实际 PCIe 配置:

1
2
3
4
# 查看 PCIe 链路状态
nvidia-smi -q | grep -A 10 "PCI"
# 或使用
lspci -vv | grep -i "LnkSta"
1
2
3
4
# nvidia-smi: NVIDIA 显卡管理和监控工具,显示 GPU 状态信息
# -q: Query, 详细显示 NVIDIA GPU 的所有状态和配置信息
# grep -A 10 "PCI": 查找包含"PCI"关键字的行,并显示该行及其后面10行内容
nvidia-smi -q | grep -A 10 "PCI"
1
2
3
watch -n 0.5 nvidia-smi dmon -s puctmvb
nvtop
NVIDIA Nsight Systems

nvidia-smi

num_workers,通常设置为 CPU核心数的2-4倍 pin_memory, True, 数据加载到 CPU 的锁页内存中,从而使后续 CPU->GPU 的数据传输更快 torchvision.transforms.v2 / NVIDIA DALI io 瓶颈

PyTorch Profiler NVIDIA Nsight Systems NVIDIA Nsight Compute:深入分析和优化单个 CUDA Kernel 工具

加速数据加载,数据格式转为 TFRecord/HDF5减小小文件 IO 使用OpenCV/TurboJPEG替代 Pillow 解码图像 混精度训练 算子优化: torch.compile 编译模型,生成静态图加速 替换低效算子 显存带宽优化

通信瓶颈: DDP 替代DP A100/H100启用 NVLink

扩展优化: DeepSpeed: FSDP:适合超大模型