芯片的Systolic Array 脈動陣列設計加速矩陣乘運算


什么是脈動陣列

脈動陣列,是現在某些智能加速芯片的一種架構;由一組處理單元 Processor Elements組成;處理單元簡稱是PE,也經常簡稱為Cell;所有的Cell是用Mesh結構互連起來;每個Cell處理一系列的流經自己的數據;之后傳遞給鄰居的Cell,大部分的Cell都是相同的操作。

SIMD和脈動陣列的區別

SIMD是和其相似的架構,但是SIMD如名字表達的那樣,控制指令是唯一的,數據是不同的,並且數據從內存加載到PE;脈動陣列的區別是可能從片上的RAM加載到PE,並且每個PE有自己的控制單元,這樣不僅僅是數據的並行了。

脈動陣列設計優勢點

脈沖陣列用在專用的加速芯片上的優勢是:1. 設計上比較規整,簡單;2. 通信或者傳遞信息的並發性好;3. 平衡了計算和IO,因為一般都是計算等待IO。

脈動陣列分類

一維:適合單一的IO,因此用處不是很大;
二維:一般都是平面矩陣,放了很多的處理單元,但是只允許邊界的單元進行IO;
三維:允許IO經過每個處理單元;

舉例:使用二維脈動陣列計算矩陣乘

使用三個計算單元計算這個矩陣乘的設計

下面是三個脈動陣列:


下面是每個步驟的過程數據:
可以看出,五部步可以計算出三個維度的計算結果。
推而廣之如果是平面矩陣的脈動陣列,其實可以計算兩個二維矩陣的乘積:
脈動陣列的設計:
過程數據是:
對脈動陣列的設計可以有很多種方式。

脈動陣列的優勢

  1. 對VLSI設計比較友好,適合模塊化的設計;速度快,成本低;
  2. 使用本地化的互聯結構;減少了全局廣播等消耗;高維度的流水線;高維度的並行;
  3. 簡單的IO子系統;

脈動陣列的劣勢

  1. 全局同步受限於時延;
  2. 片上RAM的帶寬要求比較大;
  3. 因為缺少互聯的協議子系統,而缺少軟件上的容錯;





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM