什么是脈動陣列
脈動陣列,是現在某些智能加速芯片的一種架構;由一組處理單元 Processor Elements組成;處理單元簡稱是PE,也經常簡稱為Cell;所有的Cell是用Mesh結構互連起來;每個Cell處理一系列的流經自己的數據;之后傳遞給鄰居的Cell,大部分的Cell都是相同的操作。
SIMD和脈動陣列的區別
SIMD是和其相似的架構,但是SIMD如名字表達的那樣,控制指令是唯一的,數據是不同的,並且數據從內存加載到PE;脈動陣列的區別是可能從片上的RAM加載到PE,並且每個PE有自己的控制單元,這樣不僅僅是數據的並行了。
脈動陣列設計優勢點
脈沖陣列用在專用的加速芯片上的優勢是:1. 設計上比較規整,簡單;2. 通信或者傳遞信息的並發性好;3. 平衡了計算和IO,因為一般都是計算等待IO。
脈動陣列分類
一維:適合單一的IO,因此用處不是很大;
二維:一般都是平面矩陣,放了很多的處理單元,但是只允許邊界的單元進行IO;
三維:允許IO經過每個處理單元;
舉例:使用二維脈動陣列計算矩陣乘
使用三個計算單元計算這個矩陣乘的設計
下面是三個脈動陣列:

下面是每個步驟的過程數據:

可以看出,五部步可以計算出三個維度的計算結果。
推而廣之如果是平面矩陣的脈動陣列,其實可以計算兩個二維矩陣的乘積:


脈動陣列的設計:

過程數據是:

對脈動陣列的設計可以有很多種方式。
脈動陣列的優勢
- 對VLSI設計比較友好,適合模塊化的設計;速度快,成本低;
- 使用本地化的互聯結構;減少了全局廣播等消耗;高維度的流水線;高維度的並行;
- 簡單的IO子系統;
脈動陣列的劣勢
- 全局同步受限於時延;
- 片上RAM的帶寬要求比較大;
- 因為缺少互聯的協議子系統,而缺少軟件上的容錯;