AI芯片设计原理:一切都是计算和通信的面积竞争 原创

这是一个从入门讲起的AI芯片设计原理课的记录笔记。

这是一个从入门讲起的AI芯片设计原理课的记录笔记。

AI芯片设计原理:一切都是计算和通信的面积竞争

2026年5月,Dwarkesh Patel在他的播客中第二次邀请Reiner Pope走到黑板前。上一次对话是在2026年4月,两人用方程式推导了大模型训练和推理的经济学。这一次,Pope拿起粉笔,从一颗芯片能做的最小一件事开始画起,然后一层一层往上搭,从怎样把两个数相乘,到怎样把成千上万次乘法组织起来,再到一整颗芯片的内部结构为什么长成现在这个样子。

整堂课只有一条主线:在芯片设计的每一个层级上,把数据从A搬到B的成本都远远超过对数据本身做计算的成本,而所有架构创新的本质都是在压低这个比值。

过去六十年,摩尔定律让同一块芯片面积上的晶体管数量每隔大约两年翻一倍,路径是把晶体管做得越来越小。但这条路正在遇到一个不对称的瓶颈:晶体管缩小了,做计算的速度确实更快了,可连接它们的金属走线也跟着变细,电阻反而增大,信号在走线上传播的延迟并没有同步缩短。一颗芯片上,晶体管负责计算,走线负责通信。计算在加速,通信在原地踏步,甚至在变慢。当芯片的性能瓶颈从"能不能算得更快"变成"信号能不能更快地从A走到B",光把晶体管做小就不够用了,必须从电路设计、芯片架构、系统组织等多个层级上想办法压缩信号传播的延迟。Pope这堂课讲的就是这些创新背后的物理逻辑。

Pope是AI芯片创业公司MatX的联合创始人兼CEO。在创办MatX之前,他在Google Brain参与训练了PaLM等大型语言模型,同时担任TPU芯片的效率负责人和编译器架构师,参与构思了TPU v5e的设计。他的联合创始人Mike Gunter是Google TPU团队的首席芯片架构师。两人在ChatGPT发布前一周离开Google,创办MatX,目标是"做出物理定律允许范围内最好的LLM芯片"。2026年2月,MatX宣布完成5亿美元B轮融资,由高频交易巨头Jane Street和Leopold Aschenbrenner创立的Situational Awareness领投,估值达到数十亿美元。公司目前约100人,计划在一年内完成tape out,也就是把最终芯片设计文件交给代工厂启动制造,2027年开始向客户出货旗舰产品MatX One。Dwarkesh本人也是MatX的天使投资人。

1. 16个与门和16个全加器:乘法器的真实成本

Pope从芯片能做的最小操作开始。

AI芯片存在的理由是做矩阵乘法。矩阵乘法是神经网络中最密集的运算:把大量数字按特定规则两两相乘再求和。拆到最底层,是三层嵌套循环,每一步的核心操作都是"两个数相乘,结果加到一个累加器上"。累加器就是一个持续叠加总和的存储位置,每来一个新的乘积就往里加一次。这个操作叫乘累加,英文multiply-accumulate,简称MAC。MAC不是人为选择的抽象,而是矩阵乘法的数学结构直接要求的原子操作。

在芯片的世界里,所有数字都用二进制表示,每一位叫一个bit,只有0和1两种状态。我们平时用十进制,一个数位可以是0到9,而芯片只有0和1可用。

Pope演示的乘法过程,其实就是小学学过的竖式乘法,只不过从十进制换成了二进制。回忆一下我们怎么做竖式乘法的:把下面那个数的每一位分别去乘上面那个数,得到若干个中间结果,然后把它们错位对齐加起来。芯片做的是一模一样的事。

以一个4位乘以4位的乘累加过程为例。乘法的第一步是生成"部分积":把第一个数的每个bit和第二个数的每个bit逐一相乘,就像竖式乘法中的每一行中间结果。两个bit相乘的逻辑和与门AND gate完全一致:只有两个都是1时结果才是1,否则是0。这比十进制简单得多,十进制里3×7要查乘法表才知道答案是21,但在二进制里1×1=1,其他全是0,根本不需要乘法表。4位乘4位,需要4×4=16个与门,生成16个部分积。推广到P位乘Q位,就是P×Q个与门。

乘法只是开场。就像竖式乘法中真正费功夫的是最后把所有中间结果加起来一样,真正的工作量在把这16个部分积加起来。Pope引入了全加器full adder,它只做一件事:把三个单bit数加在一起,输出两个bit的结果,一个留在本列,一个作为进位送到左边那列。这和我们做竖式加法时"写下个位、进位到十位"是同一个动作。因为每使用一次全加器,就把同一列中的三个数压缩成两个数,净减少一个,它也被叫做"3到2压缩器"。

具体做法是从右往左逐列处理。每次从同一列中挑出3个bit喂进全加器,吐出一个sum位留在本列,一个carry位送到左边那列。这样不断压缩,一层层削减待加的数,最终合并出结果。4位乘以4位的乘积最大是15×15=225,需要8个bit才能表示,所以累加项是8位的。输入总共24个bit(16个部分积加上8位累加项),输出8个bit,每用一次全加器消除一个bit,所以总共需要16个全加器。推广到一般情况,全加器数量恰好等于P×Q。这种逐层压缩的乘法电路叫Dadda multiplier,是面积高效乘法的标准实现。

把乘法和累加合并成一个操作,在电路层面有一个干净的代数性质:输入bit总数是P×Q + P + Q,输出是一个P+Q位的结果(P位数乘Q位数的乘积最多就是P+Q位),两者相减恰好是P×Q个全加器。如果把乘法和累加拆开做,这个等式就不成立了。这是芯片设计选择MAC作为基元的第二个理由:纯粹的电路效率。

2. 精度减半,面积缩小四分之三

乘法电路的面积与两个操作数的bit宽度之积成正比。对于同一种精度来说,这是二次方关系:把bit宽度减半,面积缩小到四分之一。这意味着同样大小的芯片面积上可以塞进4倍的MAC单元。这个二次方关系是低精度训练和推理对神经网络效果好的最底层物理原因。

但实际比例会偏离理论值。浮点数不只存数值本身,还需要额外几个bit来记录小数点的位置,也就是指数位。处理指数位的电路是额外开销。芯片行业用FP加一个数字来标记浮点精度:FP8表示一个浮点数占8个bit,FP4占4个bit。数字越小,精度越粗糙,但同样的芯片面积能塞进的计算单元也越多。

Nvidia在B200及之前的产品中,FP4的标称算力一直是FP8的2倍。但按照上面的二次方关系,4位的乘法电路面积只有8位的四分之一,理论上同样的芯片面积应该能塞进4倍而不是2倍的FP4计算单元。为什么实际只做到了2倍?

一个原因是前面提到的指数位开销。浮点乘法不只是数值部分相乘,还要处理指数位,这部分电路吃掉了一部分二次方优势。另一个原因是数据搬运那侧恰好也能整除:两个4位数可以打包进一个8位数的存储空间,芯片内部用于传输数据的总线(可以理解为芯片上的"公路",宽度固定)和存储单元尺寸因此天然对齐。2倍是一个计算和搬运都说得通的整数,Nvidia就一直沿用了这个比值。

到了B300,Nvidia把这个比值从2倍提升到了3倍。B300的FP4算力为15 PFLOPS(每秒千万亿次浮点运算),FP8为5 PFLOPS。Pope认为3倍比2倍更接近真实的物理规律,而没有到4倍则是因为指数位处理的开销确实存在。

还有一个容易忽略的精度设计决策:在AI芯片中,做乘法的两个输入通常用低精度(比如4位),但累加器需要更高精度(比如8位)。原因是乘法只有一步,舍入误差不会叠加。累加则不同,它要把大量乘法结果逐步求和,每一步的舍入误差都会传递到下一步。精度不够的话,误差迅速放大。

3. 搬数据的电路比算数的电路贵6倍

MAC电路本身的设计到此为止。但一颗真实的芯片上,MAC不是孤立运行的。它要从某个地方读取输入,把结果写回某个地方。接下来Pope揭示的事实颠覆了大部分人对芯片的直觉:搬运数据的电路面积远远超过做计算的电路面积。

在2017年tensor core出现之前,GPU里负责计算的最小单元叫CUDA core。它的内部结构是:一个寄存器堆,充当芯片上的超高速暂存空间,存放若干个待计算的数;一个MAC单元做计算。每个时钟周期,从寄存器堆中选出三个数送进MAC单元,算完再写回去。

"选出"这个操作在写代码时一行就能完成。但在电路层面,它需要一个叫多路选择器MUX的电路来实现。MUX的工作就是从N个候选中选出一个。它的实现方式是这样的:假设寄存器堆有8个条目,我要选第3个。做法是给每个条目分配一个"选中信号",第3个为1,其余为0。然后用与门把每个条目的每一个bit和它自己的选中信号相乘:被选中的那个条目所有bit原样通过,其余的全部变成0。最后用或门把8个条目的结果合并。或门的逻辑和与门相反:只要有一个输入为1,输出就是1。因为只有一个条目是非零的,合并结果就是被选中的那个值。

一个从N行、每行P bit的寄存器堆中选一个值的MUX,需要N×P个与门和(N-1)×P个或门。回到刚才的例子,8个条目、每个4 bit,一个MUX就要32个与门和28个或门。而MAC单元有三个输入,所以需要三个MUX。光MUX就要消耗24×P个门,而MAC电路本身(以4位精度为例)只有4×P个门。搬运数据的电路面积是实际计算电路的6倍。整个数据通路大约七分之八的面积花在了寄存器堆的读写上,只有八分之一花在了乘累加本身。

而现实中的寄存器堆远不止8个条目。寄存器堆越大,MUX越贵,比例更加悬殊。

4. 脉动阵列:用面的数据量喂线的通信带宽

tensor core就是为了解决这个问题而被发明的。Nvidia在2017年的Volta架构GPU中首次引入tensor core。它的思路是:与其让每个CUDA core单独做一次乘累加,不如在芯片上铺一块更大的固定功能电路,一次性做一整块矩阵的乘法。但如果电路更大,数据搬运不也跟着膨胀吗?

答案藏在矩阵乘法的数学结构里。

脉动阵列systolic array是tensor core背后更通用的名字。这个概念最早由卡内基梅隆大学的H.T. Kung和MIT的Charles Leiserson在1978年提出,用于加速密集线性代数运算。Google在2015年发布的第一代TPU里使用了128×128的脉动阵列,这是目前已知面积效率最高的矩阵乘法电路实现方式。

Pope用一个2×2的矩阵乘以一个长度为2的向量来演示原理。4个MAC单元排成2×2的网格。输入向量从网格顶部灌入,沿着列往下流,每经过一个MAC单元就和存储在那里的权重做一次乘累加。结果从列底部输出,每一列的输出就是一个点积,也就是矩阵的一列元素与输入向量逐位相乘后求和。

如果脉动阵列是X×Y的规模,计算量按X×Y增长,是平方级别的。但输入和输出数据量只按X增长,是线性的。在芯片设计的语境里,"搬数据"有一个更正式的名字叫"通信"。多出来的Y倍就是计算相对通信的净收益。关键在于矩阵乘法的数学特性:权重矩阵是一个二维的"面",而输入输出是一维的"线"。面的数据量比线多一个维度,所以可以把权重存在计算单元本地,只让输入向量和输出结果走外部通信。

权重矩阵存在脉动阵列内部的寄存器中,但第一次总得从外面装进来。Pope的解法是"菊花链"式加载:每个时钟周期只往顶行灌入一行数据,然后逐周期往下移位。加载整个矩阵需要Y个时钟周期,速度慢,但布线带宽只需要X而不是X×Y。Dwarkesh从中拆出了两个独立的优化维度:通信时间和通信带宽。权重只加载一次,所以可以容忍长时间的加载过程。关键是最小化带宽,因为芯片上每一条数据通路都是实体金属走线,要占物理空间,带宽越大走线越多,消耗的芯片面积就越大。

这个"平方级计算、线性级通信"的模式在芯片设计的所有层级上反复出现。 最底层是数值精度的选择(电路面积随bit宽度二次方增长),中间层是脉动阵列的设计(计算量随阵列面积平方增长,通信量随边长线性增长),再往上是多芯片推理中计算能力与芯片外部存储读写速度的关系。Pope称之为"squared versus linear term"。

脉动阵列多大、寄存器堆多大,是芯片设计中最核心的定尺寸问题。两者互相耦合。更大的寄存器堆意味着更灵活,能支持更多应用场景,但会挤占脉动阵列的面积。一种思路是先定预算:10%面积给数据搬运,90%给脉动阵列。

5. 时钟不能无限快:寄存器也是一种通信代价

前四章讨论的都是"芯片面积怎么分配"。但芯片还有另一个维度的资源需要管理:时间。

一颗芯片上有上千亿晶体管在并行工作。和软件中让线程排队等待的互斥锁不同,芯片用一种简单粗暴的方式同步:每隔大约一纳秒(十亿分之一秒),全局时钟信号会让所有电路同时"暂停"一下,把当前计算结果锁存到寄存器中,然后同步进入下一拍。

为什么不能取消时钟,让每段逻辑算完了就往下传?因为制造差异。假设一次计算需要先分别算出两个中间结果,然后把它们加在一起。算第一个中间结果的电路路径叫F,算第二个的叫G,最后把两者相加的叫H。在不同芯片上,F和G的实际延迟会因为制造工艺的微小差异而不同。如果没有时钟让大家在同一个节拍对齐,H可能在G还没算完的时候就开始取数,拿到的是G上一轮的旧值,计算结果就错了。

芯片中"流水线"的概念和工厂流水线一样:把一个大任务拆成多个小步骤,每一步由不同的电路同时处理不同的数据。如果一段逻辑电路延迟太长,在一个时钟周期内算不完,可以在中间插入一个寄存器把它拆成两半。每半的延迟减半,时钟频率可以翻倍。代价是多一个寄存器的面积。

这里有一个反直觉的陷阱。如果走到极端,每个与门后面都插一个寄存器,时钟频率可以超过5-6 GHz,但寄存器本身的面积大约是与门的8倍。此时绝大部分芯片面积都花在了"同步"而不是"计算"上。 时钟频率再高,每个周期做的有效工作太少,总吞吐量反而下降。Pope做了一个类比:这和推理服务中batch size的权衡一样。batch size是指芯片同时处理多少个用户的请求。batch size小的时候,单个用户的延迟低,但每小时处理的总token数也低。时钟频率和batch size在数学上面对的是同一个问题。

流水线还有一个硬约束:如果一段逻辑存在反馈回路(比如累加器,每个周期把新的数加到运行中的累加和上),在中间插入寄存器会改变计算语义,原本是对所有输入求和,插入寄存器后变成了对第1、3、5……个输入和第2、4、6……个输入分别求和,得到两个独立的累加结果而不是一个。程序要的是一个总和,芯片给出了两个分开的半和,答案就错了。所有芯片都有反馈回路,累加器是最典型的例子,这些回路设定了时钟周期的下限。

TSMC提供给芯片设计者的工艺设计套件PDK,其中的基本单元就是与门、全加器这个级别的原语。这些原语延迟极快,大约10皮秒,也就是一秒钟的一千亿分之一,一个时钟周期内可以串联10到30个。时钟频率由芯片架构师设定,而不是由TSMC决定。每颗芯片上总有一条延迟最长的逻辑链路,叫关键路径,它决定了整颗芯片的时钟上限。同一个工艺节点,比如同样用3纳米制程做出的两颗不同芯片,如果关键路径的优化水平不同,时钟频率就会不同。

6. FPGA:灵活性的代价可以精确计算

到目前为止讨论的都是ASIC,也就是为特定功能定制制造的芯片。GPU、TPU都属于这一类。但还有一种芯片可以在出厂后反复改写逻辑,叫FPGA。对比两者的成本结构,能看清"灵活性"在硬件世界里到底值多少钱。

FPGA和ASIC在概念上使用同样的编程模型:用逻辑门和时钟驱动的寄存器搭电路。任何能在FPGA上实现的东西都能在ASIC上实现,便宜一个数量级,能效也好一个数量级。但第一颗ASIC光tape out这一步,也就是把最终设计文件交给代工厂去制造芯片,成本就要3000万美元。第一块FPGA只要1万美元。高频交易公司用FPGA就是因为这个:他们需要确定性延迟和高并行度,但策略每个月都在变,不可能每次都重新tape out。

FPGA由三种组件构成:单bit寄存器、查找表LUT、以及连接它们的大量MUX。编程FPGA的实质就是配置每一个MUX的选择信号,告诉它从哪个邻近的寄存器或LUT取数据。"Field programmable"中的field指的是"在部署现场"而不是"电场"。

查找表本身也是一个MUX。一个标准的4输入LUT把每种输入组合对应的输出结果逐行列出,形成一张16行的真值表。4个bit的输入共有16种可能的0/1组合,每种组合对应一个输出值,所以任何4输入1输出的逻辑关系都可以用这张表表达。从电路角度看,LUT就是一个16选1的MUX:用4个输入bit作为地址,从16个预存值中选出对应的那一个。

10倍开销的来源可以精确计算。 一个4输入LUT需要大约32个门来实现16选1的MUX。而它能等价替代的最复杂功能,比如一个4路与门,在ASIC上只需要3个与门就能直接实现。32个门做了3个门的工作。开销的本质是:真值表是一种通用但冗余的表示方式,用查找表列举所有输入组合的输出,远不如直接在硅片上放置多晶硅和金属走线搭一个与门来得简洁。

虽然FPGA号称"现场可编程",但灵活性只存在于局部邻域之内。每个LUT和寄存器只能从附近的一组固定候选中选择输入,更远距离的连接由FPGA厂商预先布好,用户无法改变。

7. Cache让CPU跑得快,也让它跑得不确定

32个门,3个门,这些微观层面的开销差异,最终会怎样塑造出GPU、TPU和CPU各自的宏观架构?

Pope从一个出人意料的切入点开始比较:延迟的确定性。

CPU使用缓存cache来弥补一个速度鸿沟:芯片外部的DDR主内存容量大但速度慢,芯片内部的存储速度快但容量小,两者差着两个数量级。缓存大幅提升了平均性能,没有缓存的话几乎所有程序都会慢100倍。但缓存命中与否取决于运行环境:其他程序先前占用了缓存的哪些位置、最近访问过什么数据、缓存内部的替换策略。这种不确定性是CPU延迟抖动的主要来源。

TPU采用了另一种设计哲学,使用一种叫scratchpad的便笺存储器。它与缓存的硬件形态类似,但访问方式完全不同。软件用一类指令读写scratchpad,用另一类指令读写HBM(一种紧贴在芯片旁边的堆叠式高带宽内存,速度介于片上存储和传统DDR之间)。两类指令显式分开,没有硬件自动决定"数据在不在缓存里"这个环节,延迟就是确定的。专注推理加速的AI芯片公司Groq也采用了类似的确定性延迟设计。

Pope强调了一个容易被忽略的点:确定性延迟并不是什么高难度的设计目标,反而比非确定性更简单。 缓存是后来为了追求更高的平均性能而引入的复杂机制。

8. GPU是一堆微型TPU,每一颗都配了自己的"小仓库"

GPU内部是大量几乎完全相同的流式多处理器SM组成的规则网格,中间夹一块所有SM共享的L2缓存。每个SM里都有自己的tensor core负责矩阵乘法,向量单元负责逐个元素的加减乘除等非矩阵运算,以及寄存器堆提供暂存空间。

TPU则由少数几个大型矩阵计算单元MXU组成,中间放一个向量单元。如果把TPU的矩阵单元和向量单元按比例缩小到足够小的尺寸,本质上就是一个SM。用Pope的话说,GPU就是一堆微型TPU。

两种架构各有取舍。TPU的设计允许使用更大的脉动阵列,更好地摊薄寄存器堆的成本。但矩阵单元和向量单元之间的数据搬运必须走一两条长距离总线,带宽有限。GPU把向量单元分散到每个SM里,矩阵单元和向量单元之间通信距离短、路径多(比如16条并行通路),总带宽更高。代价是每个SM里的脉动阵列尺寸小,寄存器堆的摊薄效果差。

只要完全在一个SM内部操作,数据搬运成本极低。一旦需要跨SM通信,开销陡增。

CPU的核心更大,是因为面积去了别的地方。CPU只有大约100个核心×16路向量,总共约1600路并行。最大的面积给了缓存,其次是寄存器堆(真正执行算术运算的ALU算术逻辑单元本身只占很小比例),还有一块专门给了GPU里完全没有对应物的分支预测器branch predictor。程序运行时经常遇到"如果A成立就走这条路,否则走那条路"的分支指令。分支预测器的作用是在CPU的指令处理流水线中提前猜测分支走向。流水线约5纳秒深,意思是一条指令从进入流水线到执行完毕需要走过多个阶段、耗时约5纳秒,期间流水线上已经排着好几条后续指令在同时处理。CPU必须在分支指令实际执行完毕前5个周期就预测结果,以便提前决定后面该执行哪些指令。预测错误时已经执行的指令全部作废。GPU和TPU通过取消分支,让所有线程执行相同指令,彻底省掉了这部分面积开销。

9. 如果给GPU降速1000倍,它会不会开始像大脑?

Pope和Dwarkesh在最后讨论了芯片和大脑的几个对比维度。

一个是连接方式。无论是脉动阵列还是SM,芯片里的计算单元之间的连接都遵循规整的网格结构,没有被使用的连接也按固定模式排列,这叫结构化稀疏。大脑完全不同,神经元可以和任意其他神经元建立连接,哪些连接存在、哪些不存在没有规律可循,是完全非结构化的稀疏。

另一个是内存和计算的物理位置。脉动阵列把权重存储在计算单元本地,这和大脑中突触同时承担存储和计算的设计有相似之处。

第三个维度是时钟频率。大脑的"时钟"比芯片慢几个数量级,但大脑不需要batch processing,只有一个"我"在思考,而GPU在GHz时钟下同时处理上千个batch。如果把GPU降到MHz频率只跑一个batch,在能耗特征上就开始接近大脑的工况了。

不过硅基电路在低频率下并不能获得线性的能效提升。芯片的大部分功耗来自晶体管充放电产生的动态功耗:一个bit从0变到1时给电容充电,从1变到0时把电荷泄放到地。还有一小部分来自绝缘体不够完美造成的漏电流。时钟慢1000倍,切换次数少1000倍,动态功耗降低约1000倍,但能效比,也就是每次运算消耗的能量,并不会改善太多,因为每次切换消耗的能量基本不变。

10. MatX在GPU和TPU之间找第三条路

从一个与门到整颗芯片的架构对比,整条线索可以浓缩成一句话:芯片设计的核心矛盾是计算和通信之间的面积竞争。

从MAC电路内部(16个与门做乘法 vs 16个全加器做加法),到寄存器堆(MUX消耗的面积是MAC的6倍),到脉动阵列(平方级计算 vs 线性级通信),到流水线寄存器(面积换时钟频率),每一个层级上,设计者都在试图让更多的芯片面积花在"做乘法"而不是"搬数据"上。

MatX One芯片的核心设计思路正是沿着这条线索展开的。根据2026年2月公开的信息,MatX One采用了一种叫splittable systolic array的架构,即"可分割脉动阵列"。大脉动阵列在做大矩阵乘法时能更好地摊薄寄存器堆和数据搬运的成本,但遇到小矩阵时利用率会下降。MatX One可以把一个大阵列灵活切分成多个小阵列,试图同时获得大阵列的摊薄优势和小阵列的灵活性。在存储层面,MatX One用SRAM(直接嵌在芯片上的高速存储,速度极快但容量有限)存放模型权重以获得极低延迟,用HBM存放KV cache以支持长上下文。KV cache是大模型推理时为了避免重复计算而保存的中间结果,上下文越长它就越大,SRAM装不下,必须用容量更大的HBM来承接。MatX One将这两种本来互斥的设计路线合并到一颗芯片上。

Pope在播客最后说:"We've talked publicly about something which we call a splittable systolic array."这是他在这期对话中唯一一次提到自己的产品。整堂80分钟的黑板课,从与门画到GPU vs TPU的架构对比,都是在为这一句话铺垫物理直觉:为什么在GPU的小单元和TPU的大单元之间,可能存在第三种平衡点。

核心问答

Q1: 为什么低精度算力的提升是平方级而不是线性的?

乘法电路的面积与两个操作数的bit宽度之积成正比。同精度下把bit宽度减半,面积缩小到四分之一,同样的芯片面积可以塞进4倍的MAC单元。Nvidia在B300上首次让FP4与FP8的标称算力比从2倍提升到3倍,更接近理论的4倍上限。2倍这个历史比值之所以整齐,除了计算面积因素,还因为两个FP4数恰好能打包进一个FP8的存储和总线宽度。

Q2: 脉动阵列到底解决了什么问题?

在CUDA core时代,超过七分之八的电路面积花在寄存器堆的读写MUX上,真正做乘法的逻辑只占不到八分之一。脉动阵列把权重矩阵存在计算单元本地寄存器中反复使用,输入和输出向量通过阵列边缘流入流出。结果是计算量按阵列面积的平方增长,通信量只按边长线性增长,净赚一个维度的优势。这个原理在1978年由H.T. Kung和Charles Leiserson首次提出,至今仍是矩阵乘法电路面积效率最高的已知方案。

Q3: GPU和TPU的架构差异本质上是什么取舍?

GPU是大量微型TPU的集合。每个SM里的脉动阵列小但通信距离短、带宽充足。TPU用少数大型脉动阵列,摊薄寄存器开销更好,但矩阵单元和向量单元之间只能走一两条长距离总线。SM内部操作时GPU的通信效率极高,跨SM就变贵。TPU在大粒度上更高效,但灵活性受限。MatX One的"可分割脉动阵列"试图在两者之间找到第三条路:大阵列可以拆成小阵列,同时兼顾摊薄优势和灵活通信。

来源:至顶AI实验室

0赞

好文章,需要你的鼓励

2026

05/25

22:30

分享

点赞

邮件订阅