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

使用RT1060的mcuboot開源sdk示例擦除主插槽中的錯誤鏡像怎么解決?
如意玲瓏應(yīng)用構(gòu)建規(guī)則實(shí)用案例

如何為Raspbian Bullseye構(gòu)建開源OpenVINO??
構(gòu)建開源OpenVINO?工具套件后,模型優(yōu)化器位于何處呢?
構(gòu)建開源OpenVINO?工具包后,使用MYRIAD插件成功運(yùn)行演示時報錯怎么解決?
開源安全一站式構(gòu)建!開啟企業(yè)開源治理新篇章

開源基礎(chǔ)設(shè)施能力建設(shè)分論壇成功舉辦
deepin社區(qū)落地開源生態(tài)發(fā)展合作倡議
Arm加入OpenCloudOS操作系統(tǒng)開源社區(qū)
deepin社區(qū)亮相2024 OSCAR開源產(chǎn)業(yè)大會
RT-Thread Studio構(gòu)建和重新構(gòu)建的不同,一般我們編譯工程時用哪個?
PyTorch神經(jīng)網(wǎng)絡(luò)模型構(gòu)建過程
開啟開源布道新篇章 — LF開源軟件學(xué)園誠邀開源精英加入成為OSPO講師

評論