学习 CUDA、读 H100 架构图、看 DGX 规格表时,常会碰到 PCIe、OAM、NVMe 等整机与互联术语。本文按「和 GPU 算力关系远近」整理常用名词,并补充与编程/性能相关的要点。芯片内部结构(SM、HBM、NVLink 等)详见 H100-Streaming-Multiprocessor-SM.md。
是什么:主机(CPU/主板)与 GPU、网卡、NVMe 盘等扩展设备之间的标准高速串行总线。你在台式机或服务器里插的那张「显卡」,通常就是通过 PCIe 插槽连到 CPU 的。
| 要点 | 说明 |
|---|---|
| 代数 | PCIe 3.0 / 4.0 / 5.0 / 6.0,代数越高单 lane 带宽越高 |
| lane 数 | 常见 x16(训练卡)、x8、x4;带宽 ≈ 单 lane 速率 × lane 数 |
| 与 CUDA 的关系 | 首次 cudaMemcpy H→D、kernel 启动命令、小数据频繁往返,都受 PCIe 带宽与延迟约束 |
| 典型瓶颈 | 单卡 H100 算力远高于 PCIe 5.0 x16 能喂饱的数据量时,容易出现 PCIe-bound(尤其小 batch、频繁同步) |
和 NVLink 对比:PCIe 走 CPU 域(经 Root Complex);多卡 GPU↔GPU 大流量训练更常用 NVLink / NVSwitch(见下文),带宽远高于 PCIe。
CPU ←—— PCIe ——→ GPU(显存/HBM)
↑
常见:x16 插槽、M.2 上的 NVMe 也走 PCIe
是什么:NVIDIA 的 GPU 间(或 GPU 与特定 CPU)高速直连协议,带宽远高于同代 PCIe。H100 整卡底部可有十几路 NVLink,多卡服务器里常与 NVSwitch 配合。
| 场景 | 说明 |
|---|---|
| 多卡训练 | AllReduce、梯度同步走 NVLink/NVSwitch,避免所有流量挤 PCIe |
| P2P | cudaDeviceEnablePeerAccess 后,两卡显存可直连拷贝(拓扑允许时) |
| 与编程 | nvidia-smi topo -m 可看 GPU 之间是 NV#、PIX、PHB 等拓扑类型 |
是什么:机内 交换芯片,把多张 GPU 的 NVLink 连成全互联或高连通拓扑(如 DGX 8 卡「每张卡都能高速访问其它卡」)。对大规模分布式训练的数据并行 / 张量并行很重要。
是什么:机间高速网络,用于多节点训练(跨服务器 AllReduce)。常见搭配 RDMA(Remote Direct Memory Access),网卡可直接读写远端内存,降低 CPU 拷贝开销。
| 术语 | 含义 |
|---|---|
| HCA | Host Channel Adapter,InfiniBand 网卡 |
| RDMA | 远程直接内存访问,NCCL/MPI 多节点通信底层常用 |
| RoCE | 在以太网上跑 RDMA 的一类方案 |
单机多卡看 NVLink;多机多卡看 IB/RoCE + NCCL。
是什么:基于 PCIe 物理层的内存扩展与池化协议(CXL.mem / CXL.cache 等)。和 CUDA 日常编程关系尚不如 PCIe/NVLink 直接,但在「CPU 旁路扩展内存、异构内存池」的整机方案里会出现。知道它是 PCIe 生态下的内存/缓存一致性扩展即可。
同一颗 GPU 芯片可以做成不同「封装/散热/供电」形态,影响功耗、带宽和是否适合密集集群。
是什么:插在主板 PCIe 槽里的 独立显卡形态(含消费级 GeForce、部分 Tesla/A 系列、H100 PCIe 版)。散热靠机箱风道或涡轮风扇,功耗常低于同芯片的 SXM/OAM 版本,卡间互联通常只有 PCIe + 少量 NVLink(视型号而定)。
是什么:NVIDIA 服务器 GPU 的 板载插座形态(如 SXM2、SXM4、SXM5),芯片焊接在载板上,插在主板专用连接器上。特点:
- 更高 TDP 与供电能力(如 H100 SXM5 700W 级)
- 更多 NVLink 引脚,适合 4/8 卡 NVSwitch 机箱
- 常见于 DGX、HGX 等整机
「SXM」指的是模块标准与插座,不是另一种 GPU 架构名称。
是什么:OCP(Open Compute Project) 定义的开放加速器模块标准,全称 OCP Accelerator Module。把 GPU(或其它 AI 加速器)做成可热插拔、统一尺寸的模块,便于超大规模数据中心换型、运维和液冷。
| 对比 | SXM | OAM |
|---|---|---|
| 标准归属 | NVIDIA 生态为主 | OCP 开放标准,多厂商 |
| 典型产品 | H100 SXM5、HGX 基板 | H100 OAM(如 HGX H100 OAM)、部分 MI300 形态 |
| 散热 | 整机定制风冷/液冷 | 常设计为 整柜液冷、前后风道标准化 |
| 场景 | DGX、HGX 8-GPU | 云厂商大规模 AI 集群、开放硬件机柜 |
记忆:OAM 是「开放标准的 AI 加速模块形态」,不是某种显存或总线协议;和 PCIe、NVLink 正交——模块内部仍用 PCIe/NVLink 连 CPU 或其它 GPU。
| 术语 | 含义 |
|---|---|
| HGX | NVIDIA 的多 GPU 基板参考设计(如 4 或 8 颗 SXM/OAM GPU + NVSwitch) |
| DGX | NVIDIA 整机 AI 服务器(如 DGX H100:8×GPU + NVSwitch + CPU + NVMe) |
| Baseboard | 承载多 GPU 与 NVSwitch 的载板,再装入机箱 |
是什么:面向 SSD 等闪存 的主机协议,跑在 PCIe 之上(物理上是 M.2 或 U.2 等接口)。名字里的「Non-Volatile」= 掉电不丢数据。
| 要点 | 说明 |
|---|---|
| 和 SATA SSD | NVMe 延迟更低、队列更深、带宽更高(直连 PCIe) |
| 和 GPU | 数据集从盘读到 CPU 内存 再 cudaMemcpy 到显存;大模型 checkpoint 加载常是 存储 → DRAM → HBM 链路 |
| 本地盘 vs 网络盘 | 训练节点常用本地 NVMe 做缓存;集群数据集可能在 NFS / 对象存储 / 并行文件系统 |
| 术语 | 含义 |
|---|---|
| U.2 / M.2 | NVMe SSD 的常见物理接口形态 |
| NFS / Lustre / GPFS | 网络/并行文件系统,多机共享数据集 |
| Checkpoint | 训练中断点保存;写盘带宽与 NVMe 性能相关 |
注意:NVMe 是 存储协议,不是 GPU 显存;显存物理上多为 HBM 或 GDDR(见下节)。
| 术语 | 英文 | 简要说明 |
|---|---|---|
| HBM | High Bandwidth Memory | 3D 堆叠高带宽显存,H100/A100 等数据中心卡主力;CUDA Global Memory 的物理载体 |
| GDDR | Graphics DDR | 消费级显卡常用,带宽通常低于同代 HBM |
| DRAM | Dynamic RAM | 主机 系统内存(malloc / new 所在) |
| SRAM | Static RAM | 片上高速存储:SM 内 Shared Memory、L1、寄存器 |
| L2 Cache | — | 全 GPU 共享二级缓存,在 SM 与 HBM 之间 |
| ECC | Error-Correcting Code | 显存/内存纠错,数据中心卡常开启,略占容量、保可靠性 |
| UVM | Unified Virtual Memory | cudaMallocManaged 统一虚拟地址,由驱动按需迁移页,易用但需关注访问模式 |
| Pinned Memory | Page-locked Host Memory | cudaMallocHost 锁页内存,异步 H↔D 拷贝(DMA)更快 |
访存优化见 CoalesedMemoryAccess.md、Bank_Conflict.md。
| 术语 | 含义 |
|---|---|
| GPU / Die | 单颗硅芯片;「满血 die」与「阉割 SKU」SM 数量可能不同 |
| SM | Streaming Multiprocessor,执行 CUDA 线程块的基本单元 |
| GPC / TPC | 芯片内物理分组(Graphics / Texture Processing Cluster) |
| Tensor Core | 矩阵乘加专用单元,FP16/BF16/FP8/INT8 等低精度高吞吐 |
| CUDA Core | 传统 FP32/INT32 标量/向量执行单元 |
| Warp | 32 线程为一组,调度与访存合并的基本单位 |
| MIG | Multi-Instance GPU,一张物理卡切成多个独立 GPU 实例(隔离租户) |
| SKU | 具体销售型号(如 H100 SXM5 80GB vs PCIe 80GB),SM 数、功耗、互联可能不同 |
| TDP / TGP | 热设计功耗 / 显卡总功耗上限,影响散热与供电 |
| Architecture | 架构代际:Volta、Ampere、Hopper(H100)、Blackwell(B200)等 |
主板(Motherboard / Mainboard) 是整机的「背板」:所有核心部件都插在它上面,通过板内走线连到 CPU 和芯片组。学 CUDA 时不必会修主板,但知道各插槽干什么、数据从哪条路走,有助于理解 PCIe 拓扑、NUMA 和训练节点的 I/O 瓶颈。
简化俯视图(消费级单路主板;服务器双路会多一组 CPU 插槽 + 内存槽):
┌──────────────────────────────────────────────────────────────────┐
│ CPU Socket DIMM 内存槽 ×4~8 24pin 主板供电 │
│ (LGA / AM5) (DDR4 / DDR5) │
│ │ │ │
│ └──────── 板内总线(DMI / UPI)────────┐ │
│ ▼ │
│ VRM 供电模组 芯片组 PCH(南桥) M.2(NVMe) │
│ (给 CPU 降压) SATA / USB 等 PCIe x4 通道 │
│ │ │
│ PCIe x16 插槽 ←—— GPU 显卡 │ │
│ PCIe x16 / x8 / x4 ←—— 第二块 GPU、网卡、RAID 卡 │
│ │
│ 前面板音频 / USB 针脚 CMOS 电池 + BIOS 芯片 机箱风扇针脚 │
└──────────────────────────────────────────────────────────────────┘
常见组件一览:
| 组件 | 作用 | 和 GPU / CUDA 的关系 |
|---|---|---|
| CPU Socket | 安装 CPU(如 Intel LGA、AMD SP3/SP5) | 发起 kernel、cudaMemcpy 的「主机端」;多路 CPU 形成 NUMA |
| DIMM 插槽 | 插 系统内存条(DRAM) | malloc / DataLoader / Pinned Memory 所在;容量与通道数影响喂 GPU 的速度 |
| PCIe 插槽 | 扩展槽,×16 / ×8 / ×4 等 | GPU 显卡、部分网卡、部分 NVMe 转接卡插这里;带宽受 CPU lane 分配限制 |
| M.2 插槽 | 小型接口,常接 NVMe SSD | 数据集、checkpoint 本地读写;仍经 PCIe,数据路径:盘 → DRAM → GPU |
| 芯片组(PCH) | 南桥,汇总 SATA、部分 USB、部分 PCIe | 经 DMI 连 CPU;M.2/SATA 盘与 GPU 可能争用 CPU 的 PCIe 资源 |
| VRM | 电压调节模块,给 CPU(有时含内存)供电 | 不直接参与计算,但高负载训练时供电与散热影响 CPU 是否降频 |
| BIOS / UEFI 芯片 | 开机自检、硬件配置 | 可设 Above 4G Decoding、Resizable BAR、IOMMU 等,影响大显存卡识别与虚拟化 |
| SATA 接口 | 接机械盘或 2.5" SATA SSD | 老存储方案,带宽低于 NVMe;训练节点较少作系统盘 |
| 网口(板载 RJ45) | 千兆 / 万兆以太网 | 单机调试够用;多机训练常用独立 IB/RoCE 网卡(也占 PCIe 槽) |
| BMC 芯片(服务器) | 带外管理,独立小系统 | 远程开机、看温度、装系统;与训练算力无关,运维必备 |
| 各种针脚 | 前面板 USB/电源键、风扇、RGB 等 | 装机用;风道不好会导致 GPU/CPU 热降频 |
板内两条关键通路(建立整体感):
路径 A — 算力与显存
CPU ── PCIe Root Complex ── PCIe 插槽 ── GPU ── HBM
(kernel 启动、cudaMemcpy 走这条路)
路径 B — 数据与存储
NVMe(M.2)── PCIe ── CPU ── DRAM ──(再 cudaMemcpy)── GPU
SATA 盘 ── PCH ── CPU ── DRAM ── GPU
消费级主板 vs AI 服务器主板:
| 对比 | 台式机 / 工作站主板 | 训练服务器主板(如 HGX 载板、超微 H12/H13 等) |
|---|---|---|
| CPU | 通常 1 颗 | 常 1~2 颗,甚至更多路 |
| GPU 连接 | 1~2 张 PCIe 显卡 | 多颗 SXM/OAM 焊在 Baseboard 上,经 NVSwitch 互联 |
| PCIe | 槽位少,lane 与 M.2 共享 | 大量 PCIe + NVLink,拓扑为训练优化 |
| 内存 | 4 槽、双通道常见 | 8~32 槽、八通道 / 多 NUMA 节点 |
| 管理 | 一般无 BMC | 标配 IPMI/BMC |
| 供电散热 | ATX 电源 + 风冷 | 冗余 PSU、整板 / 整柜液冷 |
和编程相关的两点:
- GPU 插在哪个 PCIe 槽、连到哪个 CPU(NUMA 节点),会影响
cudaMemcpy带宽——多路机上用nvidia-smi topo -m、numactl --hardware查看。 - M.2 与 GPU 是否共用 CPU 的 PCIe lane(主板说明书会写),两者同时满负载时可能互相抢带宽,大数据集预处理时偶发可见。
| 术语 | 含义 |
|---|---|
| CPU Socket | CPU 与主板插座(如 Intel LGA、AMD SP5) |
| NUMA | Non-Uniform Memory Access;多路 CPU 时,访问「本地节点内存」比远端快。GPU 与哪个 NUMA 节点直连会影响 PCIe 拷贝带宽 |
| IOMMU | 内存管理单元,虚拟化与 DMA 安全;GPU 直通(passthrough)场景会提到 |
| BMC | Baseboard Management Controller,带外管理(IPMI、远程开机、传感器) |
| PSU | Power Supply Unit,电源;8×700W GPU 整机对 PSU 要求极高 |
| Liquid Cooling / CDU | 液冷与冷却分配单元,高功耗 OAM/SXM 集群常见 |
实践:多路服务器上,尽量让 GPU 和发起 cudaMemcpy 的 CPU 内存在 同一 NUMA 节点(numactl、驱动拓扑工具可查)。
| 术语 | 含义 |
|---|---|
| CUDA | NVIDIA 并行计算平台与 API |
| Driver / Runtime | 内核态驱动 + 用户态 CUDA Runtime(libcudart) |
| NVML | NVIDIA Management Library,nvidia-smi 等监控接口 |
| NCCL | 多 GPU / 多节点集合通信库(AllReduce 等) |
| TCC vs WDDM | Windows 上 Tesla/数据中心驱动模式(TCC)vs 显示驱动(WDDM);Linux 服务器无此二分 |
| MPS | Multi-Process Service,多进程共享一卡 SM 资源 |
| DCGM | 数据中心 GPU 健康监控与诊断 |
┌──────── 其它服务器 ────────┐
│ InfiniBand / RoCE │
└─────────────┬───────────────┘
│
┌─────────────────────────────────┴─────────────────────────────────┐
│ 单机(如 DGX / HGX 节点) │
│ CPU ←—— PCIe ——→ GPU0 ←—— NVLink / NVSwitch ——→ GPU1 … GPU7 │
│ │ ↑ │
│ │ HBM(显存) │
│ └── PCIe ——→ NVMe SSD(数据集 / checkpoint) │
│ └── DRAM(系统内存,DataLoader、Pinned Memory) │
└───────────────────────────────────────────────────────────────────┘
数据路径小结:
- 训练算力:主要在 GPU SM + HBM 上跑 kernel。
- 主机↔单卡:PCIe(命令、中小规模 H↔D 拷贝)。
- 卡↔卡:NVLink + NVSwitch(梯度同步)。
- 机↔机:InfiniBand/RoCE + NCCL。
- 磁盘↔内存:NVMe(本地 SSD),再进 GPU。
| 缩写 | 全称 / 中文 | 一句话 |
|---|---|---|
| PCIe | Peripheral Component Interconnect Express | CPU 与 GPU、NVMe 等扩展设备的高速总线 |
| NVMe | Non-Volatile Memory Express | 跑在 PCIe 上的 SSD 协议,不是显存 |
| OAM | OCP Accelerator Module | OCP 开放的 AI 加速模块形态,利于标准化液冷集群 |
| SXM | Server PCI Express Module | NVIDIA 服务器 GPU 插座模块,高功耗多 NVLink |
| HBM | High Bandwidth Memory | GPU 高带宽显存 |
| NVLink | — | GPU 间高速直连 |
| NVSwitch | — | 多 GPU NVLink 交换芯片 |
| MIG | Multi-Instance GPU | 一卡多实例切分 |
| DGX / HGX | — | NVIDIA 整机 / 多 GPU 基板设计 |
| IB | InfiniBand | 机间高速网络,常配 RDMA |
| RDMA | Remote Direct Memory Access | 网卡直连远端内存,少 CPU 拷贝 |
| NUMA | Non-Uniform Memory Access | 多路 CPU 下内存访问远近不一 |
| ECC | Error-Correcting Code | 内存/显存纠错 |
| TDP | Thermal Design Power | 热设计功耗 |
- 芯片内部:H100-Streaming-Multiprocessor-SM.md(GPC、SM、HBM、L2、PCIe、NVLink)
- 访存:CoalesedMemoryAccess.md、Bank_Conflict.md
- 课程路线:README.md
官方参考(可选):NVIDIA CUDA C++ Programming Guide、NVIDIA Data Center GPU 文档。