早在 2012 年,当 AMD 正准备退出数据中心 CPU 业务,而其数据中心 GPU 却完全没有动静时,美国能源部就表现出了开明的利己主义,这种利己主义是经济和政治的坚实基础,它冒险投资 AMD,用于研究内存技术和百亿亿次级混合 CPU-GPU 计算。这笔钱并不多,但足以让 AMD 的工程师有机会思考山姆大叔的钱的未来,并为其当前强大的 CPU 和 GPU 业务播下种子。
十多年后的今天,劳伦斯利弗莫尔国家实验室的“El Capitan”超级计算机即将成为世界上最强大的(已知)超级计算机,而它采用了“Antares”Instinct MI300A 计算引擎所体现的所有艰苦的架构和封装工作的成果。
我们是如何走到这一步的?一步一个脚印,这一点在最近由带领 AMD 从无到有发展到 Antares 的关键研究人员发表的一篇论文中有所体现。AMD 的一位技术人员 Gabriel Loh将这篇论文发布在他的个人档案中,该论文于 7 月初在阿根廷布宜诺斯艾利斯举行的国际计算机架构研讨会 (ISCA) 上发表。我们刚刚看到这篇名为《实现 AMD 百亿亿次异构处理器愿景》的论文,因为那一周我们在度假,没有看到它。我们觉得这篇论文很有趣,而且我们认为,现在是夏天,你也可能喜欢它。
AMD 去年在 ISCA 2023 上发表了一篇类似的论文,名为《AMD 百亿亿次计算之旅研究回顾》,数十名研究人员讨论了 FastForward 和 DesignForward 的工作如何向早于并预期 MI300A 和 El Capitan 的“Frontier”超级计算机演变。
本故事将这两篇论文放在一起,以飨读者。
起初是 HSA
很难记得当美国能源部 DesignForward 和 FastForward 合同的资金被授予时,AMD 在数据中心的失宠程度有多大,AMD 无疑希望我们这样的人不要再谈论它。但我们相信救赎和同情,这就是 AMD 现在至少在某种程度上平衡了 Nvidia 在 GPU 领域的霸权,并完全从英特尔手中夺走了 CPU 计算的王座。我们也相信竞争。它有一种让每个人都专注于游戏并推动创新和进步的方法。
FastForward 1 计划获得了 6240 万美元的资金,其后续的 FastForward 2 计划获得了近 1 亿美元的资金。DesignForward 的第一阶段获得了 2540 万美元的资金,我们找不到第二阶段的任何文件。AMD 从美国能源部的这四项投资中获得了相当大的一笔资金,并在 FastFoward 1 下专注于异构计算、内存处理和高速缓存,在 FastForward 2 下专注于低压逻辑和新内存接口。DesignForward 项目也分为两个阶段,参与者专注于百亿亿次级系统的互连和协议,然后是系统设计和集成。(这里有对这些工作的出色概述。)
2015 年,有一个名为 PathForward 的类似项目投入了更多资金,该项目开始开发而不是研究百亿亿次级系统。该项目将英特尔、Nvidia、Cray、IBM、AMD 和惠普企业的投资额度提高到 2.58 亿美元,再加上这些供应商的配套资金,总投资额达到 4.5 亿美元。
总而言之,八年来至少投入了 6.378 亿美元来设计百亿亿次级硬件。而且,在美国资助的百亿亿次级机器中,AMD 加 Cray 加 HPE 团队至少赢得了大部分胜利。欧洲安装的一些大型机器使用相同的架构,尽管欧洲高性能计算合资企业正在通过自主研发的 CPU、加速器和互连来规避风险。
每个项目都是从想法和美丽的画面开始的,而 AMD 十多年前所憧憬的未来就是从这个开始的,它现在出现在由 13 位 AMD 技术人员撰写的论文中,其中许多人都是 HPC 和 AI 领域的知名人物,因为他们在 AMD 过去称之为加速处理单元 (Accelerated Processing Unit) 的工作中,体现了最初所谓的异构系统架构。这张图片来自 2012 年的 FastForward 1 应用:
以下是 AMD 在同一时期推出的百亿亿次异构处理器的第一次迭代的详细内容:
这种 EHP-1 设计实际上是一个四核设计,具有四个 256 位向量,与 GPU 复合体配对,该复合体具有一对流式多处理器,每个处理器具有 6 万亿次浮点运算的 64 位向量数学运算能力。据推测,这种芯片设计也支持 FP32 格式,但可能不支持精度较低的格式。请记住,这专注于 HPC 工作负载,而 Transformer AI 工作负载尚未像我们现在所知道的那样爆发式地出现。AI 工作负载本质上是统计性的,它们可以为了吞吐量而牺牲一些精度,但仍然会收敛到正确的答案。HPC 工作负载更具确定性(至少就 64 位数据和良好算法而言),更高的精度总是能得到更好的答案。我们生活在一个试图在新的 HPC 应用程序中使用较低精度的时代,尽管这听起来很离谱,但它可能仍会发挥作用。
到 2014 年,AMD 发现,从 14/16 纳米一代到 5 纳米一代,芯片每单位面积的标准化成本价格将上涨 2.5 倍,此时它从单片处理器和 GPU 复合体转向小芯片设计。
此时,AMD 也开始质疑由美国能源部资助研究的内存处理器 (PIM) 方法的经济和技术可行性,以及在计算引擎中使用 NVRAM 的可能性。AMD 还直言不讳地表示,对于可以堆叠多少个 DRAM 芯片来制造 HBM 内存库过于乐观。上图显示了 16 个堆叠的芯片,直到明年 12 个芯片堆叠将实现商业可行性之前,我们一直停留在 8 个芯片堆叠。
您还会注意到 EHP v2 将 DRAM 内存堆叠在 GPU 芯片之上,这确实很有野心。
2016 年,AMD 重新开始设计,并对 EHP 设计进行了第三次迭代:
现在,GPU 芯片被分成两半,在 GPU 顶部有 8 层高的 HBM 堆栈,而 CPU 芯片则位于计算引擎的中心,可能可以访问该 HBM 内存。此 EHP v3 设计在 GPU 下方使用了有源中介层,这意味着它们具有路由器或中继器等有源组件,而不是无源中介层中唯一的金属线。
AMD 最终发现,有源中介层和在此有源中介层之上的计算上 3D 堆叠内存在经济上不可行。这导致了 2018 年 EHP v4 的设计:
在 EHP 设计的前三次迭代中,AMD 试图将所有东西塞进其 Epyc SP3 服务器插槽的范围内。在 PathForward 工作中,AMD 不再从插槽的角度思考,而是从系统板的角度思考,并想出了如何使用 Infinity Fabric 链接将更大的“插槽”拼接到主板上。AMD 有自己的 GPU 插槽封装设计,并密切关注由 Microsoft 和 Meta Platforms 创建并于 2019 年被采纳为 OCP 标准的OCP 加速器模块 (OAM) 插槽。(AMD 显然提前知道了这一点,其 Instinct GPU 至今仍采用这种插槽。)
在为安装在橡树岭国家实验室的 Frontier 超级计算机设计实际计算引擎综合体时,AMD 选择了 1:4 的 CPU 计算和 GPU 计算比例,这一事实已被大肆渲染,但这两篇 AMD 论文再次表明,正如我们向您介绍过的其他原理图一样,这实际上是一个八核芯片块与一个 GPU 芯片块的 1:1 配对,每个节点有八对这样的芯片块。参见:
从某种意义上说,Frontier 节点是一个虚拟 APU,并且它就是这样编程的。GPU 之间有更粗的 Infinity Fabric 管道,因此它们可以快速共享数据,GPU 芯片对非常紧密地耦合在一起,相邻的 GPU 复合体通过略微不那么粗、速度稍快的 Infinity Fabric 管道相互连接,而 CPU 到 GPU 的链接甚至比这还要细一点。
很接近了,但是还没有成功,但是山姆大叔需要一个百亿亿次系统,你就做你必须做的事。
去年 12 月发布的El Capitan 的 Instinct MI300A实现了 AMD 一直想做的事情:打造真正的 APU。该公司还创造了可以说是历史上最复杂的计算引擎插槽。以下是进给和速度:
这是该架构群的横截面:
这真是一个硅和金属的三明治,不是吗?
虽然我们钦佩硬件的所有进步,但真正的原因如下。由于 CPU 和 GPU 是真正统一的,因此代码与使用仅 CPU 的架构并没有太大区别,第二篇重点介绍 MI300A 的论文给出了一个恰当的例子,展示了不同场景下的数据移动和同步。请看:
MI300A 架构旨在将 CPU-GPU 复合体紧密耦合在一起,并使用复合体上的 Epyc CPU CCD 上的 PCI-Express 端口与外界联系,如下所示:
我们想知道的是,公司是否愿意购买 MI300A 服务器或使用独立 Epyc CPU 搭配 Antares 系列中的独立 MI300X GPU。这将取决于价格、可用性以及公司所需的 CPU-GPU 计算比率。我们想知道的是,MI300A 在价格、性价比和散热方面与 Nvidia 的 Grace-Hopper 或 Grace-Blackwell 独立 CPU 和 GPU 搭配相比如何。
但到目前为止,我们还没有太多数据来进行这样的比较。