第一章:AI芯片核心计算单元——MAC(乘加运算)单元详解

大家好,我是你们的老朋友。今天咱们聊聊AI芯片里最基础、也最核心的东西——MAC单元。

说实话,我刚开始接触AI芯片时,觉得这东西不就是个乘法器加加法器吗?有什么好讲的?直到我在一个项目里,因为MAC单元的数据流没设计好,导致整个芯片的功耗直接飙到天花板……嗯,从那以后,我再也不敢小看这个“小东西”了。

1.1 什么是MAC单元?

MAC,全称Multiply-Accumulate,乘加运算。说白了,就是先做一次乘法,再把结果累加起来。

公式很简单:y = a × b + c

但在AI芯片里,这个操作会被反复执行几亿次。你想想看,一个卷积层里,每个输出像素都要做几百次乘加。整个网络跑下来,MAC操作的数量级是Giga(十亿)级别的。

核心观点:AI芯片的性能,很大程度上取决于MAC单元的数量和效率。

1.2 MAC单元的硬件实现

一个典型的MAC单元包含三个部分:

  • 乘法器:负责a×b
  • 加法器:负责加上之前的累加值
  • 累加寄存器:保存中间结果

我在项目中遇到过一个问题:乘法器和加法器的位宽不匹配。乘法器输出32位,加法器只接受16位,结果每次都要做截断,精度损失惨重。后来我学乖了,设计时一定先对齐位宽。

1.3 数据流类型:三种主流模式

数据流,说白了就是数据怎么在MAC阵列里“流动”。不同的流动方式,决定了芯片的功耗、面积和性能。我把它分成三种:

1.3.1 权重固定(Weight Stationary)

权重数据待在MAC单元里不动,输入数据流过来,输出结果流出去。

  • 优点:权重复用率高,适合权重变化少的场景
  • 缺点:输入数据需要频繁广播,带宽压力大
  • 我个人的习惯:在做卷积层加速时,优先用这种模式

1.3.2 数据固定(Input Stationary)

输入数据待在MAC单元里,权重数据流过来。

  • 优点:输入数据复用率高,适合输入数据量大的场景
  • 缺点:权重需要频繁更新,对存储带宽要求高
  • 避坑指南:我曾经在一个项目里用了数据固定,结果权重更新太频繁,导致DDR带宽被占满,整个系统卡死……后来改成了权重固定才解决

1.3.3 输出固定(Output Stationary)

输出结果待在MAC单元里,输入和权重都流过来。

  • 优点:减少输出数据的搬移,适合输出通道多的场景
  • 缺点:控制逻辑复杂,面积大
  • 我的建议:新手别轻易尝试,控制逻辑写起来很痛苦

1.4 脉动阵列架构原理

脉动阵列,这个名字听起来很玄乎。其实说白了,就是让数据像心跳一样,有节奏地在MAC阵列里“流动”。

每个MAC单元只和相邻的单元通信。数据从一端流入,经过每个MAC单元时做一次乘加,然后传给下一个。整个过程像一条流水线。

小技巧:脉动阵列的时钟频率可以做得非常高,因为每个MAC单元之间的连线很短。我在一个28nm的项目里,把脉动阵列跑到了1.2GHz,比普通阵列高了30%。

1.4.1 为什么叫“脉动”?

你想象一下心脏跳动:血液从心脏泵出,流到全身,再流回来。脉动阵列也是类似的:数据从一端流入,经过每个MAC单元,最后从另一端流出。整个过程是同步的、有节奏的。

1.4.2 脉动阵列的优缺点

优点 缺点
数据复用率高,减少访存 控制逻辑复杂
时钟频率高 面积开销大
功耗低(因为局部通信) 灵活性差,不适合不规则计算

1.5 知识体系结构图

下面我用一张SVG图,把本章的核心逻辑串起来:

AI芯片核心计算单元知识体系 MAC单元 硬件实现 数据流类型 脉动阵列 乘法器 加法器 累加寄存器 权重固定 数据固定 输出固定 数据有节奏流动 局部通信、高频 核心:MAC单元 × 数据流 × 架构 = AI芯片性能

1.6 实战中的选择建议

说了这么多理论,到底怎么选?我给大家一个简单的判断标准:

  1. 看你的模型:如果权重变化少(比如推理场景),选权重固定
  2. 看你的带宽:如果DDR带宽有限,选数据固定,减少权重搬运
  3. 看你的频率目标:如果想跑高频,脉动阵列是首选

注意:不要盲目追求“高大上”的架构。我曾经在一个小项目里强行上脉动阵列,结果控制逻辑写了一个月,最后性能还不如简单的权重固定阵列。合适才是最好的。

1.7 本章小结

MAC单元是AI芯片的“心脏”。理解它的硬件结构、数据流类型和脉动阵列原理,是设计高性能AI芯片的第一步。

我个人觉得,初学者最容易犯的错误是:只关注MAC单元的数量,忽略了数据流的设计。你想想看,就算你有1000个MAC单元,如果数据流设计不合理,大部分时间都在空转,那性能能好吗?

好了,这一章就到这里。下一章我们会深入MAC单元的微架构设计,包括流水线、并行度和面积优化。到时候见。


专注资料整理