cambricon-x: an accelerator for sparse neural networks
我們以前提到的深度學習網路都屬於稠密網路。經過研究發現,神經元間的連線很多都是冗餘連線,剪枝後反而有助於精度提公升。目前網路的稀疏度可以達到90%以上。舉個例子來說,原來乙個100mb引數的網路,壓縮後,只有不到10mb的引數,大大減少了儲存和運算量。
對於稀疏網路加速器設計來說,剪枝後帶來的乙個問題是網路不規則性。如果不能較好的解決該問題,就不能從剪枝中獲得理想收益。
下面我們簡單介紹幾種在演算法層面常見的壓縮方法:
1.結構設計:最常見的是輕量型網路設計,比如mobilenet網路中採用了深度可分離卷積(depthconv),相比普通卷積節省了很多運算量。
2. 剪枝:如下圖所示,分為權值剪枝,神經元剪枝(靜態神經元剪枝,動態神經元剪枝)。剪枝還有一種劃分方法,即結構化剪枝和非結構化剪枝。
3. 量化:低位元量化(16bit,8bit)、二值量化。
4. 知識蒸餾:屬於遷移學習的一種,將訓練好的大網路作為教師網路,指導小網路(學生網路)的訓練。本質上是使得小網路訓練的更準確。
控制單元:同diannao架構類似,都是採用指令集驅動執行的。
計算單元:16個以fat-tree匯流排形式連線的、可以非同步執行的pe單元。單個pe架構如下圖所示,每個pe單元內部可以並行執行16次乘法運算,還包含了加法樹單元。
非同步執行的優勢:稀疏網路架構是不規則的,也就是對於每個輸出神經元,其計算次數不不盡相同。如果採用同步計算模式,必然會浪費較多運算週期,採用非同步計算模式則可以解決該問題。
儲存單元:nbin,nbout和sb是單獨實現。需要注意的是sb單元被劃分為多個,每個計算單元pe單元都有乙個自己的sb單元,每個sb單元大小為2kb。權值資料是以壓縮形式儲存在sb中的;輸入、輸出資料是全部儲存在nbin、nbout中的。
buffer controller:這裡是針對稀疏加速器特別引入的模組,結構如下圖所示。該架構可以支援稀疏和稠密兩種網路的執行。
稀疏網路:輸入資料input會傳輸到選擇im單元中,im模組會根據索引選擇pe計算所需要的資料。每個pe都有乙個這樣的index選擇模組。
稠密網路:輸入資料input通過bcfu單元直接傳輸到pe中進行計算,跳過im選擇模組。
輸出資料output可以經過bcfu單元處理,也可以直接寫回到nbout中。
稀疏對映(for input):
本文作者經過實驗對比後,選取了第二種對映方法—step indexing。
稀疏儲存(for sb):假設每個pe計算單元中包含4個並行乘法單元,則左圖神經元連線對應的sb中權值儲存方式如右圖所示。對於神經元0來說,只需一次載入就可以完成計算;對於神經元1來說,需要兩次載入過程完成計算。從這裡我們也能看出pe計算單元選擇非同步執行的好處,神經元0不需等待神經元1計算完成。
工藝65nm
65nm
面積3.02mm2
6.38mm2
頻率0.98ghz
1ghz
乘法運算單元
16*16(同步)
16*16(非同步)
算力482gop/s
544gop/s
能耗485mw
954mw
片上快取
44kb
56kb
位數16bit
16bit
總結:cambricon-x實現了乙個稀疏處理器,其能耗是diannao的2倍。從下面圖中可以看出,稀疏處理器的能耗很大一部分都花在了im選擇模組上。與其稀疏後所獲得的收益相比,能耗增大還是可以接受的。
非結構化剪枝->結構化剪枝
本文採用的是非結構化剪枝方法,也就是以神經元連線作為剪枝粒度,剪枝後的連線是亂的,帶來了網路不規則性問題。由此一些研究人員提出了結構化剪枝方法,將剪枝的粒度提公升到塊block層次(例如cambricon-s處理器設計),還有一些研究人員將剪枝粒度提公升到了特徵圖feature map層次,也就變成了通道剪枝方法。這些思路為稀疏處理器的設計指出一些新思路。
finished.
AI晶元 指令集架構處理器Diannao分析
diannao a small footprint high throughput accelerator for ubiquitous machine learning 如圖1所示,asic晶元最早的設計思路是將神經元和突觸直接平鋪到硬體晶元上,神經元對映為邏輯單元,突觸對映為鎖存器或者ram。這...
AI晶元 清華大學可重構混合神經網路處理器結構分析
這是大學的ai晶元,代表了學術界的一種想法。下面分析一下其內部結構。當然,主要還是看其內部乘加邏輯的設計。所有來自 截圖 這款ai晶元的整體邏輯架構如下圖2所示。可以看出,內部採用了2個pe陣列,其實就是2個脈動陣列,與谷歌的tpu比較像。不過,這裡的脈動陣列的行為比較複雜,與谷歌tpu的脈動陣列並...
MT6129射頻晶元處理器介紹
mt6129是一塊高度整合的56個引腳qfn封裝的射頻處理晶元,支援amps,gsm,dcs,pcs 四頻 內部包括四個低雜訊放大器,兩個射頻正交混頻器,乙個通道濾波器,乙個可程式設計增益調節放大器,乙個接收機iq解調器,乙個帶鎖相環的高精度的發射機iq調製器,外接26mhz基準晶振,整合片上調節器...