從ISCA論文看AI硬體加速的新技巧
來自專欄片上神經網路44 人贊了文章
總的來說,專門針對ML/DNN的硬體架構已經是ISCA連續幾年的熱點了,經過大家的努力,對相關問題的挖掘已經越來越深。而同時,在體系結構上的創新所帶來的效率提升也逐漸放緩。之前一個新的專用架構的出現,可以帶來10X甚至100X的提升,但現在已經很難做到。從我瀏覽的幾篇ISCA2018文章來看,主要創新在於:根據數據和模型的特徵動態優化硬體處理流程,盡量減少不必要的運算和訪存。本文簡單介紹一下這些文章的工作,希望能對大家有所啟發。
ISCA主要反映學術界最新的研究工作。目前,對ML/DNN硬體加速技術的研究主要圍繞提高Inference的處理效率展開。如果大家對背景知識不熟悉,建議先好好看看[1]這篇綜述文章和相關的網站。
SnaPEA: Predictive Early Activation for Reducing Computation in Deep Convolutional Neural Networks
Vahideh Akhlaghi (University of California, San Diego), Amir Yazdanbakhsh (Georgia Institute of Technology), Kambiz Samadi (Qualcomm Technologies), Rajesh K. Gupta (University of California, San Diego), Hadi Esmaeilzadeh (University of California, San Diego)
出發點:如果DNN的activation是ReLU,則其輸入只要是負值,輸出就是0。如果能判斷Conv的計算結果小於0(或者很可能小於0),則可以提前結束計算,從而減少總的運算量。
從上圖可以看出該論文的基本處理思路。首先,根據數據的符號對weight進行一下整理,把正數放到前面;當處理到負的weight的時候,如果此時的部分和(partial sum)已經為負數,則最終的部分和肯定為負,則停止後續運算,此模式稱為exact mode;另一種模式為predictive mode,差別在於,只要在經過了一定數量的MAC運算後,部分和小於一個門限值(不一定小於零)則「預測」最終的結果為零,停止後續運算。
UCNN: Exploiting Computational Reuse in Deep Neural Networks via Weight Repetition
Kartik Hegde (University of Illinois at Urbana-Champaign), Jiyong Yu (University of Illinois at Urbana-Champaign), Rohit Agrawal (University of Illinois at Urbana-Champaign), Mengjia Yan (University of Illinois at Urbana-Champaign), Michael Pellauer (NVIDIA), Christopher Fletcher (University of Illinois at Urbana-Champaign)
出發點:在同一個Conv計算中,weight的數值可能相同。比如在一個filter中,w0=w1=w, 則原始運算 w0*d0 + w1*d1可以轉化為 w*(d0+d1),從而減少運算和訪存的數量。如下圖。
下圖是一個具體的優化的實例。
圖中可以看出,除了重用了Filter K1中重複的weight a和K2中重複的weight c,在兩次計算中還可以重用x+h這部分運算的結果。當然,要實現這樣的優化,必須打亂原來的運行過程。如下圖所示,硬體根據indirection table中的信息來執行操作:
Energy-Efficient Neural Network Accelerator Based on Outlier-Aware Low-Precision Computation
Eunhyeok Park (Seoul National University), Dongyoung Kim (Seoul National University), Sungjoo Yoo (Seoul National University)
出發點:提高inference實現效率的一個基本思路是使用低精度量化,比如4bit量化。但是有一部分數值(outlier,大約3%)如果能夠使用更高的精度進行計算則更有利。
本文的貢獻是提出一個outlier-aware accelerator。原理也比較直接,把datapath分成兩套,實現不同的精度。大部分數據走低精度(4bit)的datapath,少數數據(outlier)走高精度datapath,如上圖所示。整體上來講,這種方式比都使用高精度有更高的效率,而比統一採用低精度又有更好的模型準確度。
GANAX: A Unified MIMD-SIMD Acceleration for Generative Adversarial Networks
Amir Yazdanbakhsh (Georgia Institute of Technology), Kambiz Samadi (Qualcomm Technologies), Nam Sung Kim (University of Illinois at Urbana-Champaign), Hadi Esmaeilzadeh (University of California, San Diego)
出發點:在GAN中有一類新的卷積運算,transposed convolution,在做卷積之前會在數據中填充很多的零值。對於這種運算,如果用傳統的卷積加速方法效率比較低。
這篇文章的工作算是靠上了GAN的熱點,選題不錯。具體的實現基本就是重新調整數據和filter的組織方式,從而避免不必要的運算。
Computation Reuse in DNNs by Exploiting Input Similarity
Marc Riera (Universitat Politecnica de Catalunya), Jose-Maria Arnau (Universitat Politecnica de Catalunya), Antonio Gonzalez (Universitat Politecnica de Catalunya)
出發點:在很多DNN應用中(如語音識別或視頻分類)需要DNN的多次連續處理系列輸入(例如音頻幀,圖像)。 而這些連續的輸入表現出高度的相似性,導致不同層的輸入/輸出對於連續的語音幀或視頻圖像極其相似。實現中可以對比每次輸入是否與上次相似,若相似則省去本次計算。
文章里還是比較詳細的描述了針對全連接FC,Conv和RNN這些不同類型的layer不同的計算重用方式。上圖是針對Conv層的。重點是判斷輸入和上次輸入的相似程度,如果達到一定程度(negligible changes),則不用進行新的計算。具體的判斷方法是對輸入進行uniformly distributed linear quantization,然後據此分析連續兩次DNN操作的相似度和量化誤差。
總結
ISCA2018除了上述文章,和ML/DNN加速相關的文章還有不少,也包括來自微軟的「A Configurable Cloud-Scale DNN Processor for Real-Time AI」,介紹了Brainwave項目的NPU架構;清華大學的「RANA: Towards Efficient Neural Acceleration with Refresh-Optimized Embedded DRAM」,這篇文章相關的介紹已經比較多了,就不再贅述。另外一些則涉及存儲和計算結合或是新型存儲技術。
前面粗略介紹的幾篇文章,基本上是抓住DNN處理的相關數據和模型(輸入,weight,中間結果)的某些特徵,通過預測等方法,避免不必要的運算,或者不必要的精度。在獲得了一定的收益的同時,這些方法也都增加了處理和控制的複雜度和開銷。大部分方法都需要在正常數據之外,額外保存處理相關的信息,比如用來指示數據的特徵的index table。另外,這些方法對於數據特徵和演算法流程是有預設條件的,比如前後輸入數據的相似性,weight的重複性,ReLU處理的特點等等。如果數據特徵或演算法流程不同,則這些方法的有效性也會打折扣。
簡單瀏覽過這些論文,感覺在經過了幾年對ML/DNN加速器的密集研究後,已經很難再看到Diannao/DaDiannao, Eyeriss和TPU這類開創性的工作了。從另一個角度來說,接力棒已經迅速的從學界傳遞給業界。而在未來的實踐的過程中,我們可能會看到新的問題(比如演算法的跳躍),或者新的機遇(比如新的器件和材料),成為下一次創新高潮的起點。
參考:
1.Vivienne Sze, Yu-Hsin Chen, Tien-Ju Yang, and Joel S Emer. Efficient processing of deep neural networks: A tutorial and survey. Proceedings of the IEEE, 105(12):2295–2329, 2017.
- END-
歡迎關注我的微信公眾號:StarryHeavensAbove
題圖來自網路,版權歸原作者所有
本文為個人興趣之作,僅代表本人觀點,與就職單位無關
推薦閱讀:
※AI算力需求6年增長30萬倍、3.5月翻一番——OpenAI數據分析
※沙子變金子全過程--CPU成長記
※美國下注15億美元重點搞晶元,電子復興計劃首批入圍項目曝光
※深度起底蘋果AI晶元A11:九年潛伏布局 狂買數十家公司
※國內AI晶元的先行者,寒武紀科技一直兢兢業業!