AI芯片:清華大學可重構混合神經網絡處理器結構分析

清華大學微納電子系的尹首一等人於2018年發表論文《A 1.06-to-5.09 TOPS/W Reconfigurable Hybrid-Neural-Network Processor for Deep Learning Applications 》,介紹了他們的面向深度學習人工智能算法的AI芯片架構及性能參數。

這是大學的AI芯片,代表了學術界的一種想法。

下面分析一下其內部結構。當然,主要還是看其內部乘加邏輯的設計。

(所有圖片來自論文截圖)

1、整體邏輯架構

這款AI芯片的整體邏輯架構如下圖2所示。
在這裏插入圖片描述
可以看出,內部採用了2個PE陣列,其實就是2個脈動陣列,與谷歌的TPU比較像。不過,這裏的脈動陣列的行爲比較複雜,與谷歌TPU的脈動陣列並不相同。
這裏的每個PE陣列可以最多配置成四個子陣列。

整體來說,權重存儲在一個buffer中,data存儲在另外一個buffer中,思路與寒武紀的DianNao、英偉達的NVDLA、谷歌的TPU等主流AI芯片一致。
既然是脈動陣列,自然要重複利用數據和權重。
論文提到,同一行的PE共享數據,同一列的PE共享權重。

奇怪的是,除了有個脈動陣列外,沒有其他的激活、BN、add、pooling等模塊。
仔細一看,原來這些功能都放在了PE中。
下面來看看PE的結構。

2、PE

PE的結構圖如下圖所示。
在這裏插入圖片描述
PE比較複雜呀。
首先PE要分2種,一種是普通PE,一種是super PE。
普通PE,只執行卷積和全連接。
super PE,只存在於最下面,執行包括pooling,激活,以及乘法,加法等RNN中的操作。

這麼多PE,每個PE又這麼複雜,那如何一起工作的?
下面來看看論文給的例子。

3、配置PE,計算LRCN

在這裏插入圖片描述
圖5給出了兩種計算的數據流程圖。
分別爲:
(1)CNN -> FC -> RNN
(2)Conv -> pool -> FCN/RNN

可以看出,計算卷積,全連接,pooling,RNN的特殊操作等,可以配置不同數量的PE,靈活處理,最大化提升效率。

下面再看看這樣設計帶來的性能提升。

4、性能比較

在這裏插入圖片描述
清華的這款AI芯片的實際頻率是200MHz。
可以看出,在與另外2款芯片比較時,清華的吞吐量幾乎是其他的6倍,能效也更好。
還是非常不錯的設計。

5、總結

整體來看,這個AI芯片的結構,利用了脈動陣列的優點,大量複用數據和權重,又結合了可重構的思路,使得PE資源靈活配置,最大限度提升效率。

不過,可以看出,與谷歌TPU比較,這裏的PE結構非常複雜,內部path走線非常多,另外一些資源的分配有欠缺,比如每個普通PE中只有relu激活,沒有其他的激活函數,那麼當卷積需要別的激活函數,怎麼辦?還能高效處理麼?
特殊的激活函數,目前只有super PE中有,這也限制了PE資源的配置及效率。
假如,卷積用的激活是特殊激活函數,那麼,就只有最下面的PE才能完成正確的激活,這樣,豈不是又限制了計算速度?

存疑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章