计算很容易,记忆越来越难

如果你无法以足够快的速度将数据输入到实际使用计算引擎在时钟周期中以某种方式处理数据,那么矢量或矩阵单元中体现的浮点操作有什么好处?答案对我们所有人来说都是显而易见的:不多。
几十年来,人们一直在谈论计算和内存带宽之间的不平衡,每年高性能计算行业都被迫接受每个浮点操作的内存带宽越来越少,因为增加内存带宽极其困难,最终也不会非常昂贵。
我是斜杠青年,一个被前沿技术耽误挣钱的“杂食性”学者!
当我们考虑这个问题时,增加记忆能力也变得越来越困难,因为肥胖的记忆也受到摩尔定律的压力,使记忆越来越密集和越来越快,因此记忆的价格并没有像其他时间下降那么多。因此,我们没有几十年前我们梦寐以求的那种大型存储器。
Jack Dongarra在图灵奖主题演讲中敏锐地提醒我们这一点,作为橡树岭国家实验室的杰出研究员和田纳西大学名誉研究教授,《下一个平台》的读者对此非常熟悉。像你们许多人一样,我们观看了东加拉颁发的图灵奖主题演讲,谈论了他是如何出人意料地进入超级计算业务的,并成为测量这些大型机器系统性能的专家——主要是通过成为随着超级计算机架构每十年左右发生变化而不断发展数学库的团队的一员。如果你还没有看这个主题演讲,你应该去看看。这段历史令人着迷,它预测了随着架构的不断发展,我们将如何继续发展软件。
但这就是我们在这里不谈论的。
当我们观看Dongarra的主旨演讲时,我们脑海中突出的是,当今处理器相对于内存带宽的襟翼过度配置,这在我们的脑海中引起了共鸣,因为同一周英特尔刚刚宣布了其即将推出的“蓝宝石急流”至强SP服务器CPU的一些基准结果,这表明HBM2e堆叠内存的好处,其内存的内存带宽约为现代服务器CPU中使用的普通香草DDR5记忆棒的4倍。(Sapphire Rapids具有64 GB HBM2e内存选项,可以与DDR5内存一起使用,也可以代替它。)HBM2e高带宽内存的好处表明,有多少不合时的襟翼和带宽是:

如你所见,在蓝宝石急流CPU中添加HBM2e内存不会对Dongarra心爱的高性能Linpack(HPL)矩阵数学测试产生太大影响,这是因为HPL不是特别的内存绑定。但高性能共轭梯度(HPCG)和流三合会基准测试都是疯狂绑定的内存,只需切换内存,它们肯定会提高性能。(我们假设测试的机器有一对顶级垃圾箱,60核蓝宝石急流芯片。)在HPCG测试的正常情况下,这可能是反映一些非常棘手的HPC应用程序的真实编写方式的最准确测试(出于必要性,而不是出于选择),世界上最快的超级计算机的使用率从机器的潜在故障的1%到5%不等。因此,如果性能可以扩展到数千个节点,那么将它增加3.8倍,这确实是一个非常非常大的改进。(这还有待观察,HPCG是将显示或不会显示它的测试。
那么,翻转和内存带宽彼此相距有多远?Dongarra展示了超级计算中每一次建筑革命的发生,情况是如何变得更糟的:

以下是对Dongarra显示的图表的放大:

Dongarra解释说:“当我们今天查看机器上的性能时,数据移动是杀手。”“我们正在研究浮点执行率除以数据移动速率,我们正在研究不同的处理器。在过去,我们有处理器,每个数据移动基本上有一个触发器匹配——这就是它们的平衡方式。如果你们还记得旧的Cray-1,你们可以同时进行两个浮点操作和三个数据移动。所以这是在试图解决这个问题。但随着时间的推移,处理器改变了平衡。在接下来的二十年里,从一开始,这里就发生了一个数量级的损失。也就是说,我们现在可以为我们所做的每个数据移动进行十个浮点操作。最近,我们看到每个数据移动的数字都增长到100个浮点操作。甚至今天的一些机器也在200范围内。这表明浮点和数据运动之间存在巨大的不平衡。因此,我们有巨大的浮点能力——我们对浮点过度配置——但我们没有在系统中非常有效地移动数据的机制。”
图表显示了代际状况越来越糟。转移到HBM2e,甚至HBM3或HBM4和HBM5内存只是一个开始。CXL 内存只能部分解决这个问题。由于CXL内存比闪光灯快,我们喜欢它作为系统架构师的工具。但系统中只有这么多PCI-Express通道来在节点内进行CXL内存容量和内存带宽扩展。虽然共享内存很有趣,可能对HPC模拟和建模以及AI培训工作负载非常有用——同样,因为它的性能将高于闪存——但这并不意味着所有这些都是负担得起的。
我们还不知道Sapphire Rapids上的HBM2e内存选项要花多少钱。如果它将内存绑定应用程序提高4倍到5倍,但CPU成本高出3倍,那么这并不是真正影响架构选择的每瓦前性能的收益。
未来至强SP上的HBM2e内存选项是朝着正确方向迈出的良好一步。但是,如果我们想让内存恢复平衡,也许在L1、L2和L3缓存中拥有更多的SRAM比添加内核更重要。

赢得图灵奖后,东卡拉有机会对行业进行一些演讲。
“因此,今天,我们根据AMD或英特尔的商品上架处理器、商品上架加速器、商品上架外互连——这些都是商品。我们不是根据将用于驱动它们的应用程序的细节来设计硬件。因此,也许我们应该退后一步,更仔细地了解架构应该如何与应用程序、软件共同设计进行交互——这是我们谈论的,但现实是,今天很少与我们的硬件进行共同设计。你可以从这些数字中看到,几乎没有发生这种情况。也许一个好的——更好的——指标是日本正在发生的事情,在那里,他们与建筑师、硬件人员进行了更密切的互动,以设计具有更好平衡的机器。因此,如果我要查看前瞻性研究项目,我会说,也许我们应该分拆一些项目,看看架构,让架构更好地反映在应用程序中。但我想说,我们应该在硬件、应用程序和软件之间取得更好的平衡——真正参与共同设计。有分拆项目,看看硬件。伊利诺伊州就是一个很好的例子——斯坦福、麻省理工学院、CMU。但遗憾的是,我们今天并没有看到这方面更多的研发项目。也许更多的风险资本应该考虑在那里投资,将一些研究资金——也许来自能源部——投入到这种机制中,以进行这种工作。”
我们全心全意地同意硬件-软件的共同设计,我们认为架构应该反映运行它们的软件。以Dongarra建议的方式这样做将使所有超级计算机更独特,更少通用,也更昂贵。但有一个地方,每瓦的性能、每触发器的成本、每内存带宽的性能和每内存带宽的成本都比我们今天在HPCG等测试中看到的要好。我们必须让这些HPC和AI架构恢复到状态。
受东加拉和他的同行的启发,下一代研究人员需要解决这个内存带宽问题,而不是把它扫到地毯下。或者,对于一个隐喻性的图像来说,最好还是像暴徒一样把它卷在地毯上。100倍或200倍的差异实际上是一种表现和经济犯罪。
了解更多前沿技术,关注我就是你最好的选择!