MI350细节来了,对话AMD首席架构师

来源:半导体产业纵横发布时间:2025-06-23 18:31
AMD
GPU
生成海报
MI350系列加速器幕后的故事。

在AMD的“推进AI2025”大会上,记者采访了AMD高级研究员兼Instinct架构首席设计师艾伦·史密斯(AlanSmith),并围绕MI350系列加速器中搭载的CDNA4架构展开探讨。以下是经过精简和优化的文字实录。

聊聊MI350吧,它仍然基于GFX9架构,也就是Vega架构或其衍生版本。为什么MI350依然采用GFX9,而客户端产品如RDNA 3/4已分别升级至GFX11/GFX12?

艾伦:这个问题问得很好。正如大家都知道的,CDNA架构源自之前几代的InstinctGPU,从MI100及更早的产品开始,都采用的是GraphicsCoreNext(GCN)架构。经过几代的发展,CDNA已经针对高性能计算和AI领域的分布式计算算法进行了高度优化。因此,我们认为以GFX9为基础来打造MI350,能够为我们提供实现MI350系列性能目标所需的关键要素。

关于GCN架构,我们知道它有独立的L1缓存和LDS(本地数据存储)。为什么MI350仍然保留了这一设计,而没有将它们合并呢?

艾伦:这是GCN架构的一个传统设计,也是计算单元基本构建方式的核心所在。我们觉得在这一代产品中,还不是进行这种规模微架构变革的合适时机。所以我们采取了另一种方式,增加了LDS的容量。之前的MI300系列中,LDS容量为64KB,而在MI350系列中,我们将其提升到了160KB。此外,我们还提高了带宽。我们将LDS到寄存器文件的带宽翻倍,以便能够满足MI350系列中TensorCore的运算速率需求。

说到TensorCore,你们在MI350x中引入了支持FP8、FP6和FP4数据类型的微缩放格式。有趣的是,MI350的一个主要优势在于FP6的运算速率与FP4相同。你能谈谈这是如何实现的,以及为什么要这样设计吗?

艾伦:当然可以。我们认为,在MI350进入市场的这个时期,考虑到当前AI领域的发展状况,FP6格式不仅有潜力用于推理,还有可能用于训练。因此,我们希望确保FP6的性能在同类产品中处于领先地位,超越其他厂商可能已经实现或正在实现的水平。由于硬件设计需要很长的前置时间,我们在几年前就开始考虑这个问题,希望确保MI350在FP6性能上占据领先地位。所以我们决定让FP6数据路径的吞吐量与FP4数据路径相同。当然,为了实现这一点,我们需要在硬件上做一些额外的投入。显然,FP6比FP4多了几个比特,这也是它被称为FP6的原因。但我们成功地在矩阵引擎的面积限制内实现了这一点,并且以一种非常节能和省面积的方式做到了。

谈到数据类型,硬件级加速的操作列表中没有看到TF32。为什么要从MI350中移除这个功能,或者说为什么它不是MI350的主要考虑因素呢?

艾伦:其实我们是考虑过的,但最终决定移除它。我们认为在这个时期,脑浮点16(BF16)格式可以被大多数模型用来替代TF32。而且我们在BF16上的吞吐量比TF32高得多,所以我们觉得对于这个产品实现来说,这是一个正确的权衡。

如果使用TF32,速度会是多少呢?会和FP32的速度一样吗?

艾伦:使用TF32会有两种选择。我们提供了一些仿真功能,虽然我不能立刻说出确切的吞吐量细节,但我们确实提供了基于软件的仿真,使用BF16来仿真TF32,或者你也可以将其转换为FP32,以FP32的速率使用。

从计算单元(CU)谈到XCD(计算裸片),新的计算裸片现在采用了N3P工艺,但物理上裸片上的CU数量从40个减少到了36个,每个着色器引擎禁用了4个CU。为什么现在是32个启用的CU,为什么要减少数量呢?

艾伦:在 MI300 上,我们协同设计了 MI300X 和 MI300A 两个版本,一个用于 HPC(高性能计算),一个用于 AI。在 MI300A 中,我们只有六个 XCD。因此,当我们只有六个加速器小芯片时,我们需要确保有足够的计算单元来支撑 HPC 或高性能计算(即传统的 FP64 双精度浮点模拟)的性能水平,以达到我们为目标市场(领导级超级计算机)设定的性能目标。

我们做到了这一点,并与劳伦斯利弗莫尔国家实验室 (Lawrence Livermore) 一起,通过 El Capitan 超级计算机交付了世界上最快的(HPC)系统。但作为当时的考量,我们希望每个 XCD 拥有更多的计算单元,以便在 MI300A 中总共达到 224 个 CU。

而在MI350上,它是专门设计为纯加速器、独立加速器的,我们在那里有更大的灵活性。因此我们决定让每个芯片上启用的计算单元数量是2 的幂——物理上是 36 个,但我们启用 32 个。其中四个(每个着色器引擎一个)用于良率冗余(harvesting),我们在台积电 N3(一项领先技术)的高产量制造过程中将它们熔断禁用,最终保证我们启用的数量是 32 个。

32 是个很好的 2 的幂数,如果你有 2 的幂数的计算单元,张量填充(tiling)会更容易。所以你处理的大多数张量,或者说很多张量,都是基于 2 的幂数的矩阵。这样就能轻松地将它们填充(tile)到计算单元的数量中,并减少可能出现的“尾部效应”(tail effect)。因为如果你的计算单元数量不是 2 的幂数,那么张量的某部分可能无法很好地直接映射,你可能需要在最后只使用一部分计算单元来完成剩余的工作。因此我们发现,拥有 2 的幂数的计算单元数量可以带来一些优化。

虽然新的计算单元采用了N3P工艺,但I/O裸片采用的是N6工艺,为什么继续使用N6呢?

艾伦:首先,在我们的小芯片技术中,我们是有选择的,采用小芯片设计让我们能够在合适的情况下选择不同的工艺。而I/O裸片中的部件,往往不太适合采用先进工艺进行缩放。比如HBM物理层(PHYs)、高速串行器/解串器(SERDES)、我们配备的InfinityCache缓存以及静态随机存取存储器(SRAMs)等,这些部件不太容易随着工艺的进步而很好地缩放。因此,在大尺寸裸片上采用成熟良率的旧工艺,可以为我们的客户提供具有成本效益和总拥有成本(TCO)优势的产品。然后,我们能够将最先进的工艺,如N3P,用于计算部分,因为在计算单元的实现上,我们可以从功耗和面积缩放中获得显著的好处。

除LDS外,缓存层级架构是否有变化

艾伦:因为,MI300的设计是为了在高性能计算中实现最高性能,要做到这一点,我们需要为计算单元提供足够的全局带宽,以支持双精度浮点运算。所以我们已经设计了InfinityFabric和XCC(加速计算核心)内部的结构,以提供足够的带宽来满足MI300中高双精度矩阵运算的需求,以及与之相关的所有缓存层级结构。因此,我们能够利用已经内置在MI300中的这些互连能力,所以不需要对它们进行任何修改。

对于 MI350,你们现在从四个基础裸片减少到了两个基础裸片。这一变化在顶部裸片的布局方面实现了哪些优化?

艾伦:在MI350中,I/O裸片只有两个。每个I/O裸片承载四个加速器小芯片,而在MI300中,我们有四个I/O裸片,每个承载两个加速器小芯片。

我们这样做的原因是,我们希望增加来自全局HBM的带宽。MI300是为HBM3设计的,而MI350则是专门为HBM3E设计的。所以我们希望从5.2或5.6Gb/s提升到完整的8Gb/s。但我们也希望以尽可能低的功耗来实现这一点,因为在固定的GPU功耗水平下,以最低的每比特能耗将数据从HBM传输到计算核心,就能在同一时间为计算部分提供更多的功耗。对于受带宽限制的内核,通过减少数据传输所消耗的功率,我们可以将更多的功率用于计算,从而为这些内核提供更高的性能。

因此,我们通过将两个芯片合并为一个,能够拓宽这些芯片内部的总线,这样每个时钟周期可以传输更多的数据,因此我们可以以更低的频率和更低的电压运行它们,这使得传输这些数据所需的功率随着电压的平方而降低。这就是我们这样做的原因。

说到功耗,MI350x的功耗为1000瓦,MI355x为1400瓦。当考虑到功耗增加40%时,除了系统冷却,在保持各个小芯片在公差范围内方面,有哪些不同的散热考虑呢?

艾伦:当我们对这些芯片进行整体功耗和散热架构设计时,我们会从主板一直考虑到子板,在这种情况下是UBB(通用基板)、OAM(OCP加速器模块),然后到CoWoS(芯片在晶圆在基板上)的堆叠,中间层的I/O裸片,以及上面的计算部分。我们会考虑整个堆叠的总热密度,以及堆叠内部的热传输或热阻,还有为了进行散热而需要在上面构建的热界面材料。

因此,我们为MI350系列提供了两种不同的散热解决方案。一种是风冷,如你所说;另一种是直接附着液冷。在液冷情况下,冷板会直接附着在芯片顶部的热界面材料上。我们对整个堆叠进行热建模,并直接与所有技术合作伙伴合作,确保我们在芯片中构建的功率密度能够被整个散热堆叠所处理。

本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。

评论
暂无用户评论