選自arXiv,做者:ERWEI WANG等,機器之心編譯,參與:杜偉、淑婷。
算法
近似算法能夠減小內存使用和計算複雜度,使 DNN 部署變得更加容易。近日,由英國皇家工程科學院 Research Chair、帝國理工大學電路與系統研究所主任 George A. Constantinides 領導的一個團隊發佈了一篇題爲《Deep Neural Network Approximation for Custom Hardware: Where We've Been, Where We're Going》的綜述論文。本文評估了幾大 DNN 近似算法,包括量化、權重減小,以及由此衍生出的輸入計算減小和近似激活函數,並展現了定製硬件在實現 DNN 近似算法過程當中的優點。編程
引言網絡
來自社交媒體和物聯網等多個渠道的可用數字數據(如圖像、視頻和語音)呈指數級增加,這驅動了對高性能數據分析的需求。與其它機器學習算法相比,深度神經網絡(DNN)在過去十年裏實現了巨大的準確率提高。它的應用領域很廣,如圖像分類、目標檢測、自動駕駛和無人機導航等。其中卷積神經網絡和循環神經網絡這兩種深度神經網絡尤爲受歡迎。CNN 在學習空間特徵方面很強,而 RNN 則更適合涉及時間序列的問題。多線程
隨着任務的複雜度加深,推理架構變得愈來愈深,所耗費的計算量也愈來愈大。例如,針對簡單 MNIST 手寫數字分類任務的小型 LeNet-5 模型須要 680 kop/cl(每次分類需上千次算術運算,其中算術運算是加法或乘法),而執行 1000 類 ImageNet 任務的 VGG16 實現須要 31 Gop/cl 以及 32 位浮點權重存儲的 550 MiB。所以,對於注重吞吐量、延遲和能量的應用來講,開發可以減小 DNN 推理所需計算量和存儲成本的算法相當重要。最近的研究代表,使用近似算法後,因爲減小了內存使用和計算複雜度,DNN 部署變得更容易了。架構
深度神經網絡近似算法可分爲兩大類:量化和權重減小(weight reduction)。量化方法分別下降權重、激活(神經元輸出)的精度或同時下降兩者的精度,而權重減小則經過剪枝和結構簡化來刪除冗餘參數。如此以來,後者一般也會減小每一個網絡中的激活數量。這兩種方法都有助於 DNN 加速,於是該論文對它們進行了評估。框架
多年來,通用處理器(GPP),尤爲是多核 CPU 和 GPU,一直是 DNN 推理的主要硬件平臺。對於未壓縮 DNN 模型,層操做被映射到密集浮點矩陣乘法(dense floating-point matrix multiplication),其能夠由 GPP 按照單指令流多數據流(SIMD)或者單指令多線程(SIMT)並行處理範式進行並行處理。可是,隨着 DNN 近似算法的出現,利用現場可編程門陣列(FPGA)和特殊應用積體電路(ASIC)等定製硬件平臺來加速推理的趨勢正在興起。儘管 GPU 依然擅長密集浮點計算,但研究者發現使用低精度定點量化可爲定製硬件帶來更高吞吐量和能量效率。此外,SIMD 和 SIMT 架構在稀疏數據上操做時一般表現不佳;經過細粒度權重減小壓縮後的 DNN 在定製硬件上的執行效率更高。與使用 GPP 相比,邏輯和內存層次結構的可定製性一般使得定製硬件 DNN 推理更快也更高效。機器學習
不少全球領先的信息技術公司選擇定製硬件而不是 GPP,來實現其下一代 DNN 架構。這些定製硬件包括 ASIC(如谷歌的 TPU,英偉達的 Nervana 和 IBM 的 TrueNorth)和基於 FPGA 的設計(如微軟的 Brainwave 和賽靈思的 Everest)。通常來講,ASIC 設計架構能夠達到當前最佳的吞吐量和能效。然而,它耗時較長、設計和製造過程須要耗費大量資源,這致使它很難跟上 DNN 算法的快速發展。ide
高級實現工具(包括英特爾的 OpenCL 軟件開發工具包、賽靈思的 Vivado 高級綜合)和 Python-to-netlist 神經網絡框架(如 DNNWeaver)使得面向 FPGA 和 ASIC 的 DNN 硬件設計過程變得更快、更簡單。這類軟件容許不熟悉硬件開發的 DNN 架構師能夠相對容易地將其設計遷移到定製硬件上。同時,可重構性支持快速的設計迭代,使 FPGA 成爲頂尖 DNN 的理想原型製做和部署設備。函數
在這篇綜述論文中,做者旨在爲剛進入該領域的研究人員提供關於 DNN 近似算法的全面基礎,展現定製硬件如何比 GPP 實現更好的推理性能。具體來說,本文的貢獻以下:工具
做者經過比較不一樣規模 FPGA、ASIC、CPU 和 GPU 平臺的 roofline 模型,來講明定製硬件更適合 DNN 近似算法。
做者綜述了當前最佳 DNN 近似的主要趨勢,詳細討論了低精度量化和權重減小方法,介紹了最近的算法發展並評估了它們的優缺點。
做者評估了每種方法定製硬件實現的性能,重點關注準確率、壓縮、吞吐量、延遲和能效。
基於本文肯定的趨勢,做者提出了一些有前景的將來研究方向。
目前已有一些關於 DNN 近似的綜述。Cheng 等人 [25]、Guo 等人 [49]、Cheng 等人 [24]、Sze 等人 [136] 綜述了 DNN 壓縮和加速算法。在這些綜述中,Cheng 等人 [24] 簡要評估了 FPGA 實現的系統級設計。Guo 等人僅綜述了量化方法,沒有提到權重減小。Nurvitadhi 等人將英特爾的 FPGA 與用於 CNN 推理基準的 GPU 平臺的性能進行了比較。本文不只綜合評估了 DNN 高效推理的近似算法,還深刻分析和對比了這些算法在定製硬件中的實現,包括 CNN 和 RNN。
量化
做者認爲,DNN 近似算法的第一個關鍵主題是量化。FPGA 和 ASIC 的靈活性容許低精度 DNN 的實現,從而經過並行化和減小對慢速片外存儲的依賴來增長吞吐量。
這部分主要介紹了三種量化方法:
定點表徵
二值化和三值化
對數量化
權重減小
DNN 近似算法的第二個關鍵主題是權重減小,即被認爲不重要的參數會被徹底消除。權重減小經過減小工做負載和片外內存流量來提升硬件推理的性能。
這部分主要介紹了權重減小的五種方法:
剪枝
權重共享
低秩分解
結構化矩陣
知識蒸餾
輸入計算減小
與權重減小同理,處於不一樣空間區域的輸入數據亦會對推理的結果產生不一樣程度的貢獻,於是能夠經過評估輸入數據的相對重要性來分配算力。
近似激活函數
對於諸如 sigmoid 和 tanh 的非線性激活函數,許多計算如取冪和除法將會佔用大量片上資源。經過使用分段線性函數來近似和量化這些複雜函數,可使複雜計算簡化爲一系列的表查找操做。
權衡和當前研究趨勢
這部分中,做者使用常規 DNN 模型和數據集做爲基準,量化評估了這些工做的硬件和軟件性能。經過這樣作,做者分析了近似技術的壓縮-準確率權衡以及它們對定製硬件的設計空間探索,並據此說明了當前的研究趨勢。
將來研究方向
上文已經評估了 DNN 近似算法領域的當前研究趨勢及其實現,接下來做者將介紹該領域一些有前景的將來研究方向。
1. 評估方法
2. 研究目的
收斂保證和最優設計選擇
自適應超參數微調
FPGA-ASIC 異構系統
不規則數據模式的硬件推理
參數硬化
論文:Deep Neural Network Approximation for Custom Hardware: Where We've Been, Where We』re Going
摘要:深度神經網絡已證實在視覺和音頻識別任務中特別有效。可是,現有模型每每計算成本高昂且對內存的需求較高,因此面向硬件的近似算法成爲熱門話題。研究顯示,基於定製硬件的神經網絡加速器在吞吐量和能量效率兩個方面均超過通用處理器。當使用基於近似的網絡訓練方法協同設計時,針對特定應用的加速器將大型、密集和計算成本高昂的網絡轉換爲小型、稀疏和硬件資源消耗少的網絡,加強網絡部署的可行性。在本論文中,做者對高性能網絡推理的近似法提供了全面評估,並就其定製硬件實現的有效性進行了深刻探討。做者還深刻分析了當前趨勢,爲將來研究提供建議。本論文首次深刻分析和對比了 CNN 和 RNN 等算法在定製硬件中的實現,但願可以激發該領域出現使人興奮的新進展。