A 288μW Programmable Deep-Learning Processor with 270KB On-Chip Weight Storage Using Non-Uniform Memory Hierarchy for Mobile Intelligencemarkdown
單位:Michigan,CubeWorks(密歇根大學,CubeWorks公司)session
又是一款作DNN加速的面向IOT的專用芯片,主要特色是有L1~L4四級不一樣速度、能耗的層次化存儲。經過對全鏈接矩陣x向量的計算流程優化,最終能夠在0.65V 3.9MHz下得到374GOPS/W的能效表現及288uW的能耗指標[1]。主要仍是低功耗,288uW能夠作到常開了。架構
IoT DLA(Deep Learning Accelerator)的願景和實操:IoT的結點將具備移動感知能力,同時能夠運行簡單的語音/圖像檢測和離線學習能力,能夠完成部分DSP的計算工做。當前的技術採用了高並行的PE以及非標準的memory結構NUMA,定製的低漏電流SRAM,同時對數據位寬採用精度可配的管理方式。ide
和傳統的計算相比,深度學習的訪存次數大大增長,計算的不肯定性也十分明顯,傳統的層次化存儲結構(寄存器-Cache-DRAM-HDD/SSD)已經難以知足需求(Cache做用不明顯,訪存不規則可是服從統計學分佈規律)。所以,採用非一致的存儲架構、提升存儲的bit密度,以及使用長字節表達+可變精度的數據格式,能夠有效提高深度學習的訪存、能效表現。函數
採用的多層存儲結構:採用非一致性的NUMA,創建肯定性訪存機制,提出數據分配機制以及數據的連續地址存放。性能
DLA的設計:每一個PE均具備共計67.5kB的4層存儲結構,經過AHB與主控芯片相連,經過MMIO寄存器進行數據交互。——AHB Lite和寄存器交互使得數據交換能耗低;學習
下面是重點:優化
DLA的PE設計:總體工做流程:設計
一、instruction buffer用於接受由主控核(Cortex-M0)發出的指令,經由WR/RD進行選擇,將192b的指令輸出到中心controller;
二、中心controller(CTR)將狀態寄存器Status Reg置位「Running」;
三、訪存單元(Mem)經過中心controller和PE進行數據交互,CTR定義MemAU數據訪存模式(序列Seq/隨機Ran),PE經過CTR和MemAU進行訪存操做;同時MemAU採用了power gating和signal gating技術;對於外存的訪問請求,也經過MemAU處理,優先級爲:Cortex-M0>外部PE>所在PE;
四、CTR向Data Buffer發起數據請求,完成:解壓MemAU輸入的96b數據,打包發出輸出的96b數據,並採用臨近數據存儲方式進行操做;
五、CTR對ALU發起數據,ALU經過IO口從Data Buffer中讀取數據,能夠進行以下計算:4個乘法計算(8bit)、4個乘法計算(16bit)、10個加法器、6個移位器;基於查找表的多項式差值計算單元,用於激活函數的計算;
六、計算任務完成後,Cortex-M0發出信號,CTR將Status Reg置位Done。orm
有信號開關的SRAM結構:經過SIGNAL_GATING[3:0]和DATA_DATING[3:0]進行數據的存儲層級選擇。
本芯片主要能作FC的計算,全鏈接層的運算(Fully-Connected Layer, FCL):分解爲矩陣x向量+激活函數。核心是Matrix-Vector Multiplication(MVM)。
爲了下降中間結果數量以及寫出帶寬,採用的摺疊式的求和:兩兩加和的結果是一個臨時結果,換下一個兩列的時候,把前面的臨時結果讀出來,加完以後再寫回去。
所以,基於這樣的計算模式,論文采用:
基於以上的MVM計算方式,TO是訪問頻率最高的數據->存在L1 Mem;權重w重用度低->存在L4 Mem
重用度低就是指不會重複讀,只會按順序讀,所以放在較大較遠的L4中;而臨時結果須要反覆讀寫,量也不大,因此放在較小較近的L1中。
對於不一樣層Memory的訪存功耗對比:
芯片性能表現及對比:在0.65V 3.9MHz下,運行FCL平均能耗爲288uW,能效爲374GOPS/W,同時支持6~31bit不一樣位寬的計算。
總結:一款面向IoT的低功耗深度學習加速器
一、在低功耗、高效率下實現DNN
二、延遲在幾個ms的級別,能夠應對IoT的實時性要求
[1] https://reconfigdeeplearning.com/2017/02/09/isscc-2017-session-14-slides14-7 [2] A 288μW Programmable Deep-Learning Processor with 270KB On-Chip Weight Storage Using Non-Uniform Memory Hierarchy for Mobile Intelligence