MI300X// CHIPLET

MI300X · CDNA3 · GFX942 · 特性专题

Chiplet · 8 XCD + 4 IOD

★ CDNA3 封装主线 · L2 只在 XCD 内一致 · 全片共享靠 256MB memory-side MALL

01

是什么

DEFINITION

MI300X 把 GPU 拆成 8 颗 XCD(计算 chiplet,N5,每颗 38 CU + 4MB L2)和 4 颗 IOD(IO chiplet,N6,HBM 控制器 + 64MB MALL),SoIC 3D 堆叠 + 2.5D 转接板封装(AMD 称 3.5D)[1]。对软件是单 GPU:一个 gfx942 device、统一地址空间。

与单片 GPU 的本质区别在缓存层级:L2 是每 XCD 私有的 4MB,XCD 之间不做 L2 一致;全片共享缓存是 MALL(Infinity Cache,256MB,挂在 IOD 内存侧)。数据落在哪个 XCD 的 L2、由哪个 XCD 的 CU 访问,直接决定延迟——但软件无法指定

02

为什么(vs 单片 / vs B200 双 die)

RATIONALE · VS MONOLITHIC / DUAL-DIE
维度H200(单片)B200(双 die NV-HBI)MI300X(8+4 chiplet)
拆分粒度不拆2 颗 die8 XCD + 4 IOD
一致 L2 范围全片 50MB全片 126MB(跨 die 一致)仅 XCD 内 4MB[1]
全片共享缓存L2 本身L2 本身MALL 256MB(memory-side)
远端访问代价L2 far 分区 ~500cyc跨 die L2 ~575cyc跨 XCD → MALL ~458cyc / HBM ~800cyc[4]
软件控制L2 residency hint无(观测 near/far)无(观测 L2/MALL 命中)

chiplet 是良率/成本路线(N5 只用在计算片上),代价是局部性管理变难:workgroup 与它的数据是否落在同一 XCD,决定走 4MB 私有 L2(~220cyc)还是 256MB MALL(~460cyc)——差一倍。

03

关键数字

KEY NUMBERS · TOPOLOGY
XCD 构成8 ×(38 CU 启用 / 40 造)+ 4MB L2每 XCD 4 个 ACE[1]
IOD 职责HBM 控制器 + MALL 64MB ×4 + PCIe/IF 链路N6 工艺
MALL 总量256 MBmemory-side:不存脏数据、带 snoop filter
MALL 带宽17.2 TB/s(WP)或 14.7 TB/s(HC24)[6]官方材料冲突,引用需注明
XCD↔IOD 接口2.1 TB/s[1]口径(单 XCD/聚合)官方未注明
L2 聚合读带宽34.4 TB/s(2KB/clk × 16 通道)XCD 内路径[1]
延迟阶梯L2 ~220 → MALL ~460 → HBM ~800 cyc每级 ~2×[3][4]
04

调优(观测 XCD 局部性)

OBSERVABILITY · ROCPROFILER

没有「绑 XCD」的 API。能做的是让 workgroup 数据局部性自包含,并观测 L2/MALL 命中分布。

① rocprofiler-compute 看 L2 vs MALL 命中

# L2(XCD 内)命中 vs MALL 命中占比:
rocprof-compute -m lts__t_sectors_srcunit_tex_op_read.sum,\
SQC_L2_HIT_RATE,L2_cache_hit_rate ./kernel
# 经验:L2 命中低 + MALL 命中高
# → workgroup 与数据跨 XCD,考虑加大
#   workgroup 内数据自包含度(分块按 XCD 尺寸对齐)

② 布局策略:按 XCD 尺度做数据亲和

// 每 workgroup 自带 tile(HIP,同 CUDA 思路):
__global__ void gemm_tile(const float* A, ...) {
  __shared__ float a_tile[64*64];  // LDS 64KB 上限内
  // 关键:一个 WG 读的 A/B tile 越聚焦,
  // 越可能整块落进本 XCD 的 4MB L2
}
05

注意事项 / 陷阱

PITFALLS · CHECKLIST
CAUTION · 陷阱清单
  • 不要假设「L2 32MB」是全片一致的——它是 8 个 4MB 私有片的算术和;跨 XCD 的一致最低层其实是 MALL(memory-side)。
  • MALL 不缓存脏数据(write-through 定位),写密集 workload 的 MALL 收益远低于读密集[1]
  • 64MB TLB 跳变:工作集 >64MB 后 HBM 延迟阶跃(~47ns 惩罚)[4]——大 batch 推理的分块别骑在界上。
  • workgroup 调度到哪个 XCD 由驱动决定且不透明;同 kernel 跨 XCD 的 atomic 热点实测 116–202ns,高竞争时改为 per-workgroup 归约再合并。
  • 官方 fabric/IC 带宽数字自相冲突(4.8/6TB/s、14.7/17.2TB/s)[6]——写报告引用时必须注明出处与口径。
  • MI300A(APU)的 XCD 数、CU 数都不同(6 XCD/228 CU + Zen4),别把 MI300X 结论平移。
06

数据源

SOURCES