1. 程式人生 > >FINN(一)簡介一種快速,可擴充套件的二值化神經網路框架

FINN(一)簡介一種快速,可擴充套件的二值化神經網路框架

摘要: 研究表明,卷積神經網路具有明顯的冗餘,即使權重和啟用從浮點減少到二進位制值,也可以獲得高分類精度。在本文中,我們介紹了FINN,一個使用靈活的異構流體系結構構建快速和靈活的FPGA加速器的框架。通過利用一組新的優化功能,可以實現二值化神經網路到硬體的高效對映,我們實現了完全連線,卷積和池化層,每層計算資源可以根據使用者提供的吞吐量要求進行調整。在aZC706嵌入式FPGA平臺上,系統功耗低於25 W,我們展示了每秒1230萬個影象分類,MNISTdataset上的延遲為0.31μs,準確率為95.8%,而CIFAR-10和SVHN資料集上的延遲為283μs,21906個影象分類次之,精度分別為80.1%和94.9%。據我們所知,我們是迄今為止在這些基準測試中報告的最快的分類。

介紹 卷積神經網路(CNNs)近年來得到了極大的改進,其效能現在超過了其他視覺識別演算法,甚至超越了人類對某些問題的準確性。 它們可能在各種裝置上實現無處不在的機器視覺和智慧方面發揮重要作用,但仍然存在著重要的計算挑戰。 現代CNN可能包含數百萬個浮點引數,需要數十億浮點運算來識別單個影象。 此外,隨著研究人員探索更深層次的網路,這些要求往往會增加。 例如,Alex Net (2012年影象網大規模視覺識別競賽(ILSVRC)的獲獎作品)每張影象需要244 MB的引數和1.4億浮點操作(GFLOP),而VGG- 來自ILSVRC 2014的16需要552MB引數和每張影象30.8 GFLOP。

雖然絕大多數CNN使用浮點引數,但越來越多的研究表明這種方法包含了明顯的冗餘。最近,已經證明神經網路可以準確分類使用一位或兩位量化來進行權重和啟用。這種低精度算術和小記憶體佔用的組合,為使用現場可程式設計邏輯陣列(FPGA)進行快速和能量效率分類提供了獨特的機會。與浮點相比,FPGA在二進位制運算中具有更高的理論峰值效能,而小記憶體佔用通過將引數保持在晶片上來消除了晶片儲存瓶頸,即使對於大型網路也是如此。二元神經網路(BNNs),由Curbariaux等人提出。 因為它們幾乎完全可以通過二進位制運算實現,所以特別有吸引力,有可能在FPGA上的第二級(TOPS)範圍內獲得性能。

在這項工作中,我們提出了FINN,一個用於構建可擴充套件和FPGAs上的快速BNN推理加速器。FINN生成的加速器每秒可執行數百萬個分類,具有亞微秒延遲,因此非常適合支援實時嵌入式應用,如增強現實,自動駕駛和機器人等領域。計算資源可以被縮小以更好滿足給定的分類率要求。我們使用一系列原型來驗證FINN的能力,用於對MNIST,SVHN和CIFAR-10基準資料集進行分類。我們的分類結果超過了之前公佈的最佳結果,其中MNIST為48×,CIFAR-10為2.2×,SVHN為8×。據我們所知,這是這些資料集中報告最快的神經網路推理實現。此文章的價值:

使用roofline模型量化BNNs在FPGA上的峰值效能。

利用優化將BNN更加高效的對映到FPGA上。

BNN架構和加速器構建工具,允許定製吞吐量。

一系列原型展示了BNNs在現成的FPGA平臺上的潛力。

由於文章篇幅過長,將在後面陸續更新系列文章: FINN(二)CNN,BNN及其硬體實現的背景知識 FINN(三)BNN在FPGA上的準確性和峰值效能 FINN(四)FINN的架構和優化 FINN(五)實驗評估 FINN(六)總結