AMD 的 Strix Halo – 深度剖析
Chips and Cheese
AMD's Strix Halo - Under the Hood
George Cozma Jan 13, 2025
大家好,互联网上的朋友们!
在 CES 2025 上,我有机会与 AMD 的高级研究员 Mahesh Subramony 坐下来聊了聊 AMD 即将推出的 Strix Halo SoC。对于 AMD 来说,这是一个全新的产品类型,也是我们很多人长期以来一直期待的来自 AMD 的大型 iGPU SoC。
下面的文字记录经过了轻微的编辑,以提高可读性和简洁性。
George Cozma: 大家好,互联网上的朋友们。
我们现在在 CES 2025 的 AMD 展台,AMD 的重大发布就是这个 [指向一台 ASUS ROG Flow Z13]。Strix Halo 作为 AMD Ryzen AI Max 系列产品推出,我们恰好有一台搭载它的系统。不仅如此,我还有……
Mahesh Subramony: 我是 Mahesh Subramony,AMD 的高级研究员。
George Cozma: 您在 AMD 负责什么工作?
Mahesh Subramony: 我是客户端业务部门的技术顾问。但在过去十年左右的时间里,我一直是 AMD 芯片的 SoC 架构师。
George Cozma: 那么,让我们从 Strix Halo 开始吧。先从 CPU 方面说起,与比如桌面 Zen 5 相比,这里的 Zen 5 有什么不同?
Mahesh Subramony: 是的,我的意思是,首先,我认为把这个芯片组合在一起是我一直以来的梦想。自从很久以前我们与 ATI 合并,将图形部门纳入内部以来,我们一直在谈论构建一种大型 APU,我们可以在单个封装上匹配 CPU 性能和 GPU 性能,并以今天你看到的形式呈现出来。这花了不少迭代才走到今天,才能得到我们认为能给终端用户带来价值的东西。是的,我们迭代了四次才走到这一步。我们很高兴能来到这里。它必须满足很多条件,因为它最终必须满足消费者的需求。我们非常清楚这一点。这里的 CPU 具有相同的 DNA。它仍然是 Zen 5。它仍然是相同的架构,但我们需要更多地关注功耗。
因此,以桌面部件为特色的 CCD,它们实际上有一个 PHY 来连接两个 die。所以实际上存在需要传输的距离。这是一个 SERDES,你可以在两者之间走一段距离。我们一直都是这样连接两者的。而且这是一个低成本的接口。它是一个高带宽接口。但是它的低功耗状态只能支持到这个程度。而且每次芯片关闭并重新启动时,都会产生重新训练和延迟的影响等等。因此,对于始终在线的桌面计算机来说,这似乎是连接它们的最佳互连方式,因为我们试图将其构建到 APU 中。我们必须做的第一件事是改变两个 die 之间的互连。因此,你在这里看到的 CCD,你在这里看到的核心 die,有一个不同的项目。这是第一个变化。
那是一片电线。我们使用 fan out,我们使用四层 fan out 来连接两个 die。因此,你获得了更低的延迟、更低的功耗,它是无状态的。因此,我们能够通过该连接接口将数据结构直接连接到 CCD。因此,Granite 或 9950X3D 与 Strix Halo 之间的第一个重大变化始终是 die 到 die 的互连。低功耗、相同的高带宽、双向每周期 32 字节,更低的延迟。所以一切都几乎即时启动和关闭,因为这只是一片横跨的电线。因此,当然,制造技术比那边的技术 [指向 9950X3D] 更昂贵,但它满足了客户的需求,并且它必须是能够实际连接的低功耗。
George Cozma: Strix Halo 核心中的 FPU 是完整的 512 位 FPU 吗?还是像 Strix Point 一样,类似于 Zen 4 的 256 位?
Mahesh Subramony: 这台机器旨在成为一台主力机。它是一台工作站。我几乎开玩笑说,它是放在你手中的 Threadripper。所以我们没有退缩。这些都具有 512 位数据路径。它是一个完整的桌面架构。我们已经对这些部件进行了效率分级。因此,它可能无法达到你在桌面上看到的峰值频率。这是你在这里找到的核心与那里的核心的第二个区别。它们更冷,因此当您运行多线程工作负载时,您可以在这些部件上获得所需的效率,您能够获得更高的有效频率。但你放弃的是一些峰值频率,我认为在你今天拥有的这种轻薄外形中,你没有在桌面部件上看到的那么厚的散热解决方案。因此,外形的需求表明你需要更冷的核心,如果你愿意的话,在 FP 曲线中更低,在那里你可以提取效率。因此,这些是经过分级的,相同的架构,相同的管道集,数据部件是相同的。不同之处在于我们如何对部件进行分级以及我们如何连接两个部件。
George Cozma: 现在从 CPU 转移到这里的大型 SoC tile,它包含你的 iGPU,现在我知道这在幻灯片中没有提到,但有 32 MB 的 MALL 或 infinity cache。它如何与 CPU 核心交互?因此,CPU 核心可以访问这 32 MB 的缓存吗?
Mahesh Subramony: 它不能。所以请让我明确声明。MALL 的存在是为了放大图形带宽。我认为这是它的目的。因此,目前唯一的计算引擎,我的意思是,这是一个灵活的分配策略。我们应该从这里开始。但目前打算配置它的方式是从 GPU 写入安装到 MALL 中。CPU 写入不会安装到 MALL 中。我们可以通过翻转一位来更改它,但我们现在没有看到我们需要放大 CPU 带宽的应用程序。
因此,我们保留了,并且我们有时会研究为比如显示或视频编码/解码预留,例如,嘿,看看,我可以将 MALL 的两个切片作为 VCN 或视频编码解码器、显示器可以运行的地方,甚至推理引擎也可以存储一些权重。因此,我们一直在研究什么可以分配到该结构中,以及什么不能分配到该结构中。它的定义方式是只有 GPU 安装到 MALL 中。现在,当我们探索越来越多的应用程序时,你知道,这是一个软件版本,我们可以发布一个固件,说,嘿,看看,我们已经改变了 MALL 的设置配置方式。因此,GPU 将保留多少。嘿,我们决定为另一个计算机引擎、NPU、视频编码解码器显示器预留它。
现在你将获得 X 量的速度提升,X 量的电池寿命,等等。因此,任何代理都可以安装到它中。我想确保架构中存在灵活性。但是,目前的定义方式是,我们现在已经运行了一些用例。我们认为,MALL 的最佳用途是让图形将其用作带宽放大器。因此,图形是唯一一个设置了标志的计算引擎,所有写入都安装到 MALL 中。现在,MALL 是一致的。因此,当 CPU 访问进来时,它会检查 MALL 以查看该行是否存在于那里,因为它是一个等待提交的写入。它会说不再是,因为其他人要求该行。因此,让我们将数据转发给要求它的人。因此,它保持一致。它是相干结构的一部分。
每次写入内存时,也会查找 MALL。这也是我们需要查找的缓存。但是从谁从该 MALL 中获得最大利益的角度来看,它是 GPU。它写入 MALL 中。根据流量模式,如果 MALL 上的命中次数更多,你将获得读取带宽放大,在某些情况下,我们已经看到它达到两位数。因此,我们正在从离散解决方案中存在的 GDDR 内存转换为 LPDRR。因此,我们知道我们尺寸不足,但 MALL 充当放大器。因此,对于我们在这里拥有的大型 GPU,40 个计算单元,MALL 的完美用途是获得该收益。
George Cozma: 说到一致性,MALL 是否充当所有计算单元的最后一层一致性?
Mahesh Subramony: 不,它仍然是我们数据结构中的一个块,位于内存控制器之前。好的。它充当一致性的位置。好的。所有内存访问。因此,内存被分成,你知道,基于它的交错。如果你想访问该行,你必须去这个控制器,并且位于之前的那个数据结构 IP 是,任何访问都必须通过我。我是所有线路下面的一致性点。好的。现在,我将检查配置文件结构以查看 CPU 是否拥有该行。我将检查 MALL 以查看是否已由某个一致性点安装在此处。一致性点通过与内存控制器接口的那些数据结构 IP 运行。因此,这仍然是一致性点。
George Cozma: 它不是一致性点,再次谈到数据结构,您是否从 CPU 到 SoC tile 的连接只是一堆电线这一事实中看到了任何时钟速度优势?
Mahesh Subramony: 我们能够获得功耗优势。因为在此之前,我们有一个 GMI PHY 位于其中,为了能够在短距离内以高频率发送它,它消耗了大量的功率。在这里,我们以远低于 GMI 正在计时的 20 千兆赫兹的速度对其进行计时。这介于 1 到 2 千兆赫兹之间。你知道,真正地将时钟频率与数据结构本身匹配。因此,这里没有异步接口,你必须为此付出巨大的代价。它只是直接映射到结构。因此,以较低的电压,你能够做到这一点,因为我们使用了一堆电线,你能够获得匹配的高带宽。我们在电线的面积上花费了面积,但是我们能够以明显更低的速度对其进行计时,因此你可以获得功耗优势。
我们可以将它时钟更快吗?好吧,如果我们无法更快地对内存进行时钟控制,那么就没有必要了。请记住,这里没有像桌面那样的 DDR,你可以在那里超频并将其推得越来越高。因此,移动结构时钟会给你带来一些好处。这是 LPDDR。它有点紧张,往往不太利于超频。因此,以更节能的方式与内存进行速率匹配,这是目标,而不是试图推动时钟。但是,是的,如果你想这样做,我们有更大的灵活性。
George Cozma: 因此,为了结束这次对话,回到 CPU,回到那个结构,单个 CCD 可以访问多少内存带宽,因为它每周期读取 32 字节?
Mahesh Subramony: 这确实取决于。我们可以让一个 CCD 饱和它们。你不需要两者。你可以让一个 CCD 饱和数据带宽。你可以有四个核心,甚至两个核心,如果你编写正确的流基准,并饱和数据带宽,因为 CPU 可以每个周期发出一个请求。CCD CPU 可以每个周期发出一个请求和发出。因此,你最终会看到你最终会被响应返回的速度所阻碍。响应可以根据它的去向以及响应的返回方式,每隔一段时间返回一次。你最终会被内存请求在 UMC 侧或内存控制器侧的耗尽速度所阻塞。因此,我们有一到两个 CPU 能够接近饱和他们想要用正确的流带宽进行饱和,去打开页面等等。
但是,同样,通过读取和写入之间的正确流量组合,就像我说的那样,几个 CPU 线程可以饱和带宽。所以它不是。但是,同样,在带宽方面,我们相信 NPU 和 GPU 比 CPU 方面受益更多。我认为延迟和负载下的延迟,15% 到 20% 的负载,但仍然没有延迟方面的曲棍球杆跳跃。因此,我们没有伪造只有第一个请求获得最低延迟,而其他人则不会获得旁路部件和配对基本重惩罚,确保你拥有 CPU 的稳定低延迟和 GPU 的高带宽。
George Cozma: 最后,最重要的问题,你最喜欢的奶酪是什么?
Mahesh Subramony: Gorgonzola。这是一个答案吗?这是一个好答案。Gorgonzola 意大利饺子 [作为] 向我家乡的一家餐厅致敬。
George Cozma: 非常感谢这次采访。Mahesh。
Mahesh Subramony: 总是很愉快。George。
George Cozma: 绝对的。
如果你喜欢这些内容,那么如果你想向 Chips and Cheese 捐款,可以考虑前往 Patreon 或 PayPal。还可以考虑加入 Discord 并订阅 Chips and Cheese Youtube channel。