算力纪元:为什么AI需要专用芯片
算力纪元:为什么AI需要专用芯片
想象这样一个场景:2012年的某个秋日,在多伦多大学的实验室里,Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton三位研究者正在紧张地等待一项比赛的最终结果。当屏幕上的数字定格的那一刻,深度学习的历史被悄然改写——他们的AlexNet模型以悬殊的领先优势夺得了ImageNet图像识别挑战赛的冠军,错误率仅为15.3%,而第二名则高达26.2%。这个5年前几乎无人问津的冷门技术,一夜之间成为了计算机视觉领域的救世主,更为重要的是,它向全世界揭示了一个被忽视已久的秘密:摩尔定律的黄金时代或许已经接近尾声,但算力的需求才刚刚开始爆发。
当深度学习遇见算力瓶颈
在AlexNet诞生之前的人工智能寒冬期,研究者们曾经无数次幻想过这样的场景:只要有足够强大的计算能力,任何看似复杂的人工智能问题都将迎刃而解。然而现实总是比理想骨感得多——1990年代至2000年代初期的研究者们,手里能够调动的最强算力,不过是一颗主频几百兆赫兹的CPU芯片,面对任何稍微复杂一些的神经网络模型,都不得不做出痛苦的妥协:减少网络层数、缩小训练数据集、简化特征提取算法。这些妥协的结果是,模型的性能始终无法突破某个看不见的天花板,而批评者们则在一旁冷嘲热讽:人工智能不过是统计学家的自娱自乐,永远不可能达到真正的智能。
AlexNet的横空出世打破了这种僵局。但鲜为人知的是,这篇被誉为深度学习复兴之作的论文背后,其实是一场精心策划的"算力赌博"。Krizhevsky在设计AlexNet时做了一个大胆的决定:他使用了整整两块NVIDIA GeForce GTX 580显卡来训练这个模型。在当时主流学术界,GPU(图形处理器)还只是一个游戏玩家和3D设计师才会关心的"玩具",没有人在严肃的科研项目中使用这种"不务正业"的硬件。然而GPU天生的大规模并行架构——成百上千个小型计算核心同时运作的模式——恰恰与神经网络的计算特征完美契合。卷积运算、矩阵乘法、激活函数……这些构成神经网络的基石操作,在GPU上可以获得数量级的性能提升。
这一发现的意义远超学术范畴。它预示着一个全新时代的到来:专用算力将不再是计算机科学的边缘话题,而是决定人工智能发展速度的核心变量。从2012年到2024年的短短十二年间,AI模型的参数规模从AlexNet的约6000万增长到了GPT-4的超过万亿级别,增幅高达上千倍。如果用传统的CPU来训练这些模型,按照摩尔定律的渐进速度,需要等到22世纪才能看到GPT-4级别的模型诞生。
但现实并没有那么悲观,因为算力芯片的演进走出了自己的曲线——这条曲线比摩尔定律预测的更加陡峭,更加激进,也更加残酷。
算力需求:一场没有终点的指数增长
要理解为什么AI需要专用芯片,我们首先需要正视一个基本事实:人工智能对算力的需求,正在以一种前所未有的速度膨胀。这种膨胀不是简单的线性增长,而是指数级的——每隔一段时间,实现同等智能水平所需的计算量就会翻一番甚至翻更多番。
让我们把时间拨回到2017年。那一年,谷歌大脑团队发表了一篇名为《注意力就是你所需要的一切》的论文,提出了Transformer架构。这个当时看起来只是众多神经网络变体中普通一员的架构,日后成为了大语言模型的基石。但在当时,研究者们并没有意识到,自己亲手点燃了一把足以吞噬全球算力的熊熊大火。
Transformer的核心创新在于"注意力机制"——通过计算序列中不同位置之间的相关性,模型可以更好地理解上下文信息。这听起来很优雅,但代价是计算复杂度的爆炸式增长。对于一个长度为n的序列,传统的循环神经网络(RNN)的计算复杂度是O(n),而Transformer的复杂度是O(n²)。这意味着,当序列长度翻倍时,RNN的计算量大约翻倍,而Transformer的计算量会变成原来的四倍。
更糟糕的是,训练大模型需要的不仅仅是处理更长序列的能力。随着模型规模的扩大,参数数量呈线性增长,但训练所需的数据量和计算量却呈超线性增长。一个简单的估算公式揭示了这个残酷的真相:训练一个大型语言模型所需的浮点运算次数(FLOPs)大约等于6乘以模型参数数量再乘以训练数据集的token数量。以GPT-3为例,这个拥有1750亿参数的模型在3000亿个token上进行训练,所需的浮点运算次数高达3.15×10²³次。这个数字是什么概念?假设一个每秒能执行10亿次运算的CPU核心需要不间断地运行1万年才能完成,那么训练GPT-3需要的算力相当于数百万个这样的核心同时工作一年。
这种算力需求的指数增长,直接催生了一个问题:传统的CPU架构是否还能胜任AI workload的计算任务?
CPU的困境:通用之王为何力不从心
要回答这个问题,我们需要先理解CPU的设计哲学以及它与AI计算特征之间的根本矛盾。
CPU,全称中央处理器(Central Processing Unit),是通用计算的集大成者。过去五十年来,从英特尔创始人戈登·摩尔提出那个著名的定律开始,CPU的设计就始终遵循着一个核心原则:不断提升单线程性能。通过不断提高时钟频率、增加缓存容量、改进分支预测算法、扩大指令级并行度,CPU制造商们让一颗芯片上的晶体管数量每隔18-24个月就翻一番,同时保持甚至提升每秒钟能够完成的指令数量。
这种设计哲学在通用计算场景下堪称完美。当你在电脑上同时打开浏览器、播放器、文档编辑器等多个程序时,CPU需要快速地在不同任务之间切换,处理各种突发性的、不可预测的请求。它需要擅长"做很多不同的事",而非"反复做同一件事"。因此,CPU的核心设计理念是低延迟、高灵活性——每个核心都要尽可能快地完成单个任务,哪怕这个任务只是整个计算流程中的一小步。
然而,深度学习的工作负载恰恰站在了这个设计理念的对立面。
神经网络的计算模式高度规则且极度可预测。以最常见的卷积神经网络为例,一张图片经过多层卷积、池化、激活函数处理,每一步的操作几乎完全相同:读取数据、执行乘法加法、写入结果。这种"同一个操作重复数十亿次"的计算模式,与CPU的设计初衷形成了难以调和的矛盾。
更深层的问题在于数据流。当CPU执行一个指令时,它需要经历取指、译码、执行、访存、写回等多个阶段,每个阶段可能需要几个甚至几十个时钟周期。对于单个指令来说,这种开销或许可以接受,但当需要执行数十亿次相同操作时,这些开销就会累积成一个惊人的数字——CPU在等待数据加载上花费的时间,往往比实际计算时间还要长。
现代深度学习框架中广泛使用的矩阵乘法操作最能说明这个问题的重要性。一个典型的Transformer层中,矩阵乘法占用的计算量通常超过90%,而这些操作的核心其实就是大量的乘加运算——对应元素相乘,然后将结果累加。如果有一种硬件能够在同一个时钟周期内并行完成数百甚至数千对这样的乘加操作,效率将得到质的飞跃。
这就是GPU、TPU等专用芯片崛起的根本逻辑:与其试图让通用处理器适应AI workload,不如为AI workload专门设计处理器。
专用计算的崛起:一场迟来的架构革命
专用计算(Domain-Specific Computing)的概念并非人工智能的专属产物。事实上,从计算机诞生之日起,工程师们就一直在通用与专用之间寻找平衡点。早期的巨型机使用专用硬件来加速数值计算;日本在第五代计算机计划中尝试用专用硬件来实现逻辑推理;数字信号处理器(DSP)长期以来都是通信行业的标配。专用芯片之所以能够在特定领域取得成功,根本原因在于:放弃通用性带来的灵活性,换取特定场景下的极致效率。
对于深度学习来说,这种取舍的回报是惊人的。
让我们做一个简单的算术对比。一块高端消费级GPU,比如NVIDIA RTX 4090,拥有16384个CUDA核心(每个核心本质上是一个小型算术逻辑单元),峰值算力高达82.6 TFLOPS(万亿次浮点运算每秒)。相比之下,同一代的旗舰级CPU,比如AMD Ryzen 9 9950X,拥有16个核心,峰值算力约为1.7 TFLOPS。单纯从数字上看,GPU的算力是CPU的近50倍。
但这个对比还不够准确。GPU的架构设计让它在执行深度学习特有操作时,效率远比峰值算力所显示的更高。NVIDIA在GPU中引入了"张量核心"(Tensor Core)这一专门用于矩阵运算的硬件单元。以H100 GPU为例,它配备的第四代张量核心可以在每个时钟周期内完成一个4×4矩阵与另一个4×4矩阵的乘法,并将结果累加到第三个矩阵上。这听起来或许不起眼,但考虑到H100拥有数百个张量核心,主频超过1GHz,实际的吞吐量可以达到每秒千万亿次(PFLOPS)级别——这已经是人类第一款实现PFLOPS级算力的商业芯片。
GPU的内存系统也是其能够高效处理AI workload的关键因素之一。深度学习训练需要频繁地读取大规模权重参数和训练数据。GPU采用的高带宽内存(HBM)技术,通过3D堆叠封装和宽数据总线,可以在单个芯片上实现数TB/s的内存带宽。相比之下,即便是最先进的CPU,内存带宽也不过几百GB/s。当GPU需要反复读取相同的权重数据进行数十亿次计算时,更高的内存带宽意味着更少的"饥饿"时间——计算单元不会因为等待数据而空转。
这种架构上的差异,在实际训练中会转化为巨大的效率差距。用一块GPU训练一个中等规模的ResNet模型可能需要几个小时,而用高端CPU训练同一个模型,可能需要几天甚至一周。当训练规模扩大到GPT-3这种级别时,单纯使用CPU已经变得完全不现实——理论上需要数十年的训练时间。
但故事到这里还没有结束。GPU的崛起只是专用计算革命的第一波浪潮。当科技巨头们意识到深度学习将成为决定未来竞争力的核心技术时,他们开始尝试走得更远:设计完全针对AI workload优化的专用芯片,从芯片架构到指令集,从内存层次到互联网络,每一个细节都为深度学习量身定制。
三国争霸:GPU、TPU与昇腾的角力
如果要问当今AI芯片市场最引人注目的竞争格局,莫过于"三国演义"——以NVIDIA为代表的GPU阵营、以谷歌为代表的TPU阵营、以及以华为为代表的昇腾阵营。这三股力量的此消彼长,不仅决定了全球AI基础设施的建设方向,也在深刻影响着人工智能产业化的进程。
NVIDIA:GPU帝国的统治与挑战
在深入讨论TPU和昇腾之前,我们有必要先充分认识NVIDIA在这个领域的先发优势和技术积累,因为理解GPU的设计哲学,是理解其他专用AI芯片的起点。
NVIDIA的GPU架构革命始于2006年,那一年,公司推出了CUDA(Compute Unified Device Architecture)平台。这是一个革命性的设计——它让开发者能够使用标准的C++语言,直接对GPU的并行计算单元进行编程。在此之前,GPU只能通过极其晦涩的图形API来间接操控,并行计算的门槛高得让大多数程序员望而却步。CUDA的出现,彻底改变了这一切。
CUDA的核心理念可以用一句话概括:让并行计算变得简单,让简单的事情变得更快。NVIDIA在硬件和软件两个层面同时发力:一方面,不断改进GPU的并行计算架构,增加核心数量,优化内存层次结构,引入专用计算单元;另一方面,构建完善的CUDA生态系统,包括编译器、调试器、性能分析工具、数学库(cuBLAS、cuDNN等),以及后来加入的深度学习框架支持(cuDNN、TensorRT等)。
经过近二十年的迭代,NVIDIA的GPU已经形成了一套高度成熟、针对AI workload优化的完整技术栈。从底层的硬件微架构(Ampere、Hopper),到中间层的软件栈(CUDA、cuDNN、TensorRT),再到顶层的生态系统(与PyTorch、TensorFlow等框架的深度集成),NVIDIA构建了一个让竞争对手难以逾越的护城河。
特别值得强调的是张量核心(Tensor Core)的演进。第一代张量核心出现在Volta架构中,能够在一个时钟周期内完成一个4×4×4的矩阵乘法累加操作。此后每一代架构,张量核心的能力都在稳步增强:Turing架构加入了INT8和INT4量化支持;Ampere架构支持TF32和BF16等新数据类型;最新的Hopper架构则引入了Transformer引擎,能够自动在FP8和其他精度格式之间切换,针对Transformer模型进行专门优化。
这种持续的架构迭代能力,是NVIDIA保持领先的关键因素之一。每两年左右,NVIDIA就会推出新一代GPU架构,带来显著的能效比提升。H100相比其前身A100,在Transformer训练任务上快了约4倍,而下一代Blackwell架构的性能又将再上一个台阶。
然而,NVIDIA的统治地位也面临着严峻挑战。GPU架构的通用性是一把双刃剑——它在覆盖多种AI workload的同时,也意味着在每一种特定场景下都存在优化空间。对于那些追求极致效率的科技巨头来说,购买现成的GPU意味着为不需要的功能付费,同时也意味着将自己的命运交到了竞争对手手中。
谷歌TPU:互联网巨头的芯片野心
2016年,谷歌在I/O开发者大会上首次公开了TPU(Tensor Processing Unit)的存在。这个消息在芯片行业掀起了轩然大波——在此之前,芯片设计从来不是互联网公司的主业,但谷歌却选择了一条最为激进的道路:从头开始,为人工智能设计一颗专用芯片。
TPU的设计哲学与GPU有着本质的不同。GPU是从图形处理器演变而来的通用并行计算设备,而TPU从一开始就只有一个目标:高效执行矩阵乘法。后来的发展证明,这种"极度专注"的策略取得了令人瞩目的成功。
让我们看看第一代TPU的规格:它于2015年部署在谷歌的数据中心,主要用于推理任务(而非训练)。这颗芯片的核心是一个65536个8位整数乘法器的矩阵乘法单元(MXU),峰值算力达到92 TOPS(万亿次操作每秒)。更重要的是,TPU的设计者选择了脉动阵列(Systolic Array)架构——一种将数据流紧密编排、最小化内存访问的设计方式。在脉动阵列中,数据从阵列的一侧流入,被沿途的计算单元逐步处理,最终从另一侧流出。这种设计几乎消除了传统架构中频繁的内存读写开销,能效比因此大幅提升。
从第一代TPU开始,谷歌就走了一条与NVIDIA不同的技术路线。NVIDIA的GPU支持多种精度(FP32、FP16、BF16、INT8等),能够灵活适应从训练到推理的各种需求;而TPU则更专注于特定的精度格式,第一代仅支持INT8,第二代加入BF16,第三代(Cloud TPU v3)支持BF16和FP32,最新的TPU v5则进一步扩展了精度选项。
这种差异反映了两个公司不同的市场定位:NVIDIA卖的是芯片,客户需要芯片能够适应各种场景;谷歌用芯片是为自己服务,需求高度明确,可以做更多的针对性优化。
TPU的另一个独特优势在于其大规模集群能力。谷歌为TPU设计了专门的互联网络(ICI,Inter-Core Interconnect),允许在单个Pod中将数千个TPU芯片高速互联。在TPU v4中,一个Pod可以包含4096个TPU芯片,总算力达到1 EFLOPS(百亿亿次浮点运算每秒)级别。这种规模是单芯片性能无论如何都无法企及的——它代表了"专用系统"的终极形态:整个数据中心就是一颗芯片。
但TPU的封闭生态也是其最大的软肋。TPU几乎只能通过谷歌云平台使用,无法购买或部署在本地。这与NVIDIA的开放策略形成了鲜明对比——任何公司都可以购买NVIDIA的GPU,自己组建训练集群,或者选择各大云服务商提供的GPU实例。对于那些希望在本地部署AI能力的企业来说,TPU并非可选方案。
华为昇腾:东方力量的强势崛起
如果说GPU领域还有NVIDIA这座难以逾越的高山,那么昇腾的出现则证明了中国芯片产业在AI专用计算领域的雄心与实力。
昇腾系列芯片是华为海思为人工智能应用专门设计的ASIC(专用集成电路)产品线。其中的旗舰产品昇腾910发布于2019年,是当时面向训练任务的单芯片算力最强的AI芯片之一。根据华为公布的规格,昇腾910采用7nm工艺制造,FP16算力达到256 TFLOPS,INT8算力更是高达512 TOPS。
昇腾的架构设计有几个显著特点。首先是Da Vinci架构的采用——这是一个专门为神经网络设计的异构计算架构,包含标量向量单元、矩阵运算单元和控制单元。其中矩阵运算单元(Cube Unit)负责执行矩阵-矩阵和矩阵-向量乘法,是芯片的核心计算引擎。
其次是华为构建的完整软件栈——CANN(Compute Architecture for Neural Networks)。CANN层位于芯片硬件和上层框架之间,提供了算子抽象、调度优化、内存管理等关键功能。通过CANN,开发者可以使用MindSpore、PyTorch等主流框架编写模型,然后自动编译部署到昇腾芯片上。
昇腾910的另一个亮点是其能效表现。华为宣称,在FP16精度下,昇腾910的功耗为310W,算力功耗比(每瓦特能够提供的算力)达到0.83 TFLOPS/W。这个数字不仅领先于同期的NVIDIA V100(约0.4 TFLOPS/W),甚至与后来的A100相比也毫不逊色。
然而,昇腾面临的最大挑战并非技术本身。2020年,美国商务部将华为列入实体清单,禁止台积电等代工厂为华为制造芯片。这一限制直接影响了昇腾910之后的芯片迭代——华为被迫使用库存芯片或者寻找替代制造方案。这种外部压力让昇腾在产能和持续演进方面面临巨大的不确定性。
尽管如此,昇腾在中国市场的渗透率正在快速提升。华为与国内众多云服务商、服务器厂商建立了深度合作关系,昇腾芯片已被广泛应用于大模型训练、科学计算、智慧城市等领域。特别是在国产替代的大背景下,昇腾正在成为越来越多中国企业的选择。
技术演进的深层逻辑
在了解了GPU、TPU、昇腾这三大AI芯片力量之后,我们不禁要问:这些看似不同的技术路线,背后是否隐藏着某些共同的演进逻辑?未来的AI芯片将走向何方?
要回答这些问题,我们需要从更宏观的视角审视算力需求与硬件供给之间的互动关系。
第一,算力需求的多样化正在推动芯片架构的分化。 过去,无论是训练还是推理,无论是视觉模型还是语言模型,开发者通常使用同一类型的硬件。但随着AI应用场景的细分,单一类型的芯片已经无法满足所有需求。训练需要高算力、高带宽,对延迟的容忍度相对较高;推理则更看重低延迟、低功耗,单位算力成本必须足够低。这种差异催生了训练芯片和推理芯片的分化——NVIDIA同时提供H100(训练)和L40S(推理)产品线,谷歌的TPU也明确区分了训练版和推理版。
第二,芯片与内存的协同设计变得越来越关键。 过去几十年的芯片设计传统是将计算单元和存储单元分离,通过数据总线连接。但当内存带宽成为瓶颈时,工程师们开始探索"存算一体"的架构——将计算能力嵌入到存储阵列中,从根本上消除数据搬移的开销。TPU的脉动阵列是这种理念的一个早期实践,而更激进的"近存计算"和"存