聊AI芯片,很多人上来就一堆高大上的词,什么NPU、TPU、DPU,听得人云里雾里。要我说,先把这些唬人的缩写放一边,咱们得先扒开皮,看看里头到底是什么血肉。这东西,没那么玄乎,但水深,是真深。
一切的起点,都源于一个朴素到有点粗暴的思想:并行计算。
你琢磨一下,神经网络那玩意儿,一层一层,密密麻麻全是神经元,干的是什么事?无非就是输入数据乘以一个权重,再加上一个偏置,再过个激活函数。这事儿本身不复杂,小学数学水平。但它的恐怖之处在于,这种简单的计算,要重复进行亿万次。一个CPU,哪怕是顶级的酷睿i9,它就像个博学的大学教授,能文能武,干啥都行,但你让他去挨家挨户发传单,他就得累死。因为他一次只能发一份,顶多两份。
AI芯片,它反其道而行之。它不是教授,它是一整个体育场里坐满的小学生,每个学生脑子都特简单,只会算“a乘以b再加c”。但你一声令下,几万个小学生同时开算,这效率,教授拍马也赶不上。这就是AI芯片设计的灵魂——用海量的、简单的计算单元,去淹没庞大的、重复的计算任务。所以,别再把AI芯片想成什么“有智慧”的芯片,它就是个傻快傻快的超级计算器,一个只会做一件事,但能把这件事做到极致的偏执狂。
那么,这个“小学生”具体长啥样?在芯片的微观世界里,它的名字叫乘法累加单元(MAC)。这个词,你要是想搞AI芯片,就得刻在脑子里。一个AI芯片的算力有多强,很大程度上就看它塞了多少个MAC,以及这些MAC能跑多快。所有的矩阵运算、卷积操作,最终都会被拆解成无数个乘法和加法,扔给这些MAC去啃。所以说,MAC是AI芯片的砖石,是肌肉纤维,没有它,一切都是空中楼阁。你看那些芯片发布会,动不动就几百TOPS的算力,本质上就是在秀肌肉,告诉你“我家体育场里的小学生又多又壮”。
光有肌肉还不行,你得让他吃饱饭。问题来了,饭在哪?在内存里。这就引出了AI芯片设计里最让人头疼、最核心的矛盾——内存墙(Memory Wall)。
想象一个场景:一个世界顶级的大厨(计算单元MAC),厨艺惊人,一秒钟能切好一百盘菜。但他被困在一个巨大的厨房里,而所有的食材(数据)都存放在几公里外的一个大仓库(DRAM内存)里。每次要用葱,得派人跑几公里去拿;要用蒜,又得跑几公里。结果呢?大厨99%的时间都在叉着腰等食材,真正挥刀切菜的时间少得可怜。
这就是内存墙。计算的速度早就甩了数据搬运速度好几条街。你的MAC再多再快,数据喂不进来,就只能原地空转,我们管这叫计算密度低。芯片里大量的能量,不是消耗在计算上,而是消耗在把数据从DRAM搬到片上缓存(SRAM),再从SRAM喂给MAC这个又臭又长的路上了。这简直是芯片设计里最大的笑话,也是最大的悲哀。
所以,最近十年AI芯片架构的演进,很大程度上,就是一部与内存墙斗智斗勇的血泪史。
怎么斗?各路神仙各显神通。
一条路是,既然去仓库拿菜太慢,那我就在厨房边上多建几个小冰箱、中冰箱、大冰箱(L1, L2, L3 Cache)。这就是传统的缓存策略。但AI计算的数据量太大了,光靠冰箱也不够用。
于是有了更激进的,比如存内计算(In-Memory Computing)。这想法简直天才——别让大厨等菜了,直接让大厨住进仓库里!把计算单元和存储单元融合在一起,数据在哪里,计算就在哪里发生。彻底消灭数据搬运。这听起来是终极解决方案,对吧?但现实骨感得很。存内计算对存储介质的要求极高,计算的精度、稳定性和功耗都还在摸索阶段,离大规模商业化还有一段不短的路。
更现实、更主流的打法,是搞DSA(领域专用架构)。既然我就是为了跑神经网络设计的,那我就不装了,摊牌了,我这颗芯片就是个“卷积加速器”或者“Transformer加速器”。我把芯片内部的结构、计算单元的排布、片上缓存的大小和连接方式,全都按照卷积或者注意力机制这种特定算法的数据流(Dataflow)来“焊死”。
数据流,这又是个核心概念。它决定了数据在芯片内部是如何流动、如何被重复利用的。一个好的Dataflow设计,能让一块数据在被踢出片上缓存之前,被计算单元“榨干”所有价值。比如著名的权重固定(Weight Stationary)流,就是让权重数据待在原地别动,让输入数据流过去跟它计算。这样就最大程度减少了权重数据的搬运。各种稀奇古怪的Dataflow,是各家AI芯片公司藏在最深处的武功秘籍,是真正的护城河。
当然,光有硬件设计还只是个空壳子。你还得有个好编译器。编译器就像个翻译官兼总导演,它负责把算法工程师写的PyTorch、TensorFlow模型,翻译成芯片能听懂的指令,并且还要编排出最优的数据流路径,告诉芯片“你先算这个,再算那个,数据从A搬到B,结果存在C”。一个再牛逼的芯片架构,配上一个烂编译器,就像给了关公一把塑料刀,屁用没有。很多AI芯片公司,硬件团队和编译器团队天天吵架,就是因为这个。
最后,再聊点实在的。如今芯片越做越大,一张晶圆上切不了几颗,成本高得吓人,良率还低。怎么办?学学乐高。Chiplet技术应运而生。我不一次性造一个巨大无比的“死星”,我先造一堆标准化的“战斗机”小模块,再用先进的封装技术把它们拼起来。计算模块、存储模块、接口模块,各司其职,灵活组合,成本下来了,弹性上去了。这绝对是未来几年大算力芯片的主流方向。
所以你看,AI芯片设计,它不是一个单点突破,它是一个系统工程。从最底层的稀疏性(Sparsity)处理(跳过那些没用的零计算),到中间层的Dataflow调度,再到顶层的编译器优化,环环相扣。它充满了妥协和权衡(trade-off),在性能、功耗、面积(PPA)这个永恒的三角中寻找那个微妙的平衡点。
这活儿,没有银弹。有的只是无数工程师对着屏幕,在代码和电路图的海洋里,通宵达旦,一行行、一根根地抠出来的细节。它枯燥,但当你看到自己设计的“铁疙瘩”真的把一个复杂的AI模型跑起来,那种成就感,足以点亮整个夜空。