芯片的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經過每個處理單元;
舉例:使用二維脈動陣列計算矩陣乘
使用三個計算單元計算這個矩陣乘的設計
下面是三個脈動陣列:
下面是每個步驟的過程數據:可以看出,五部步可以計算出三個維度的計算結果。推而廣之如果是平面矩陣的脈動陣列,其實可以計算兩個二維矩陣的乘積:*脈動陣列的設計:過程數據是:對脈動陣列的設計可以有很多種方式。
脈動陣列的優勢
對VLSI設計比較友好,適合模塊化的設計;速度快,成本低;使用本地化的互聯結構;減少了全局廣播等消耗;高維度的流水線;高維度的并行;簡單的IO子系統;
脈動陣列的劣勢
全局同步受限于時延;片上RAM的帶寬要求比較大;因為缺少互聯的協議子系統,而缺少軟件上的容錯;
參考文獻:http://web.cecs.pdx.edu/~mperkows/CLASS_VHDL_99/070-Systolic-Processors.pdf
總結
以上是生活随笔為你收集整理的芯片的Systolic Array 脉动阵列设计加速矩阵乘运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Spartacus 开发规范
- 下一篇: C# 打印 word pdf Pr