#模型时代# #科技先锋官# 非常硬核的一个讲座:英伟达首席科学家Bill Dally的AI算力伯克利讲座。
前边3分钟是音乐暖场。
上千倍AI性能提升,只有3倍来自工艺:英伟达首席科学家拆解AI硬件真相
NVIDIA首席科学家兼研究高级副总裁Bill Dally的UC Berkeley EECS Colloquium讲座,系统复盘了过去12年深度学习硬件的演进逻辑。Dally同时是斯坦福计算机科学系兼职教授、前系主任,今年刚拿下伊丽莎白女王工程奖和本杰明·富兰克林奖章。他用第一手数据回答了一个核心问题——当摩尔定律放缓,AI算力怎么持续狂飙?
一、深度学习的三要素与硬件的"点火"作用
深度学习的爆发需要三个条件同时满足。
1、算法早已就绪
深度神经网络、卷积神经网络、反向传播、随机梯度下降——这些核心算法在1980年代就存在了。Dally回忆,他在Caltech读研究生时上过John Hopfield的神经网络课,当时的判断是:"这东西很有意思,但我们没有足够的算力来做。"
2、数据在2005年前后到位
ImageNet在2009年发布,提供了超过100万张标注图片。COCO、Pascal等大规模标注数据集也在2005年前后陆续出现。燃料准备好了。
3、硬件是点燃一切的火花
2012年,AlexNet用两周时间在ImageNet上完成训练,这是深度学习真正"起飞"的标志时刻。"算法和数据就像空气和燃料的混合物,硬件是点燃它的火花。"
从那以后,训练一个SOTA模型所需的算力以惊人的速度增长:AlexNet时代是几百PetaFLOPS,现在的MoE Transformer模型需要数百亿PetaFLOPS。在2017年《Attention is All You Need》论文发表前,算力需求每年增长3倍;Transformer时代则飙升到每年16倍。过去10年,算力需求增长了1000万倍。
二、5000倍性能提升的拆解:工艺只占3倍
这是整场演讲最硬核的部分。Dally把过去12年GPU在AI推理上的5000倍性能提升做了精确归因。
1、工艺进步:仅贡献3倍
从28纳米到4纳米,跨越了几乎一个数量级的制程缩减,但实际性能贡献只有3倍。Dally特意用线性坐标展示这个数据,因为"如果用对数坐标,观众可能意识不到这有多惨淡"。
他还提醒,制程数字要"打五折来听"——真正重要的是金属线间距(metal pitch),这个数字受限于光刻技术,即使跳到EUV光刻,仍然停留在30纳米左右。一个更诚实的衡量标准是SRAM密度,而SRAM密度从7纳米以来基本没变。
2、数字表示法:32倍
这是最大的单一贡献者。2012年用Kepler GPU做深度学习时,用的是FP32(32位浮点),因为Kepler是为图形和高性能计算设计的,AI还没来得及影响芯片设计。
关键洞察:乘法的能耗与位数的平方成正比。 如果把operand长度翻倍,能耗会变成4倍。反过来说,从32位降到8位,能耗不是减少4倍,而是16倍。
NVIDIA的演进路径是:FP32 → FP16 → INT8 → FP8 → FP4(Blackwell)。这一路下来,贡献了32倍的性能提升。
3、复杂指令:12.5倍
这听起来有点"反RISC",但在深度学习场景下完全合理。
问题在于指令开销。即使在GPU上,执行一条指令本身(取指、译码、取操作数)在45纳米工艺下需要30皮焦,而一个浮点乘加运算只需要1.5皮焦。开销是有效工作的20倍。
NVIDIA的解法是逐代增加单条指令的计算密度:
Pascal引入点积指令:一条指令做8个运算,开销降到5倍
Volta引入HMMA(半精度矩阵乘累加):两个4×4 FP16矩阵相乘累加到FP32矩阵,一条指令做128个运算,开销降到22%
Turing引入IMMA(整数矩阵乘累加):8×8 INT8矩阵运算
现在开销已降到11%
"开销已经小到我们的效率和专用加速器几乎一样。如果你硬编码一个算法,最多也只能做好11%。而我们保留了完全可编程性,可以快速适应算法变化。"
4、稀疏性:2倍
Dally和他的学生Song Han在2015年发表了一篇NeurIPS论文,证明可以把MLP网络90%的权重砍掉而不损失精度。但把这个发现转化为硬件优势花了很长时间,因为稀疏性带来不规则性,而不规则性需要控制逻辑,控制逻辑消耗能量。
最终成功的方案是结构化稀疏(Structured Sparsity),在Ampere一代引入:每4个元素中最多2个非零。用一个2-bit的metadata作为选择信号,输入激活值时做一个multiplexer选择,计算仍然保持规则。这个方案目前只用于权重,且只做2:4稀疏。Dally认为"还有很多性能没挖出来"——激活值的稀疏性、更激进的稀疏比例都是未来方向。
5、Blackwell的"作弊":2倍
Blackwell其实是两颗光罩极限尺寸的die放在一个基板上,NVIDIA称之为"一个GPU"。两颗die之间用NV-HBI连接,带宽达到10TB/s,每bit传输只需要几飞焦。
三、让低精度真正可用的两个关键技术
单纯降低精度会丢失信息。NVIDIA能一路从FP32降到FP4还保持模型精度,靠的是两个技术。
1、最优裁剪(Optimal Clipping)
传统做法是让数字表示覆盖整个数值范围,这意味着要照顾最极端的离群值。但离群值很少,这样做会浪费大量表示能力在"没什么数据"的区域。
更好的做法是:允许一部分极端值被裁剪到最大可表示值,换取更精细的量化精度覆盖主体分布。这是一个优化问题——最小化裁剪噪声和量化噪声之和的均方误差。Dally团队推导出一个迭代公式,可以在硬件中快速计算。
这个优化"值差不多2个bit"——用4bit加最优裁剪,能达到不加优化的6bit的误差水平。
2、细粒度缩放(Fine-grained Scaling)
一开始NVIDIA是对整个layer用一个缩放因子。2021年MLSys论文的发现是:如果对更短的向量(比如每64个元素)单独计算缩放因子,又能省下差不多1个bit的精度损失。
Blackwell的NVFP4格式就是:FP4数据,每16个元素用一个FP8的缩放因子。
四、规模扩展:从1个GPU到10万个
单芯片性能提升5000倍,训练需求增长1000万倍——缺口靠并行弥补。
1、三个并行维度
数据并行:把训练数据切成batch,每组GPU训练不同batch,batch结束时交换权重更新。通信开销小,最容易做。
流水线并行:把模型的层切开,每个GPU负责一部分层,激活值在GPU之间传递。通信量是每层的激活输出,相对可控。
张量并行:把单个矩阵乘法切开分给多个GPU。需要做reduction,通信最重。
2、NVLink与全电气互连
为了让tensor parallelism可行,NVIDIA持续投资片间互连。Blackwell一代的DGX机柜装72个Blackwell GPU和36个Grace CPU,全部用电气连接。
为什么不用光?三个原因:光每Gbps成本高一个数量级,能耗高3倍,可靠性更差容易坏。把72个GPU塞进一个机柜,最长电缆不超过1米,就能避开光互连的问题。整个机柜超过100kW。
3、NVIDIA内部数据中心规模增长了7万倍
从Kepler时代到现在,NVIDIA自己的最大集群从"很小"变成了7万倍的算力。训练大模型现在需要1万到10万个GPU。
五、让我夜不能寐的问题:Decode延迟
Dally用这个表达来引出当前硬件设计的最大挑战。
1、LLM推理的两个阶段
Prefill阶段:输入prompt(可能是几百万token),一次性处理,高度并行,是compute-bound。
Decode阶段:每次只产生一个token,但每个token都要读取整个模型权重(比如Llama 70B的700亿参数)和KV cache。这是memory-bandwidth-bound,而且有严格的延迟要求。
2、思维链让问题恶化
DeepSeek-V3和OpenAI o1引入的Chain of Thought推理,意味着LLM不只运行一次。模型会先产生一串"思考",再输入回去,再产生更多思考,可能重复几十次才给出最终答案。有的系统还做Tree of Thought,从一个输出分叉出多个分支。
3、具体数字
如果用Llama 405B,每个token需要读取405TB的数据(模型权重加KV cache)。1000 token/s意味着405 TB/s的内存带宽。Blackwell单卡是8 TB/s——需要50多个Blackwell才能喂饱。
同时还有延迟约束。假设模型有480个stage(80层×6个stage/层),要达到1000 token/s,每个stage只有2微秒。去掉读内存和计算的时间,留给通信的只有几百纳秒。
4、Prefill和Decode的"失配"
两个阶段对硬件的需求完全不同。如果为Decode优化,会RAM重、算力轻,Prefill阶段就浪费算力。反过来也一样。
NVIDIA的解法是推出CPX——一个Prefill优化的GPU。未来可能还会有Decode优化的版本。"你可能需要为不同阶段配备不同的专用引擎。"
六、能耗分布与未来方向
Dally展示了一个来自NVIDIA Research加速器芯片的能耗饼图。
1、能耗去哪儿了
数学运算:47%——这是有效载荷,应该是最大头
累加缓冲区写入:15%
输入缓冲区和权重缓冲区:若干
数据搬运/通信:6%
"如果你做得好,数学应该占最大头。"
2、优化优先级
第一:让数学更高效(数字表示、稀疏性)
第二:让存储访问更高效(3D堆叠内存)
第三:让通信更高效(更低延迟的互连)
3、3D内存的前景
把DRAM直接堆叠在GPU上方,让计算单元垂直向下读取。目标是把HBM读取能耗从~5皮焦/bit降到~0.5皮焦/bit,同时大幅提升带宽。
4、电压堆叠(Voltage Stacking)
如果目标是性能/瓦特最优,应该用非常低的电压(比如0.25V)。但低电压调节困难。解法是:调节到1V,然后把4个0.25V的计算单元"堆叠"起来,下一个单元的电源就是上一个单元的地。需要保证各单元电流相等,但在矩阵乘法这种高度规则的计算中可以做到。
七、对数表示法:一个被低估的方向
Dally对对数数制(Log Number System)有特别的偏爱。
1、对数的优势
乘法变成加法。动态范围和最坏情况精度都优于INT8,与FP8相当但精度好30%。
关键在于:对数表示的误差与数值本身成正比。小数值有小误差,大数值有大误差,相对误差恒定。整数表示则是绝对误差恒定,导致小数值的相对误差巨大。
2、为什么对数没流行起来
加法难。两个对数数相加,需要先转成整数(查表)、做加法、再转回去。这个转换开销会抵消乘法变加法的收益。
3、Dally的解法
把转换延迟到累加结束后再做。假设你在做一个1000元素的点积。把这1000个乘积按小数部分分成8组(假设小数部分是3bit),每组内部可以直接做整数加法。最后只需要做8次查表转换,而不是1000次。
这个方法已经写进了美国专利。
八、模型创新不可预测,硬件必须保持灵活
1、DeepSeek-V3的两个关键创新
Mixture of Experts:不是每个token都访问所有参数,而是根据token类别只访问一部分expert(比如100个里选6个)。这大幅减少每token需要读取的参数量,缓解内存带宽问题。
Multi-head Latent Attention:把注意力计算先投影到低维空间,做完再投回来。大幅减少注意力计算量。
2、注意力是下一个大战场
当前注意力机制是二次复杂度——每个生成的token都要和所有历史token计算attention。"这不合理。大多数词不依赖每一个其他词,只依赖某些关键词。"
稀疏注意力是热门研究方向。
3、可编程性是护城河
"任何人都能做出矩阵乘法器。但保持可编程性,能快速适应我们还没见过的新模型架构,这才是真正的挑战。"
NVIDIA在MLPerf上持续获胜,很大程度上靠的是软件栈的深度优化——同一硬件,从3.1版本到4.0版本,有的benchmark快了2.9倍,纯粹因为代码调优。
九、未来10年的预测
有观众问:未来10年你预测性能会提升多少倍?
Dally的回答很诚实:"预测什么都行,因为预测错了没人记得,预测对了人家说你是天才。"
如果保持当前每年翻倍的速度:1000倍
但Dally个人判断可能做不到,因为精度降低已经挖完了(从4bit到3bit收益有限),未来主要靠稀疏性和架构优化
保守估计:30倍
乐观但不太可能:1000倍
"我会非常失望如果达不到30倍,也会非常惊讶如果达到1000倍。"
Q1: 过去10年AI芯片性能提升的主要来源是什么?
不是制程进步。在5000倍的性能提升中,28nm到4nm的工艺进步只贡献了3倍。最大贡献者是数字表示精度的降低(32倍,从FP32到FP4),其次是复杂指令带来的开销减少(12.5倍),再次是结构化稀疏性(2倍)。
Q2: 为什么LLM推理的延迟问题这么难解决?
LLM推理分两个阶段:Prefill是并行处理整个prompt,计算密集型;Decode是逐个生成token,每个token都要读取整个模型权重和KV cache,受内存带宽限制且有严格延迟要求。更麻烦的是思维链推理——模型可能内部运行几十次才给出一个答案,把延迟要求压缩到每个stage只有2微秒、通信只有几百纳秒。两个阶段对硬件的需求完全不同,很难同时优化。
Q3: 软件在AI硬件生态中扮演什么角色?
Dally明确说"矩阵乘法器谁都会做",真正的壁垒是软件栈。NVIDIA从CUDA开始构建了完整的软件生态(cuDNN、各种垂直领域框架),让用户能"开箱即用"。在MLPerf评测中,同一硬件通过代码优化可以在6个月内提升2-3倍——这纯粹是软件功夫。保持可编程性也是为了快速适应新的模型架构,比如MoE和稀疏注意力这些一年前还不存在的东西。 http://t.cn/AXyBn42F
发布于 中国台湾
