FPGA加速BCNN,模型20倍剪枝率、边缘设备超5000帧/秒推理吞吐量
?作者?|?機器之心編輯部
來源?|?機器之心
來自康涅狄格大學等機構的研究者提出了一種基于結構剪枝的 BCNN 加速器,它能以較小的準確率損失獲得 20 倍的剪枝率,并且在邊緣設備上提供了超過 5000 幀 / 秒的推理吞吐量。
對于許多信號處理應用來說,能夠從具有相位信息的復數數據中進行學習是必不可少的。當前實值深度神經網絡(DNN)在潛在信息分析方面表現出了較高的效率,但在復數領域的應用還不夠。而深度復數網絡(Deep complex networks, DCN)可以從復數數據中學習,但計算成本較高,因此,這些技術都不能滿足可部署系統處理短觀測或短信號突發的即時決策需求。
近年來,將 DCN 與二值化神經網絡(BNN) 相結合的二值化復數神經網絡 (BCNN),在實時分類復數數據方面顯示出巨大潛力。
本文中,來自康涅狄格大學、斯蒂文斯理工學院等機構的研究者提出了一種基于結構剪枝的 BCNN 加速器,它能夠在邊緣設備上提供超過 5000 幀 / 秒的推理吞吐量。
論文地址:
https://arxiv.org/pdf/2108.04811v1.pdf
實現這一高性能的結果來自算法和硬件兩個方面:
在算法方面,研究者對原始 BCNN 模型進行結構剪枝,獲得 20 倍的剪枝率,但準確率損失可以忽略不計;?
在硬件方面,研究者為二值復數神經網絡提出了一種新穎的 2D 卷積運算加速器。
實驗結果表明,該研究所用方法的利用率超過 90%,使用 CIFAR-10 數據集和 Alveo U280 Board,對于復數 NIN-Net 和 ResNet-18 來說,其推理吞吐量分別達到 5882 幀 / 秒和 4938 幀 / 秒。
BCNN 訓練和壓縮
本節詳細討論 了 BCNN 模型細節,包括模型結構、BCNN 的基本構建塊和操作、使用 SLR 進行權重剪枝以及基于象限二值化、 STE 的權重量化。
BCNN 結構
BCNN 與原始卷積神經網絡 (CNN)結構的比較如圖 1 所示。Fig. 1a 表示原始 CNN,由卷積層、add bias、非線性層和池化層組成。對于 BCNN,其結構與原始 CNN 有所不同(如 Fig. 1b 所示)。池化層和批歸一化層應該在卷積層之后,從網絡中去除了 bias 以減少計算開銷而不會損失準確率。對于 BCNN,批歸一化是模型收斂的強制性操作。
圖 1:CNN 與 BCNN 的比較
對于以三通道(RGB)作為輸入的圖像,初始輸入僅包含實部。為了生成復數的輸入,研究者設計了一個兩層殘差 CNN 來學習虛部。用于生成復數輸入的網絡如圖 2 所示。
圖 2:復數輸入生成過程
BCNN 與普通 DNN 的構建部分略有不同,主要表現在卷積層、池化層、批歸一化和二值化函數的復數版本。
以二值化為例,目前有兩種廣泛使用的二值化方法,即確定性二值化和隨機二值化。確定性二值化在方程式 7 中給出,激活值被二值化 + 1 和 - 1。隨機二值化如式 8 所示,式中δ(x) 是裁剪函數,并滿足因素δ(x) = max(0, min(1, (x+1) /2 ))。然而,隨機二值化的實現需要一個隨機數生成器,導致硬件設計成本變高。因此,軟硬件實驗均采用確定性二值化方法。
FPGA 硬件架構
FPGA 是 DNN 應用最流行的硬件平臺之一。FPGA 平臺具有可重構結構和硬件設計的高并行性。隨著 DNN 模型增大,權重矩陣和激活值太大而無法存儲在 FPGA 芯片存儲器中。然而,剪枝和權重量化技術同時壓縮了激活和權重表征,使得 FPGA 平臺可以將所有中間結果存儲在存儲器中。該研究基于 Vivado HLS 2020.1 進行硬件設計,并展示了用于 BCNN 模型的 FPGA 硬件結構。
?FPGA 結構
用于 BCNN 的整體 FPGA 結構如圖 4 所示。本節中介紹了 2 個 BCNN 模型設計:基于 BCNN 模型的 NIN(network in network)和基于 BCNN 模型的 ResNet-18。這兩個模型由 3 個主要層組成:復數輸入生成層(圖 2)、全精度復數卷積層(圖 1a)、二值化復數卷積層(圖 1b)。最后將使用全連接(FC)層來生成預測輸出。
圖 4:硬件設計架構
對于 ResNet-18 網絡,有 2 種殘差塊,這兩種殘差塊都是 BCNN 模型的二值化塊。殘差塊 1 如圖 5 所示,輸入經過 2 個二值化的復數卷積層,加上原始輸入得到最終輸出。
殘差塊 2 如圖 6 所示,其中一條路徑有 2 個二值化復數卷積層,另一條路徑只有 1 個二值化復數卷積層,然后將這 2 條路徑的輸出相加以生成最終輸出。
實驗
BCNN 模型的訓練
研究者將 SLR 剪枝和基于 STE 的量化技術用于 NiN-Net 和 ResNet-18,這兩個網絡都是基于 BCNN。對于 CIFAR-10 數據集,研究展示了基于 NiN-Net 和 ResNet-18 的 BCNN 的訓練結果;對于 ImageNet 數據集,研究只展示了基于 ResNet18 的 BCNN 結果。
首先,為了確定最終模型池化層功能,在 BCNN 模型上比較了光譜(spectral)池化、平均剪枝和最大池化。比較三種池化可達到的精度,結果如表 1 所示。由結果可得,平均池化比其他兩種池化方法的性能更好,計算復雜度可以接受。所以平均池化將用于 BCNN 模型。
對于模型的復數版本,通道數減少了一半,以確保不同 BCNN 模型大小相同。對于權重剪枝,大多數中間層的剪枝比設置為 0.5。該研究在四種模型上進行了測試:NIN-Net、復數 NIN-Net、ResNet-18 和復數 ResNet-18 在 CIFAR-10 數據集上的準確率如下表所示。?
在 ImageNet 數據集,對基于 ResNetE-18 模型的 BCNN 進行剪枝和量化,結果如表 III 所示。由結果可得,網絡的復數版本性能優于普通版本。因此,基于復數二進制網絡的 NIN-Net 和 ResNet-18 將用于硬件設計評估。
硬件評估
下表是基于 NIN-Net 的 BCNN 單個推理核資源利用率。對于單核而言,執行延遲為 1.53 毫秒。最大資源利用率受到 LUT 資源限制,可以同時使用九個核以實現更高級別的并行性。可實現的最大吞吐量為 5882 幀 / 秒。
對于基于 ResNet-18 模型的 BCNN,單個推理核的資源利用情況如下表所示:
此外,該研究還對 BCNN 模型跨平臺吞吐量進行了比較,結果如下表所示,由結果可得,本文所提出的 FPGA 設計在基于 NIN-Net 模型的 BCNN 上實現了 1.51 倍的加速,在基于 ResNet-18 模型的 BCNN 上實現了 1.58 倍的加速。
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的FPGA加速BCNN,模型20倍剪枝率、边缘设备超5000帧/秒推理吞吐量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让人惊叹的Johnson-Linden
- 下一篇: 配债怎么操作