計算機架構與加速器

脈動陣列(Systolic array)

脈動陣列是由許多相同的微小處理單元(PE)排成的網格,讓資料有節奏地泵送穿過自己,像血液流過心臟——名字來自「systole(心臟收縮)」,即一次心跳。每個 PE 做一次乘加,然後在下一個時脈邊緣把運算元傳給鄰居。資料橫越陣列流動,部分和在行進間累加,一個原本要數千次獨立記憶體往返的矩陣乘法,化作一道平順的運算浪潮一次完成。

妙處在於資料重用:一個值只從陣列邊緣載入一次,便波及數百個 PE,每個都重用它,於是你存取記憶體的次數只有普通處理器的一小部分。這正是它們完美勝任深度學習核心——矩陣乘法的原因。Google 的張量處理器(TPU)就是著名的 256×256 脈動陣列——65,536 個乘加單元齊步跳動,這也是為何它在神經網路運算上輾壓 CPU,卻耗電更少。

Google TPU 的脈動陣列:65,536 個乘加單元,由串流資料餵入。

脈動陣列擅長密集、規則的矩陣運算,卻缺乏彈性——它把一種運算做得極好。以通用性換取效率的這項取捨,正是領域專用架構的精髓。

又稱
脈動陣列PE arraymatrix engine