MI300X// FABRIC

MI300X · CDNA3 · GFX942 · 特性专题

Infinity Fabric · 8 卡全互联

★ CDNA3 互联主线 · 7×128 GB/s 无交换机直连 · 8×192GB = 1.5TB 单机显存

01

是什么

DEFINITION

每张 MI300X 出 7 条 16-lane Infinity Fabric 链路(每条双向 128 GB/s),在 UBB 主板上与其余 7 张卡全互联(无交换机):合计 896 GB/s[1]。PCIe Gen5 x16 是留给 host 的第 8 条通路。卡间 P2P 与 XGMI(AMD 的 GPU 直连协议)让 8 卡表现为一个 1.5TB 显存的近节点域。

软件栈:通信走 RCCL(NCCL 的 ROCm 移植,API 同构),P2P 走 hipMemcpyPeer / hipHostRegister 直达。

02

为什么(vs NVLink / IB)

RATIONALE · COMPARISON
维度H200 NVLink4B200 NVLink5/NVL72MI300X IF/XGMI
单卡双向带宽900 GB/s1.8 TB/s896 GB/s(7×128)[1]
拓扑NVSwitch(基板交换)NVSwitch4(72 卡单域)全互联直连,无交换机
单域规模872 → 5768(再往上走 IB/以太)
单机显存8×141GB = 1.13TB72×186GB = 13.4TB(NVL72)8×192GB = 1.5TB
通信库NCCLNCCLRCCL(API 同构)

MI300X 集群的故事是「单节点显存最大」:8 卡 1.5TB HBM3,一笔 70B 权重 + 长 context + KV cache 都塞得下。代价是 8 卡之外没有 scale-up 域——超 8 卡的 TP/EP 通信预算要按网络(IB/以太)重算。

03

关键数字

KEY NUMBERS · BANDWIDTH BUDGET
链路数 × 带宽7 × 128 GB/s(16-lane @32Gbps)双向口径[1]
合计896 GB/s第 8 条通路 = PCIe Gen5 x16
单机显存1.5 TB(8×192GB HBM3)vs HGX H200 1.13TB
通信:显存带宽比896 : 5300 ≈ 1 : 5.9H200 为 900:4800 ≈ 1:5.3;B200 1:4.4
TP=8 all-reduce 预算≈ bytes×2×7/8 ÷ 128GB/s/环全互联环上每跳 128GB/s
04

代码与账本

RCCL PATH · BANDWIDTH MATH

① RCCL(NCCL API 同构,hipcc 编译)

// 8 卡 XGMI 全互联:RCCL 检测 P2P 直达,不走 host:
ncclCommInitRank(&comm, 8, devs, rank);
ncclAllReduce(buf, buf, n, ncclBfloat16, ncclSum, comm, stream);
// 验证拓扑:rocm-smi --showtopo / rccl 调试日志看 XGMI 链路

② TP all-reduce 时延速算

# 70B 模型 FP8 梯度 70GB,ring all-reduce 通信量 2·N·(P-1)/P:
bytes = 2 * 70e9 * 7/8       # ≈ 122.5 GB / step
t_fabric = bytes / 122.5e9 # 全互联平摊 ≈ 1 s 量级(分层后更低)
# 结论:8 卡域内通信量级与 NVLink4 HGX 持平(900 vs 896),
# 超出 8 卡的部分必须重新按 IB/以太预算
05

注意事项 / 陷阱

PITFALLS · CHECKLIST
CAUTION · 陷阱清单
  • 896 GB/s 是 7 条链路的合计双向值:点到点单链路 128 GB/s——8 卡 all-to-all 满载时每对卡只有 128,不是 896。
  • 无交换机全互联不能扩展:每卡链路数固定 7,8 卡是天然上限;9 卡以上回落网络,TP>8 的通信账完全不同。
  • host 通路只有 PCIe Gen5 x16(~128GB/s 理论、实测更低):CPU 侧喂数据(数据加载、非 GPUDirect 场景)容易先在这里饱和。
  • RCCL 与 NCCL 参数语义兼容但默认算法不同:调优时用 rccl 的调试输出确认 ring/tree 与通道绑定,别直接抄 NCCL 环境变量结论。
  • 跨卡 P2P 访问延迟(XGMI 读邻居显存)显著高于本地 HBM——kernel 里直接跨卡指针解引用只适合低频元数据,大块搬运交给 RCCL。
  • 封装内 fabric 带宽的官方口径互相冲突(4.8/6TB/s)[6]:本页 896GB/s 指卡间 XGMI,与封装内 XCD↔IOD fabric 是两回事,引用别混。
06

数据源

SOURCES