一個用于構建可擴展和FPGA上的快速BNN推理加速器 專門針對量化神經網絡 每秒處理數億次機器學習推斷
您聽說過 FINN 嗎?沒有?這個答案并不令人驚訝,因為這是一個用于探索基于 FPGA 的深層神經網絡推斷的實驗框架的全新再實現,而且它現在仍是賽靈思研究實驗室 (Xilinx Research Lab) 的測試版。然而, 雖然還是測試版,它已經發布了 v0.4b(測試版),并且自從在 GitHub 上開源以來,受到了廣泛關注。
2020 年 5 月,賽靈思研究實驗室的論文《FINN-R:快速探索量化神經網絡的端到端深度學習框架》獲得了計算機協會 (ACM) 可重構技術和系統匯刊 (TRETS) 2020 年年度最佳論文獎 —— 該獎項每年只授予全年論文中的一篇。該論文的第一作者、杰出工程師 Michaela Blott 女士和她的團隊在今年夏天的第 57 屆設計自動化大會線上頒獎典禮上接受了這一榮譽。該論文的評選引起了人們對 FINN 的更廣泛關注:FINN 是什么,為什么選擇 FINN,如何實現 FINN?帶著這些問題,我們采訪了 Michaela Blott 女士。
FINN 是什么?
FINN(神經網絡快速推斷)是我們的一個旗艦開源項目的名稱,是賽靈思研究實驗室的一個實驗框架,用于探索基于 FPGA 的深層神經網絡推斷。它專門針對量化神經網絡,著重于為每個網絡生成定制的數據流式架構。這種形式的高度專業化有助于加速需要更高吞吐量和超低時延的應用。 然而,要實現定制相當困難,而且通常只有專家才可以進行定制。對此,FINN 提供了一個端到端流程,即使是機器學習工程師也可以創建這些高度定制的硬件解決方案,以前饋數據流架構的形式為具有任意精度/任意層的空間展開式卷積神經網絡加速器提供支持。它實際上是一種工具流,能夠幫助沒有硬件專業知識的人員生成高度定制的 FPGA 設計,并從我們的器件所提供的性能和效率中獲益。 最初的版本側重于二進制網絡。自此,我們擴展到可支持任意精度 (FINN-R) 并提供更高靈活性的終端架構和目標平臺,其中包括給定器件的硬件成本估算。我們在包括 PYNQ 和 Alveo 在內的一系列平臺上對各種不同精度的神經網絡生成的架構進行了評估,從小型 CIFAR-10 分類器、基于 PASCAL VOC 數據集的 YOLO 對象檢測到 ImageNet 分類網絡和 LSTM。我們目前正在添加更多極端用例,比如網絡入侵檢測,在這種情況下,FINN 每秒可以處理數億次機器學習推斷。 如需了解有關 FINN 的更多基本信息,請訪問項目頁面,查看出版物或一些演示。
FINN 有哪些特性?
●模板化的 Vivado HLS 流組件庫:FINN 帶有 HLS 硬件庫,該硬件庫可將卷積,全連接,池化和 LSTM 層分類實現為流組件。該庫使用 C++ 格式來支持各種精度。
●超低時延和高性能的數據流:通過為每一層組成流組件,FINN 可以生成加速器,這些加速器可以以亞微秒級的時延對圖像進行分類。
●多種端到端的設計示例:我們提供的示例從訓練量化神經網絡開始,一直到硬件上運行的加速設計。這些示例涵蓋了一系列數據集和網絡拓撲。
●用于快速生成設計的工具流程:FINN 工具流程支持自動或手動為每層分配單獨的計算資源,并生成用于綜合的完整設計。這樣可以快速探索設計空間。
為什么要為開源重新構建 FINN?
在過去的幾年里,愛爾蘭賽靈思研究實驗室的團隊對量化神經網絡 (QNN) 進行了大量研究。從 2016 年基于 FPGA 的二進制神經網絡 (BNN) 開始,我們已經對量化深度學習的眾多方面進行了研究,涵蓋從更好的量化方法、混合量化和修剪到精確吞吐量權衡和遞歸拓撲等眾多領域。雖然我們工作的某些演示已經實現開源有一段時間了,但我們希望能更進一步。我們喜歡 QNN,同時也很青睞在賽靈思 FPGA 上為其構建的高性能、高效率的數據流加速器,我們希望您和 FPGA/ML 社區也能這樣做。實現這一目標的(協同)設計流程實際上相當復雜,從在機器學習框架中定制神經網絡開始,經過涉及眾多優化、HLS 代碼生成和 Vivado 綜合的多個設計步驟,最后得到 FPGA 比特流,可以作為某個應用的組成部分進行部署。其中大量步驟都需要一些手動操作,但是如果能有一個模塊化的、靈活的解決方案堆棧來支持您完成這個流程將非常有幫助。這就是為什么我們要從頭開始重建我們的 FINN 解決方案堆棧,使其更加模塊化。
我們選擇 FINN 開源路線的主要原因是為了提供更高程度的靈活性和透明度。機器學習研究進展迅速,因此 FINN 是研究人員可以用來實現最新層類型的工具。
用戶如何進一步了解 FINN?
訪問 https://xilinx.github.io/finn,我們有一個 gitter channel,您可以在那里提問。您可以使用 GitHub 問題跟蹤器報告錯誤,但請不要以提交問題的形式來提出問題,因為這在 gitter 頻道中可以得到更好的處理。此外,我們也衷心歡迎您針對本項目做出貢獻,請查看貢獻指南和公開問題列表。如果您有任何想法,請隨時聯系 Gitter 進行討論。 我們渴望擴大我們的社區,并希望聽到您的消息。
為什么開源和神經網絡
非常適合賽靈思?
賽靈思提供了可以對其器件進行編程的工具。有了開源,我們就可以充分利用并為世界一流的成果做出貢獻。FINN 的量化感知訓練庫 Brevitas (https://github.com/Xilinx/brevitas)建立在 Pytorch 上,Pytorch 是基于 Torch 庫的常用開源機器學習庫,用于計算機視覺和自然語言處理。 我們為這個現有的開源框架提供了大量的庫,這些庫使得對網絡的訓練可以一直精確到 1 位。這充分利用了 Pytorch 已有的所有優異技術,并使用戶群體從量化中獲益。此外,將這些網絡映射到我們的 FPGA 上的實現工具是開源的,它利用了現有的賽靈思技術,其中包括高層次綜合以及基于 FPGA 的布局布線。參見下圖。
關于賽靈思實驗室
賽靈思研究實驗室通過其對公司戰略和愿景的貢獻占據了技術領先地位。該組織為未來的產品創造新的技術機遇,致力于應對最新涌現的工程挑戰,并消除對實現公司業務目標至關重要的技術風險。我們積極地與各個高校、初創企業和采用早期技術的客戶建立聯系,發現新挑戰并獲得他們對新想法的反饋。
關于 Michaela Blott 簡介
Michaela Blott 是愛爾蘭都柏林賽靈思研究中心的杰出工程師,她領導著一個由國際科學家組成的團隊,該團隊致力于推進激動人心的研究,為賽靈思器件探索全新的應用領域,例如應用于嵌入式和超大規模部署的機器學習。她在德國凱澤斯勞滕大學獲得碩士學位,在研究機構(如蘇黎世聯邦理工學院和貝爾實驗室)和開發機構擁有超過 25 年的先進計算機架構以及先進 FPGA 和電路板設計經驗。她積極投身于國際研究界,擔任 FPL 2018 年的技術聯合主席、研討會組織者 (H2RC、ITEM)、眾多歐盟項目的行業顧問、眾多技術計劃委員會(FPL、ISFPGA、DATE 等)的成員,2015 年獲得 WMB 獎,入圍 2019 年 VentureBeat Women 人工智能獎,并獲得 2019 年女性科技獎。
責任編輯:lq
-
神經網絡
+關注
關注
42文章
4771瀏覽量
100720 -
Xilinx
+關注
關注
71文章
2167瀏覽量
121321 -
機器學習
+關注
關注
66文章
8408瀏覽量
132574
原文標題:Xilinx實驗室為何為開源而重構 FINN?
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論