AMD 的 CDNA 3 计算架构

AMD 将其 CDNA 计算 GPU 与 RDNA 游戏 GPU 分开,引发了关于公司是否为了专用硬件而牺牲统一软件生态的争论。评论者将 AMD 碎片化、且常常脆弱的 ROCm 和 OpenCL 支持,与 Nvidia 的长期 CUDA 战略进行对比,认为真正赢得 AI 和 HPC 市场的是一致的工具链和向后兼容性,而不是原始 FLOPS。一些人对近期 ROCm 对高端消费级 Radeon 的支持抱有希望,但许多人认为 AMD 迟到且不稳定的软件投入,已经把至关重要的十年心智份额让给了 Nvidia。

AMD GPU 架构:CDNA 与 RDNA

  • AMD 将 GPU 开发拆分为 CDNA(计算/HPC)和 RDNA(图形),把 GCN 演进为 CDNA,并将图形部分重做为 RDNA。
  • CDNA 去掉或尽量减少以图形为中心的单元(例如渲染输出),在计算方面表现出色,并驱动了多台 Top500 超级计算机。
  • RDNA 针对游戏进行了优化:与更早的 GCN 相比,光栅性能更好、功耗更低、芯片面积更小(例如 RX 5700 XT 对比 Radeon VII),但在面向计算的特性上较弱。
  • 有人认为这种拆分让计算业务更加孤立并损害了心智份额;也有人认为,要在游戏和 HPC 领域保持竞争力,专业化是必要的。

ROCm 与软件生态

  • ROCm 目前是按架构分别提供 GPU 机器码,而不是类似 PTX 的字节码,这迫使所有库都使用架构特定的二进制,并推高了包体积。
  • 一些较小的 ISA 变体(例如 gfx1030 与 gfx1031)使支持变得复杂;虽然存在变通方案和更长期的“family ISA”方法,但推进很慢。
  • 许多发帖者将 ROCm 描述为脆弱:GPU/操作系统支持范围狭窄、安装痛苦、演示经常段错误,以及问题追踪器实际上已被弃置。
  • 一些用户报告称,通过少量环境修改可以在不受支持的消费级显卡上成功运行,但这并非官方支持,而且很脆弱。

与 NVIDIA 和 CUDA 的比较

  • CUDA 跨代际和跨产品的一致性,被视为 NVIDIA 的主要护城河:消费级和数据中心 GPU 使用同一 API,并且拥有向后兼容的 PTX。
  • NVIDIA 被描述为“软件优先”,从很早开始(自 CUDA 2007 起)持续投资工具、文档和库。
  • AMD 因放弃过去的 API(例如 OpenCL 实现)、频繁重置生态系统以及轮换式支持 ROCm 而受到批评,导致信任不足。
  • 关于原始 FLOPs 与真实世界性能的讨论很多;tensor cores 和专用矩阵单元使简单的 TFLOPS 对比具有误导性。

开放标准与替代技术栈

  • OpenCL 被视为一个“被背叛”的标准:停留在 C99,AMD/Intel 支持不佳,而 NVIDIA 则忽视它。
  • SYCL/oneAPI 被提及为更开放、具有多厂商治理;Mesa/RustiCL 以及 Vulkan/D3D 后端也存在,但还不成熟或较为小众。
  • 有人呼吁建立一个跨厂商 GPU IR,类似 PTX/MSIL;也有人指出 SPIR-V 的复杂性,以及 Vulkan/OpenCL 模型之间的差异。

消费级与爱好者计算路径

  • AMD 消费级 GPU(尤其是 APU 和老显卡)缺乏稳健、官方的计算支持,被视为一个重大的错失机会,因为这本可以用来培育开发者。
  • 有人认为,今天在消费级硬件上学习的学生和爱好者,正是明天的 HPC 买家;忽视他们等于把这条漏斗拱手让给了 CUDA,以及越来越多地让给 Apple/Metal。

架构与术语的旁支讨论

  • 讨论涉及 VLIW 历史(Itanium、DSP、早期 AMD GPU)、现代 GPU 中的双发射趋势,以及宽的顺序内并行所带来的递减收益。
  • GPU 的内存策略(大型寄存器文件、共享/本地内存、大缓存、通过大规模并行隐藏延迟)与 CPU 的缓存层次结构形成对比。
  • 有人抱怨把“compute”当名词使用;也有人指出,至少自早期云服务和现代 AI 以来,这种用法就已很常见。