找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3845

积分

0

好友

505

主题
发表于 2 小时前 | 查看: 4| 回复: 0

—— 从一个逻辑门到整颗 GPU,算力狂飙的本质是计算与通信的面积取舍

如果你关注 AI 芯片,一定听过这些高频词:FP8/FP4 低精度算力、Tensor Core、脉动阵列、HBM…… 但很少有人把这件事说透:今天 AI 芯片的性能瓶颈,早就不是“算得不够快”,而是“数据搬不动”。

2026 年 5 月,前 Google TPU 核心架构师、AI 芯片创业公司 MatX CEO Reiner Pope,在播客里用一整堂 80 分钟的黑板课,从最基础的逻辑门开始,一层层拆解了 AI 芯片的设计本质:在芯片的每一个层级上,搬运数据的成本,都远远超过计算本身。所有架构创新,本质都是在压低“通信 / 计算”的面积比。

从两个二进制数相乘,到 GPU 与 TPU 的架构分野,全程没有晦涩公式,全是物理规律层面的底层逻辑。读完你会明白,为什么 AI 芯片会长成今天这个样子,为什么低精度、脉动阵列、HBM 会成为行业共识。

集成电路芯片显微镜下俯视图,展示黄色矩形区块、灰色网格状缓存阵列、金属布线和方形焊盘

一颗乘法器的真实成本:16 个门算乘法,16 个门做加法

AI 芯片存在的唯一核心使命,就是做矩阵乘法。大模型里 90% 以上的运算,都是把两组数字两两相乘再求和。拆到最微观的电路层面,这个操作叫乘累加(MAC)—— 两个数相乘,结果加到累加器里,循环往复。

芯片里的数字全是二进制,只有 0 和 1。做乘法的逻辑,和小学竖式乘法一模一样,只是从十进制换成了二进制:

第一步,生成“部分积”:两个二进制位相乘,只有“1×1=1”,其余全是 0。这个逻辑刚好对应电路里的与门。一个 4 位 ×4 位的乘法,需要 4×4=16 个与门,生成 16 个中间结果。

与门、或门、非门的电路符号示意图

第二步,错位相加:把所有中间结果按位对齐加起来,靠的是全加器。它能把三个 1 位数压缩成两个数(一个本位、一个进位),也叫“3 到 2 压缩器”。同样是 4 位 ×4 位的乘法,刚好需要 16 个全加器,才能把所有中间结果合并成最终答案。

这种逐层压缩的乘法电路叫 Dadda 乘法器,是当前芯片里面积效率最高的标准实现。

精度减半,面积缩到四分之一

这里藏着一个关键的平方定律:乘法电路的面积,和两个操作数的位宽之积成正比。 简单说,把计算精度从 8 位降到 4 位,位宽减半,单个乘法器的面积会缩小到原来的 1/4。同样的芯片面积,就能塞进 4 倍的计算单元,算力理论上翻 4 倍。

这就是低精度算力爆发的最底层物理原因。但现实里,英伟达 B200 的 FP4 算力只有 FP8 的 2 倍,到 B300 才提升到 3 倍,为什么达不到理论的 4 倍? 两个原因:

  1. 浮点数不只有数值,还要存指数位,处理指数的额外电路吃掉了一部分面积优势;
  2. 存储和总线宽度天然对齐 —— 两个 4 位数刚好能塞进一个 8 位的存储空间,2 倍是计算和搬运都能整除的整数,行业沿用了很多年。

B300 把比例拉到 3 倍,正是更接近物理极限的优化结果。另外还有一个细节:乘法用低精度没问题,但累加器必须用更高精度 —— 乘法只算一次,误差不会叠加;累加要加成千上万次,精度不够误差会迅速失控。

反常识真相:搬数据的电路,比计算电路贵 6 倍

乘法器本身的账算完了,但真实芯片里,MAC 单元根本不是面积主力。

在 Tensor Core 出现之前,GPU 的最小计算单元叫 CUDA Core。它的结构很简单:一个寄存器堆(超高速暂存仓库)+ 一个 MAC 计算单元。每个时钟周期,从仓库里挑 3 个数送到 MAC,算完再写回去。

“挑数”这个动作,写代码只需要一行,但在电路里要靠多路选择器(MUX)实现。它的逻辑是:给每个存储条目分配一个“选中信号”,被选中的原样通过,没选中的全部变成 0,最后合并输出。 一个从 8 行、每行 4bit 的寄存器里选一个数的 MUX,需要 32 个与门 + 28 个或门。而一个 4 位 MAC 单元,本身只需要 16 个门。MAC 有三个输入,就要配三个 MUX——光挑数据的电路面积,就是计算电路的 6 倍。

算下来,整个数据通路里,七分之八的面积花在了寄存器的读写上,只有七分之一真正在做乘法。 这就像一个工厂,加工机床只占 1/7 的车间面积,剩下 6/7 全是货架和分拣传送带。产能瓶颈根本不是机床不够,是货搬不过来。 而且现实中的寄存器堆远不止 8 个条目,寄存器越大,MUX 越贵,这个比例还会更悬殊。

脉动阵列:AI 算力革命的核心密码

2017 年英伟达在 Volta 架构里推出的 Tensor Core,本质就是为解决这个问题而生的。它背后的通用结构,叫脉动阵列—— 这个 1978 年就被提出的概念,至今仍是矩阵乘法面积效率最高的已知方案。

它的思路非常巧妙:既然单个计算单元配仓库太浪费,那不如铺一块超大的计算网格,把权重数据直接存在每个计算单元本地,反复复用。 打个比方:

  • 之前的 CUDA Core 是每个工位自带一个小仓库,每次加工都要从自己仓库搬货,仓库占了大部分空间;
  • 脉动阵列是一整个大车间,原材料(权重)提前分发到每个工位旁边放好,加工件(输入数据)只从车间入口顺着流水线依次流过,每个工位就地取料加工,成品从出口流出去。

这里藏着一个维度级的优势: 如果脉动阵列是 X×Y 的规模,计算量按 X×Y 平方级增长,但输入输出的数据量只按 X 线性增长。 多出来的 Y 倍,就是计算相对通信的净收益。 权重矩阵是二维的“面”,输入输出是一维的“线”,用面的数据量喂线的通信带宽,自然效率暴涨。谷歌第一代 TPU 就用了 128×128 的脉动阵列,一举把计算密度拉上了新台阶。

当然,权重第一次还是要从外面装进来。工程师用了“菊花链”加载方式:每个周期只往顶行灌一行数据,逐周期往下移。加载整个矩阵需要 Y 个周期,速度慢,但布线带宽只需要 X 而不是 X×Y。 权重只加载一次,慢一点没关系;但带宽省下来,就是实打实省了芯片面积。这是芯片设计里非常典型的“用时间换空间”。

时钟不是越快越好:“同步”也是巨大的成本

聊完了面积,再聊芯片的另一个维度:时间。

芯片里上千亿晶体管并行工作,靠的是全局时钟同步 —— 大约每 1 纳秒响一次“节拍”,所有电路同时把结果锁存到寄存器,再同步进入下一拍。 为什么不能取消时钟,算完就往下传?因为制造误差。同一条逻辑路径,在不同芯片上的延迟有细微差异,没有时钟对齐的话,后面的电路可能拿到上一轮的旧数据,结果直接算错。

如果一段逻辑延迟太长,一个周期算不完,可以在中间插寄存器拆成两段,每半段延迟减半,时钟频率就能翻倍。这就是流水线,和工厂流水线的逻辑一模一样。 但代价是:多一个寄存器,就多占一份面积。 如果走到极端,每个逻辑门后面都插寄存器,时钟频率能冲到 5-6GHz,但寄存器本身的面积大约是与门的 8 倍 —— 到那时绝大部分芯片面积都花在了“同步”上,每个周期做的有效工作太少,总吞吐量反而会下降。

这就像工厂流水线拆得太细,每个工位只拧一颗螺丝,节拍是快了,但车间里全是周转箱和缓冲工位,真正放生产设备的地方没剩下多少。 而且还有硬约束:像累加器这种有反馈回路的逻辑,中间不能插寄存器 —— 插了就会变成两个独立的半和,而不是一个总和。这些反馈回路,设定了时钟周期的物理下限。

关于 AI 芯片的更多架构探讨,你可以在 云栈社区 和同行们继续深入交流。

灵活性的价格:FPGA 为什么比 ASIC 慢 10 倍

我们常说的 GPU、TPU 都属于 ASIC—— 专用定制芯片,出厂后功能就固定了。还有一种芯片叫 FPGA,可以出厂后反复改写逻辑,高频交易公司就特别爱用。

两者的差距有多大?同样的功能,ASIC 比 FPGA 便宜一个数量级,能效也好一个数量级。但第一颗 ASIC 光流片(把设计交给工厂生产)就要 3000 万美元,第一块 FPGA 只要 1 万美元。策略月月变的高频交易,不可能每次改算法都重新流片。

为什么 FPGA 效率差这么多?答案还是在“通用带来的冗余”上。 FPGA 的核心是查找表(LUT),本质就是一个大 MUX。一个 4 输入的 LUT,能实现任何 4 输入 1 输出的逻辑,但要用大约 32 个门来搭建;而同样的功能,在 ASIC 里直接用 3 个与门就能实现。 32 个门做 3 个门的工作,这就是 10 倍开销的来源。通用的代价,就是用大量冗余的电路,去覆盖所有可能的逻辑组合。

CPU、GPU、TPU:为什么它们长得完全不一样?

从“计算 vs 通信”的视角再看三类芯片,它们的架构差异就非常好理解了,本质是不同的取舍方向。

CPU:通用全能的“大超市”

CPU 核心数量很少,主流服务器 CPU 也就百十来个核心。绝大部分芯片面积给了缓存,其次是寄存器堆,还有一块 GPU 完全没有的部件 —— 分支预测器。 缓存是为了弥补主内存和片上存储的速度差,大幅提升平均性能,但也带来了延迟不确定的问题。分支预测器是为了处理程序里的“如果… 就…”逻辑,提前预判指令走向。 就像大型综合超市,货架、通道、收银台调度系统占了绝大多数面积,真正结账的窗口只有几个。什么都能卖,但单品类的结账效率很低。

GPU:一堆微型 TPU 组成的“便利店集群”

GPU 内部是大量几乎完全相同的 SM(流式多处理器),排成规则的网格。每个 SM 里有自己的 Tensor Core、向量单元和寄存器堆。 如果把 TPU 的大计算单元按比例缩小,本质就是一个 SM。所以有个很精准的说法:GPU 就是一堆微型 TPU。 它的优势是:每个 SM 内部通信距离极短,带宽很高。一旦跨 SM 通信,开销就会陡增。 就像一片连锁便利店,每个店都有自己的小仓库,店内取货非常快;但要跨店调货,就要走很远的路,成本很高。

TPU:极致效率的“巨型加工厂”

TPU 只有少数几个超大的矩阵计算单元,中间放一个向量单元。 大阵列的好处是能更好地摊薄寄存器和数据搬运的成本,大批量矩阵乘法效率极高。但代价是:矩阵单元和向量单元之间只能靠一两条长距离总线通信,带宽有限,灵活性差。 就像一个巨型加工厂,车间里全是生产线,大批量生产效率拉满;但要换产品、改工艺,就非常麻烦。

第三条路:在 GPU 和 TPU 之间找平衡

既然大阵列效率高但不灵活,小阵列灵活但摊薄成本差,那能不能两者兼得? MatX 给出的答案是可分割脉动阵列:一个大阵列可以灵活拆分成多个小阵列。做大矩阵乘法时用整块,享受大阵列的摊薄优势;做小矩阵时拆成小块,保证利用率。

在存储上也做了融合:用速度极快的片上 SRAM 存模型权重,获得极低延迟;用容量更大的 HBM 存 KV 缓存,支持长上下文。把两种原本互斥的设计路线,合并到了一颗芯片上。

这其实也是整个行业的方向:摩尔定律靠缩小晶体管的路越走越窄,架构创新的权重越来越高。所有创新最终都指向同一个目标 —— 让更多的硅片面积,真正花在“计算”上,而不是“搬运”上。

最后:芯片和大脑的殊途同归

课的最后,Pope 聊了一个很有意思的对比:芯片和大脑。

  • 连接方式:芯片是规整的网格结构,结构化稀疏;大脑是任意连接,完全非结构化稀疏。
  • 存储与计算:脉动阵列把权重存在计算单元本地,和大脑里突触同时负责存储 + 计算的模式有相似之处。
  • 时钟频率:大脑的“时钟”比芯片慢几个数量级,但大脑不需要批量处理,只有一个“意识”在运行;芯片靠 GHz 的高速时钟,同时处理上千个批量任务。

如果把 GPU 降到 MHz 频率,只跑一个任务,能耗特征就会开始接近大脑。但硅基电路低频下并不会获得线性的能效提升 —— 大部分功耗来自晶体管的充放电,跑得慢只是翻转次数少了,每次翻转的能耗没变。

不过有一点是共通的: 无论是碳基的大脑,还是硅基的芯片,计算本身从来都不难。真正难的,永远是把数据精准、高效地送到该去的地方。

摩尔定律走了六十年,我们把晶体管做到了原子级尺度,却最终发现:芯片性能的战争,早已不是“能不能算得更快”,而是“数据能不能搬得更快”。 这是一场计算与通信的面积竞争,而这场战争,才刚刚开始。 深入学习 AI 芯片架构设计,也可以访问专题板块:智能 & 数据 & 云 ,那里有更多关于算力、架构、模型训练的讨论。




上一篇:智能体到底怎么定义?从一条公理到五功能最小完备架构
下一篇:英伟达发债250亿的逻辑拆解:苹果式资本运作能否撑住AI算力估值?
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-6-17 02:37 , Processed in 0.768387 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表