AI News HubLIVE
站内改写2 分钟阅读

忘掉GPU短缺:真正的AI瓶颈早在2007年就被诊断出来了

本文指出,AI的真正瓶颈并非GPU算力,而是内存带宽。这一观点可追溯到2007年Ulrich Drepper的论文《每个程序员都应该了解的内存知识》。近期AMD、高通和英伟达的动向均反映了这一现实。解决方案如FlashAttention和小型语言模型通过优化数据局部性来缓解问题。

来源Hacker News AI作者: salarkhannn

本周,AMD和高通在几天内相继宣布了新的内存封装方法——AMD将LPDDR5X集成到Versal Premium Gen 2 SoC中,高通则预览了用于未来推理加速器的“高带宽计算”。几周前,英伟达锁定了SK海力士的HBM供应直至2030年,这与其说是一项采购协议,不如说是对实际限制AI的物理问题的一种对冲。H100的交货期长达36至52周,预计2026年数据中心将消耗所有内存芯片产量的70%。每个人都在为GPU短缺而恐慌。但GPU没问题。内存才是瓶颈——而这早在2007年就被诊断出来了。

2007年的论文

我读Ulrich Drepper的《每个程序员都应该了解的内存知识》的时机和大多数工程师一样——很晚,而且有点尴尬自己等了这么久。这篇论文发表于2007年,那一年iPhone问世,当时“AI”还意味着国际象棋引擎,训练万亿参数模型的想法介于科幻和异端之间。Drepper当时并没有考虑这些。他在考虑缓存行。他的论点直截了当:CPU的速度呈指数级增长,而内存却没有。处理器能做什么与它能被喂给什么之间的差距每年都在扩大。他遍历了整个层级——硬盘、RAM、L1/L2缓存——并指出这些层级之间的距离(以纳秒为单位)才是唯一真正重要的数字。一个程序如果不断迫使CPU从主内存而不是片内缓存取数据,那么即使有快速的处理器,它大部分时间也会闲置,等待字节通过总线到达。他称之为“内存墙”,并告诉程序员,他们不能再将内存视为一个平坦、均匀的存储桶。数据存放的位置决定了代码运行的速度。

同一堵墙,堆栈上移了一层

名称变了,但形态完全相同。2007年的层级是硬盘→RAM→L1/L2缓存。如今的AI则是HBM→GPU片上SRAM。HBM扮演着主内存的角色,GPU的SRAM则是新的L1缓存。大型模型生成的每个token都需要将千兆字节的权重在两者之间来回移动,每秒数百万次。这就是本周新闻如此引人注目的原因。在Blackwell这样的芯片上,原始算力(TFLOPS)的增长超过内存带宽的增长达一个数量级。每个人都痴迷的矩阵乘法其实成本很低;而移动数据来执行这些运算才是真正昂贵的,无论是在时间上还是在功耗上。英伟达锁定HBM供应到2030年并非出于贪婪——而是因为没有这样的内存,Blackwell的算力核心就会闲置。AMD和高通重新发明封装也不是为了好玩;它们是在试图买回逻辑端已经赶超了的带宽。今年春天主导财报电话会议的“算力短缺”,几乎完全是一个贴了GPU标签的内存带宽短缺。

解决方案早已写在论文中

真正解决这个问题的人,其解决方式正是Drepper会预测的。FlashAttention是使大型模型可行的最大突破之一,它并没有缩小数学运算或简化架构,而是重写了注意力计算,使数据尽可能长时间地留在GPU的片上SRAM中,最小化往返HBM的次数。这正是局部性原理——Drepper在2007年恳求程序员理解的概念——在十九年后移植到了Transformer中。小型语言模型的浪潮则是从另一个方向做出的同样让步。Llama、Phi、Mistral,以及运行在人们已有任何商品化硬件上的开放权重生态系统——如果你无法足够快地将一个700亿参数的模型搬过总线,那就缩小模型,直到它适合缓存层级。作为一名工作软件工程师,Sonnet和Opus能为我完成工作的原因,并不是它们比前沿模型更聪明,而是因为前沿模型太消耗内存,无法按市场实际需要的规模进行部署。

物理定律

Drepper以一句经得起时间考验的话结束了文章:硬件的物理定律决定了软件的限制。我们将代码视为抽象的、不受铜线和硅束缚的东西。本周的新闻就是这种幻想走到尽头时的样子。赢得下一个十年AI的公司,不会是拥有最多FLOPS的公司——而是那些最终内化了2007年一位Linux内核黑客试图告诉所有人的道理的公司。芯片变了,但这堵墙没有。