在定製硬體上實現DNN近似演算法,一文概述其過去、現在與未來

機器之心發表於2019-04-02

選自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 演算法的快速發展。

高階實現工具(包括英特爾的 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近似演算法,一文概述其過去、現在與未來

圖 2:基於英特爾 Stratix 10 FPGA 和英偉達 Titan X GPU 實現的 AlexNet 模型在使用多種定點權重和啟用資料表徵時對 ImageNet 資料集執行分類的吞吐量對比。

權重減少

DNN 近似演算法的第二個關鍵主題是權重減少,即被認為不重要的引數會被完全消除。權重減少通過減少工作負載和片外記憶體流量來提高硬體推理的效能。

這部分主要介紹了權重減少的五種方法:

  • 剪枝

  • 權重共享

  • 低秩分解

  • 結構化矩陣

  • 知識蒸餾

輸入計算減少

與權重減少同理,處於不同空間區域的輸入資料亦會對推理的結果產生不同程度的貢獻,因而可以通過評估輸入資料的相對重要性來分配算力。

近似啟用函式

對於諸如 sigmoid 和 tanh 的非線性啟用函式,許多計算如取冪和除法將會佔用大量片上資源。通過使用分段線性函式來近似和量化這些複雜函式,可以使複雜計算簡化為一系列的表查詢操作。

權衡和當前研究趨勢

這部分中,作者使用常規 DNN 模型和資料集作為基準,量化評估了這些工作的硬體和軟體效能。通過這樣做,作者分析了近似技術的壓縮-準確率權衡以及它們對定製硬體的設計空間探索,並據此說明了當前的研究趨勢。

在定製硬體上實現DNN近似演算法,一文概述其過去、現在與未來

表 1:每個近似演算法對在定製硬體中加速 DNN 推理的作用。

在定製硬體上實現DNN近似演算法,一文概述其過去、現在與未來

表 2:大規模 DNN 推理的效能對比。以上實現根據功耗排序,功耗最低者排序最高。

未來研究方向

上文已經評估了 DNN 近似演算法領域的當前研究趨勢及其實現,接下來作者將介紹該領域一些有前景的未來研究方向。

1. 評估方法

2. 研究目的

  • 收斂保證和最優設計選擇

  • 自適應超引數微調

  • FPGA-ASIC 異構系統

  • 不規則資料模式的硬體推理

  • 引數硬化

論文:Deep Neural Network Approximation for Custom Hardware: Where We've Been, Where We』re Going

在定製硬體上實現DNN近似演算法,一文概述其過去、現在與未來

論文地址:arxiv.org/pdf/1901.06…

摘要:深度神經網路已證明在視覺和音訊識別任務中特別有效。但是,現有模型往往計算成本高昂且對記憶體的需求較高,所以面向硬體的近似演算法成為熱門話題。研究顯示,基於定製硬體的神經網路加速器在吞吐量和能量效率兩個方面均超過通用處理器。當使用基於近似的網路訓練方法協同設計時,針對特定應用的加速器將大型、密集和計算成本高昂的網路轉換為小型、稀疏和硬體資源消耗少的網路,增強網路部署的可行性。在本論文中,作者對高效能網路推理的近似法提供了全面評估,並就其定製硬體實現的有效性進行了深入探討。作者還深入分析了當前趨勢,為未來研究提供建議。本論文首次深入分析和對比了 CNN 和 RNN 等演算法在定製硬體中的實現,希望能夠激發該領域出現令人興奮的新進展。

在定製硬體上實現DNN近似演算法,一文概述其過去、現在與未來



相關文章