从LLVM代码看AMD GFX1250的未来
速览
AMD的GFX1250架构在LLVM编译器中出现了新的代码支持,这暗示AMD正在为下一代GPU做准备。这些迹象可能揭示了GFX1250的功能特性,以及它如何与现有产品线衔接。对于开发者来说,这可能是提前了解AMD GPU路线图的重要线索。
AI 深度解读
背景
AMD 即将在 Advancing AI 活动上发布全新的 MI400 系列数据中心加速器。在此之前,通过分析 LLVM 的代码提交记录,可以提前窥探下一代加速器的架构细节。LLVM 目前已初步支持两款代号为 GFX1250 和 GFX1251 的新加速器:GFX1250 面向机器学习市场,命名为 MI455X,将用于 Helios 机架;GFX1251 面向 HPC 市场,命名为 MI430X,AMD 预计其原生双精度算力将超过 200 TFLOPs。本文聚焦 GFX1250,并与消费级架构、上一代 CDNA 加速器以及 Nvidia Blackwell 进行对比。
核心内容
架构基础与 RDNA4 的相似性
GFX1250 的 WGP(工作组处理器)由两对 SIMD32 阵列构成,但每个 CU 内仍有四个 SIMD,这与 GCN 和 CDNA 一致。这种看似矛盾的原因是,软件不再需要区分 WGP 中的两个 CU,且 AMD 似乎将两者混用。实际上,这种“变化”可能并非硬件结构性的,而是缓存层次的变化——整个 WGP 共享一个向量 L0 缓存,使得编译器无需区分。
GFX1250 仅运行在 Wave32 模式,而 RDNA 支持 Wave32 和 Wave64 双模式,之前的 CDNA GPU 仅支持 Wave64。这意味着移植到新架构时,需要重新评估性能优化。此外,GFX1250 每个 SIMD 可运行 20 个 wave,比 RDNA4 多 4 个。
机器学习特性:WMMA 取代 MFMA
与 RDNA4 类似,GFX1250 引入了 WMMA(Wave Matrix Multiply-Accumulate)支持,取代了 CDNA 中使用的 MFMA(Matrix Fused Multiply-Accumulate)。GFX1250 的大部分机器学习能力将来自 WMMA。
寄存器与本地内存的重大升级
每波在 SIMD 中可寻址最多 1024 个向量通用寄存器(VGPR),远超上一代 CDNA 的 256 VGPR + 256 累加 VGPR 的分割分配(共 512 个),也远超 RDNA 的 256 个统一分配。这是 GFX125X 最大的变化之一。
最大可寻址本地内存(LDS)提升至每波 320kB,是 CDNA4 的两倍,RDNA 的 64kB 的五倍。更重要的是,GFX125X 将 LDS 与向量 L0 缓存合并为一个称为 WGP 缓存(WGP$)的单一结构,总容量 448KB,可根据编译或编程需求动态分配。这使 AMD 终于跟上了 Nvidia 和 Intel 的统一缓存/共享内存设计。
计算特性
GFX1250 仍支持打包 fp32 操作(每个 SIMD 通道同时处理两个 fp32 运算),与 CDNA2 及之后相同,这意味着打包指令下向量宽度是 RDNA 的两倍。此外,它继承了 CDNA 中更多更强大的 SDMA 单元。
图形支持缺失
GFX125X 相比之前的 CDNA 进一步去除了图形功能,包括:
- 无导出指令(无光栅化器)
- 无图像(纹理)指令
- 无 BVH(光线追踪)指令
- 无向量参数插值指令
- 无 MTBUF(类型化缓冲)指令(区别于 CDNA 和 RDNA3)
- 无 MUBUF(非类型化缓冲)指令(区别于 CDNA 和 RDNA)
- 无 LDS 参数和参数直接加载
这使得 GFX125X 成为纯粹的 compute 加速器,节省了 die 面积并移除了无人使用的功能。
张量操作
MI455X 的核心卖点是 AI 能力,由张量单元驱动。AMD 结合了 RDNA4 的简单编程模型与 CDNA4 的高性能。
- RDNA4 WMMA 操作:M = N = K = 16(16x16 矩阵),4-bit 时 K=32。
- GFX1250:M = N = 16,K 值与 CDNA4 相同:64-bit 和 32-bit 浮点 K=4,16-bit 浮点 K=32,8-bit 定点 K=64,8-bit 浮点 K=128。i4 操作保持 RDNA4 的 K=32。
- 稀疏版本 WMMA 的 K 与稠密版本相同,但每指令工作量更少。
- GFX1250 支持 CDNA4 和 RDNA4 的所有数据类型,除 fp64 仅限 GFX1251。包含此前 CDNA4 独有的 OCP MX 风格缩放支持。
- 新增 LDS 子矩阵转置指令,fp4/fp6 版本有独立特性标志,可能预示未来消费级 GPU 也会支持。
集群与 CUDA 兼容性
GFX1250 引入了类似 Nvidia Hopper 架构中“Thread Block Clusters”的集群功能,允许将集群调度到特定 shader engine,预计未来图形硬件也会支持。
关键要点
- Wave32 唯一模式:GFX1250 仅支持 Wave32,与之前 CDNA 的 Wave64 完全不同,需重新优化内核。
- 1024 VGPR:每 wave 可寻址 1024 个 VGPR,是 CDNA 的 2 倍、RDNA 的 4 倍,对机器学习负载至关重要。
- 统一 WGP 缓存:LDS 与 L0 缓存合并为 448KB 共享结构,可编程分配,大幅提升灵活性。
- LDS 容量翻倍:每 wave 最大 320kB LDS,是 CDNA4 的两倍,RDNA 的 5 倍。
- WMMA 取代 MFMA:统一张量编程模型,支持更广泛的数据类型(包括 OCP MX 缩放)。
- 图形功能全部移除:无光栅、纹理、光线追踪、类型缓冲等,纯计算设计。
- 集群调度:支持线程块集群,类似 Nvidia Hopper。
- 动态 VGPR 分配缺失:RDNA4 强调的动态 VGPR 分配在 GFX1250 中为 no-op,可能是设计简化或未启用。
- fp32 打包:保留双 fp32 打包,等效于双倍向量宽度。
意义与影响
GFX1250 的架构设计显示出 AMD 在 AI 加速器上的明确方向:彻底放弃图形兼容性,专注于纯计算与机器学习。通过合并缓存/LDS、提升寄存器容量、统一 Wave32 模式,AMD 正在缩小与 Nvidia 在架构灵活性上的差距,同时保留了 CDNA 的强大计算密度。WMMA 的引入简化了编程模型,而 OCP MX 格式的支持表明 AMD 紧跟行业标准。这些变化可能最终下放到消费级 GPU,但短期内仍将是 Instinct 系列的专属特性。对于开发者而言,从 CDNA 或 RDNA 迁移到 GFX1250 需要重新评估内核调度和寄存器分配策略,但更大的 VGPR 和 LDS 空间将带来显著的性能提升机会。
