引言:从Token定价到芯片内部计算

在前一期节目中,我们借助MatX CEO、前谷歌TPU架构师莱纳·波普(Reiner Pope)在Dwarkesh Patel播客中的分享,深入解析了Token是如何进行定价的。这一期节目,我们将继续跟随莱纳·波普在黑板上的粉笔轨迹,深入探讨一个更为基础且核心的话题:AI芯片的内部是如何一步一步进行计算的。这不仅是理解大模型运行的关键,也是理解现代计算架构演进的基石。通过这一系列讲解,我们将揭示从最基础的逻辑门到复杂的脉动阵列,数据如何在硅片上流动并完成矩阵乘法这一AI核心运算。

"今天我们再来分享最新的一期播客节目,一起跟随莱纳·波普在黑板上的粉笔,来看看AI芯片的内部是如何一步一步计算的。"

基础构建块:逻辑门与布尔代数

一切数字计算的起点,都在于逻辑门(Logic Gates)。莱纳·波普首先从最基础的布尔代数讲起,解释了计算机如何通过简单的开关状态(0和1)来处理复杂信息。最基本的逻辑门包括与门(AND)、或门(OR)和非门(NOT)。这些门电路通过组合,可以构建出更复杂的逻辑功能。例如,与门要求所有输入都为1时输出才为1,这对应于物理电路中的串联开关。而或门则类似于并联开关,只要有一个输入为1,输出即为1。

在此基础上,非门用于反转信号状态,它是构建所有复杂逻辑电路的基础。通过组合这些基本门,我们可以构建出异或门(XOR),它在加法运算中至关重要。莱纳指出,虽然这些概念在计算机科学入门课程中常见,但在AI芯片的语境下,理解它们如何被优化以执行大规模并行计算是关键。每一个晶体管的状态变化都代表着一次微小的计算,而数十亿个晶体管的协同工作构成了现代AI芯片的算力基础。这种从微观到宏观的构建过程,体现了摩尔定律背后的工程奇迹。

加法器的演进:从半加器到全加器

在理解了基本逻辑门后,下一步是构建加法器(Adder),因为加法是算术运算的基础。莱纳首先介绍了半加器(Half Adder),它只能处理两个单比特数的相加,并产生和(Sum)与进位(Carry)。然而,在实际的多比特加法中,我们需要考虑来自低位的进位,这就引出了全加器(Full Adder)的概念。全加器有三个输入:两个加数和一个低位进位,它不仅能计算当前位的和,还能生成向高位的进位。

通过级联多个全加器,我们可以构建出行波进位加法器(Ripple Carry Adder)。这种结构简单直观,但存在一个显著的性能瓶颈:进位信号必须从最低位传播到最高位,导致延迟随着位数的增加而线性增加。莱纳在黑板上演示了这种级联结构,并指出在高性能AI芯片中,这种延迟是不可接受的。因此,工程师们开发了更复杂的进位选择加法器(Carry Select Adder)和进位预览加法器(Carry Lookahead Adder),通过并行计算进位信号来减少延迟。这些优化虽然增加了电路的复杂性,但极大地提升了运算速度,为后续更复杂的乘法运算奠定了基础。

乘法的核心:Dadda乘法器与部分积

乘法运算是AI计算中最为耗时的操作之一,因为矩阵乘法本质上是由大量的乘加运算组成的。莱纳详细讲解了Dadda乘法器(Dadda Multiplier)的工作原理,这是一种高效的并行乘法架构。乘法的过程可以分解为生成部分积(Partial Products),然后将这些部分积相加。对于两个n位数的乘法,会产生n个部分积。直接相加这些部分积效率极低,因此需要引入压缩树(Compression Tree)来减少部分积的数量。

Dadda算法的核心在于使用全加器和半加器组成的压缩层,将三个输入压缩为两个输出(和与进位)。通过多层这样的压缩,部分积的数量迅速减少,最终只剩下两个数,可以通过一个快速加法器完成最后的求和。莱纳强调,这种并行处理方式非常适合AI芯片的架构,因为它允许同时处理大量的乘法操作。在AI芯片中,乘法器通常被设计为高度并行的阵列,以最大化吞吐量。这种设计思路直接影响了后续脉动阵列的结构,使得芯片能够在单位时间内完成海量的矩阵运算。

数据存储:寄存器堆与SRAM

计算单元需要快速访问数据,这就涉及到了寄存器堆(Register File)和静态随机存取存储器(SRAM)。莱纳解释了寄存器堆的结构,它由多个寄存器组成,每个寄存器可以存储一个数据字。寄存器堆通过地址解码器来选择特定的寄存器进行读写。在AI芯片中,寄存器堆通常用于存储中间计算结果或权重数据,以便快速访问。

"寄存器堆是芯片内部最快的存储层级,它直接连接到计算单元,确保数据能够在单个时钟周期内被读取或写入。"

相比之下,SRAM具有更大的容量,但访问速度稍慢。莱纳指出,SRAM通常用于缓存权重数据和激活值,以减少从外部DRAM读取数据的延迟。在AI芯片设计中,存储层级结构(Memory Hierarchy)至关重要,因为数据移动的能量消耗往往远大于计算本身的能耗。因此,优化SRAM的布局和使用策略,是提高AI芯片能效比的关键。莱纳还提到了暂存器(Latch)的作用,它在时钟边沿捕获数据,确保数据在传输过程中的稳定性。这些存储组件的协同工作,构成了AI芯片高效数据流动的基础。

脉动阵列:AI计算的架构革命

莱纳重点介绍了脉动阵列(Systolic Array),这是AI芯片中最具代表性的计算架构之一,也是谷歌TPU的核心组件。脉动阵列由多个处理单元(PE, Processing Element)组成,这些单元以类似心脏跳动的节奏同步工作。数据在PE之间流动,每个PE执行乘加运算,并将结果传递给相邻的PE。这种架构的优势在于数据流的高度局部化和并行性,极大地减少了数据在芯片内部的移动距离。

在脉动阵列中,权重数据通常被预加载到PE中,而激活值则像血液一样在阵列中流动。莱纳在黑板上绘制了脉动阵列的示意图,展示了数据如何从输入端进入,经过多层PE的处理,最终输出结果。这种结构特别适合矩阵乘法,因为矩阵乘法具有高度的数据复用性。通过优化脉动阵列的规模和连接方式,可以针对不同的AI模型进行定制。莱纳指出,脉动阵列的能效比远高于传统的CPU和GPU,因为它避免了冯·诺依曼架构中的数据搬运瓶颈。这种架构创新是AI芯片能够在大模型时代崛起的关键因素。

控制逻辑:菊花链与FPGA/ASIC对比

除了计算单元,AI芯片还需要复杂的控制逻辑来协调数据流动。莱纳介绍了菊花链(Daisy Chain)作为一种简单的控制信号传输方式,其中控制信号依次通过每个处理单元。虽然菊花链结构简单,但在大规模阵列中可能会引入延迟。因此,在现代AI芯片中,通常采用更复杂的控制网络,如片上网络(NoC, Network-on-Chip),以实现更高效的数据路由。

莱纳还对比了FPGA(现场可编程门阵列)ASIC(专用集成电路)在AI计算中的应用。FPGA具有灵活性,可以在部署后重新配置,适合算法快速迭代的场景。然而,其能效比通常低于ASIC。ASIC则是为特定算法定制的硬件,具有最高的性能和能效比,但开发成本高且缺乏灵活性。莱纳指出,谷歌TPU属于ASIC,因为它专为矩阵乘法优化,而某些边缘AI设备可能使用FPGA以适应多变的需求。这种权衡在AI芯片设计中至关重要,开发者需要根据应用场景选择合适的架构。

总结:从微观逻辑到宏观智能

最后,莱纳·波普总结了AI芯片计算的完整链路:从逻辑门构建加法器,再到Dadda乘法器实现高效乘法,通过寄存器堆和SRAM管理数据,最终在脉动阵列中完成大规模的矩阵运算。这一过程展示了计算机科学的精妙之处,即通过简单的二进制逻辑,构建出能够处理复杂智能任务的硬件系统。莱纳强调,理解这些底层原理,有助于我们更好地把握AI技术的发展趋势,以及未来芯片设计的方向。

"AI芯片的内部计算不仅仅是数字的堆砌,而是逻辑、存储和控制艺术的完美结合。"

通过这一期节目,我们不仅看到了AI芯片的内部构造,更理解了其背后的设计哲学。从莱纳·波普的讲解中,我们可以感受到工程师们在追求极致性能与能效比过程中的智慧与努力。这些基础知识,正是我们理解当前AI爆发式增长的基石。