1982年Kung教授提出 systolic 架构,用“数据如血液流动”的理念打破冯·诺依曼瓶颈,成为AI芯片与高性能计算的底层逻辑。
你以为AI芯片拼的是制程?错!拼的是架构!
你是不是也觉得现在AI这么火,芯片性能越来越强,靠的就是台积电3nm、2nm制程?醒醒吧!真正决定AI芯片天花板的,不是工艺,而是架构!
早在1982年,卡内基梅隆大学的Kung教授就预言了一种叫“systolic architecture”(脉动阵列架构)的设计思想——这玩意儿现在成了谷歌TPU、英伟达Tensor Core、华为昇腾芯片的核心!
今天这篇深度长文,带你穿越回40年前,看一个天才如何用“数据像血液一样流动”的比喻,彻底颠覆高性能计算的底层逻辑!
作者是谁?不是网红,但他是AI芯片祖师爷
H. T. Kung(孔祥重)是谁?他是卡内基梅隆大学计算机系的传奇教授,1974年在CMU拿到博士学位,随后留校任教,是VLSI(超大规模集成电路)系统设计的先驱人物。
80年代初,他就意识到:单纯堆砌更快的晶体管已经快到头了,真正的问题出在“冯·诺依曼瓶颈”——即CPU和内存之间数据搬运太慢,导致算力被I/O拖垮!于是他提出了systolic架构,不是靠单个处理单元飙速度,而是靠大量简单处理单元协同工作,让数据像血液一样在“芯片心脏”中循环流动。
如今,TPU的矩阵乘加单元、AI加速器里的SIMD阵列,本质上都是systolic思想的延伸。
冯·诺依曼瓶颈:AI芯片的“阿喀琉斯之踵”
你以为AI芯片卡顿是因为算得慢?错!最大的问题是你“喂”不进数据!
举个例子:假设你有一个每秒能跑3000万次运算的处理器,但内存带宽只有每秒1000万字节,而每次运算至少需要2字节输入——那你最多只能跑500万次有效运算!剩下的2500万次算力全在干等!这就是典型的I/O瓶颈,也叫冯·诺依曼瓶颈。
Kung在文中一针见血:很多专用系统设计完才发现,I/O接口根本跟不上计算速度,结果花大钱做的高性能芯片成了“高级花瓶”!
脉动架构核心理念:让数据流起来,别让算力闲着
那怎么破?Kung的答案是:别让数据一进一出就扔,要让它“流经”多个处理单元,一路上被反复利用!
想象一条汽车装配线:一辆车从头到尾,经过不同工位,每个工人只干一件事,但很多车同时在生产。
systolic架构就是“数据装配线”——内存像心脏一样,把数据“泵”进一个由简单处理单元(PE)组成的阵列,每个PE对数据做一点小计算,然后传给下一个PE。数据像血液一样循环,每经过一个PE就被“加工”一次,最终输出结果时,每个输入数据已经被用了几十次、上百次!这样,你不需要超大带宽,也能榨干每一份算力!
systolic 架构三大黄金法则:复用、并发、规整
Kung总结出systolic架构的三大核心优势:
第一,多次复用每个输入数据。一次从内存读进来的数据,在阵列里流一圈,参与几十次运算,极大降低I/O压力。
第二,极致并发。不是靠单个处理器快,而是靠成百上千个简单PE同时工作——这是摩尔定律放缓后唯一的提速路径。
第三,结构高度规整。所有PE长得一模一样,连线简单规则,VLSI设计时极易布线、极易扩展,成本低到飞起!
这三点,直接命中AI计算的核心需求:大量重复的矩阵乘加、规则的数据流向、对带宽极度敏感。
卷积计算:systolic 架构的完美试验场
文章用了整整一节来拆解“卷积”这个经典问题。
为什么?因为卷积是图像处理、语音识别、神经网络的核心操作!
比如你有一个长度为k的滤波器w1~wk,要对输入序列x1~xn做滑动点积,输出y1~yn-k+1。传统做法是每次取k个x,乘k个w,加起来——但每次都要重新读x,IO爆炸!systolic方案呢?把w预加载到PE里,x像水流一样从左往右流经每个PE,每到一个PE就和对应的w相乘,结果累加后继续右传。一个x进来,一路被k个PE用了k次,内存只读一次!
Kung展示了8种不同systolic卷积设计:有的x广播给所有PE,有的x和w反向流动,有的x和y同向但速度不同……每种都针对不同硬件约束优化,但核心思想不变:让数据在阵列里多跑几圈,别急着回去!
从“半脉动”到“纯脉动”:干掉全局布线才是王道
早期systolic设计依赖“广播”(broadcast)或“汇聚”(fan-in)——比如把x一次性发给所有PE。听起来高效,但问题来了:PE越多,广播总线越长,延迟越高,频率上不去!Kung称之为“半脉动”(semi-systolic)。
真正的突破是“纯脉动”(pure-systolic):完全不用全局线,所有通信只发生在相邻PE之间!比如Design R1让x从左往右流,w从右往左流,中间相遇就相乘累加;Design R2让x和w同向但x跑得更快,确保每个x都能和每个w碰上。
这样,阵列可以无限扩展,从10个PE到10000个PE,结构不变,布线不乱,这才是VLSI的终极梦想!
systolic 阵列不只是1D:2D结构才是AI的未来
你以为systolic只是线性一排PE?天真tooyoungtoosimple!
Kung早就画出了二维阵列:矩形(type R)、六边形(type H)、三角形(type T)……二维的优势在哪?内存带宽利用率翻倍!在一维阵列里,数据只能从左右两端进出;在二维阵列里,四面八方都能进数据,内存带宽被榨得一滴不剩。
比如做矩阵乘法:A矩阵从左边流进,B矩阵从上边流进,在每个PE交叉点相乘,结果往右下角累加输出——这就是现代AI芯片TPU的Matrix Multiply Unit(MXU)原型!更狠的是,二维阵列还能做QR分解、线性方程求解、最小二乘拟合……这哪是专用芯片?简直是科学计算超级引擎!
从理论到现实:Google TPU就是systolic的亲儿子
别以为systolic只是纸上谈兵!2017年Google发布的TPU v1,其核心就是一个256×256的systolic阵列,专门干INT8矩阵乘加。它不用HBM高带宽内存,就靠脉动架构把数据在阵列里复用256次,硬生生把能效比(TOPS/W)干到GPU的10倍以上!
后来的TPU v2/v3/v4,虽然加了HBM,但systolic思想没变:数据进阵列后,尽量在里面多跑几圈,减少访存。
英伟达的Tensor Core、华为的达芬奇架构、寒武纪的MLU,本质上都是systolic变种。
Kung在1982年就预言:“systolic架构将成为专用系统的通用方法论”——40年后,全世界AI芯片都在给他交版权费!
systolic 不只是算数:连数据库、图算法都能加速
你以为systolic只能做矩阵运算?Kung在文末甩出一张恐怖的应用清单:信号处理(FIR滤波、FFT)、图像处理(二维卷积、中值滤波)、矩阵运算(乘法、三角化、QR分解)、非数值计算(字符串匹配、动态规划、排序、图算法、关系数据库操作)……甚至堆栈、队列、优先级队列都能用systolic实现!
原理很简单:只要计算是“规则重复”的,就能映射到systolic阵列。比如字符串匹配:把模式串w预加载到PE,文本串x流过去,每个PE做字符比较,结果累加——和卷积一模一样!这说明systolic不是某个领域的特例,而是一种通用的计算范式!
架构设计哲学:简单、模块化、可扩展才是真高级
Kung反复强调:专用系统必须“简单、规整、模块化”。
为什么?因为专用芯片产量小,设计成本必须压到最低!如果你每个PE都搞复杂控制逻辑,布线乱成蜘蛛网,那芯片良率低、频率上不去、面积还大——根本没法商业化。
systolic的PE只做两件事:乘+加(或比较+布尔与),控制逻辑靠全局时钟同步,数据流靠相邻传递。这种极简设计,让芯片面积小、功耗低、频率高,还能根据需求随意扩展PE数量——100个PE不够?上1000个!成本和性能线性增长,这才是真正的“可扩展性”!
systolic 的未来:可编程PE+自动映射=通用AI加速器
文章末尾,Kung提出一个终极愿景:能不能造出“可编程systolic building block”?每个PE内置小内存,能动态加载不同权重,通过“systolic控制路径”切换功能——同一块芯片,既能做卷积,又能做矩阵乘,还能跑图算法!
这不就是今天的AI加速器吗?比如Google TPU的systolic阵列虽然专用,但通过软件调度,能支持CNN、Transformer、推荐系统等各种模型。
更进一步,如果能自动把高级算法(比如Python代码)映射到systolic阵列——那才是真正的人工智能硬件民主化!Kung在1982年就看到了这个方向,只是受限于当时EDA工具和编译技术,直到40年后的今天,MLIR、TVM等编译栈才开始实现这个梦想。
总结:systolic 架构为何是AI时代的“水电煤”
回到开头的问题:AI芯片拼什么?拼的不是晶体管密度,而是如何高效搬运和复用数据。
systolic架构用“数据流动+计算复用”的思想,完美解决了冯·诺依曼瓶颈,让算力不再被内存带宽锁死。它结构简单、成本低廉、扩展性极强,天生适合VLSI实现。
从1982年的理论,到2017年TPU的爆发,再到今天所有AI芯片的标配,systolic架构证明了:伟大的设计,经得起时间的考验。