美國伊利諾伊大學(xué)、IBM中國研究院等的最新研究,提出一種基于FPGA的DNN推理加速器DNNBuilder,獲得電子設(shè)計自動化領(lǐng)域?qū)W術(shù)頂會ICCAD的最佳論文。實驗證明,DNNBuilder生成的加速器擁有現(xiàn)時最先進(jìn)的性能和效率,超越了同類加速器。本文帶來論文作者的詳細(xì)解讀。
FPGA 編程耗時耗力,即使對專業(yè)人員來說也頗有難度。如何才能加速深度神經(jīng)網(wǎng)絡(luò)模型在FPGA上的部署?
有沒有想過,要是有個能“一鍵自動生成”FPGA上DNN模型實現(xiàn)的工具就好了?
你還別說,現(xiàn)在還真有一款這樣的工具,而且云端和邊緣的設(shè)備都適用!
相關(guān)研究論文獲得了第37屆電子設(shè)計自動化頂會International Conference on Computer Aided Design(ICCAD)的最佳論文獎。
獲獎團(tuán)隊研究成員來自美國伊利諾伊大學(xué)(UIUC)、IBM中國研究院及IBM T. J. Watson研究中心。該團(tuán)隊同時隸屬于IBM和UIUC聯(lián)合成立的認(rèn)知計算AI系統(tǒng)研究中心(C3SR.com)。
全文地址:
https://zhangxf218.wixsite.com/mysite
DNN推理加速挑戰(zhàn)巨大
DNN應(yīng)用已被廣泛部署于云端和終端設(shè)備中,如人臉識別、語音識別(翻譯)、產(chǎn)品推薦、物體檢測等。這些應(yīng)用需要大量計算與存儲資源,以滿足其高吞吐率、低能耗和低延時要求。
可見,不論是云端還是終端計算, DNN的推理過程都需要作加速處理才能適應(yīng)日常使用需求。在加速器的設(shè)計上,設(shè)計者無可避免地會遇到多種挑戰(zhàn),包括:
流式數(shù)據(jù)(如視頻輸入輸出)要求加速器具備高吞吐率和低延時的DNN推理性能;
不平衡的DNN網(wǎng)絡(luò)要求加速器設(shè)計擁有合理的資源分配策略以平衡不同網(wǎng)絡(luò)層的資源需求;
高分辨率圖片和視頻輸入要求加速器能應(yīng)對由此帶來的巨大片上數(shù)據(jù)緩存壓力。
使用FPGA,高效靈活的DNN加速方案
本文作者提出使用基于FPGA的DNN推理加速器去應(yīng)對上述挑戰(zhàn)。
FPGA可提供比基于CPU或GPU解決方案更低的延時和能耗,也能提供比專用集成電路(ASIC)更高的靈活度和更短的產(chǎn)品上市周期,是非常理想的DNN加速平臺。
可是,設(shè)計一個基于FPGA的高性能DNN推理加速器還是充滿了困難,它需要寄存器傳輸級(RTL)編程技巧,硬件驗證知識和豐富的硬件資源分配經(jīng)驗等硬件設(shè)計相關(guān)知識,對于在算法層面關(guān)注深度學(xué)習(xí)的研究人員來說是非常不友好的。
為此,作者認(rèn)為業(yè)界需要一種更加便捷的端到端DNN加速器自動生成方案——DNNBuilder。
只需三步,獲得高性能DNN加速器
圖 1 DNN推理加速器自動生成流程
DNNBuilder只需Design、Generation和Execution三步就能自動生成基于FPGA的高性能DNN推理加速器,并能把加速器快捷部署到云端或終端不同的FPGA上而不要求使用者了解RTL編程或硬件資源分配策略。
其中,DNNBuilder的第一步支持熱門的深度學(xué)習(xí)框架(如Caffe,Tensorflow),使用者能繼續(xù)使用原有的網(wǎng)絡(luò)設(shè)計和訓(xùn)練工具去定制DNN,并可像往常一樣使用GPU加速訓(xùn)練過程。特別的一點是,本文作者在Design步驟中增加了網(wǎng)絡(luò)更新接口以接收該加速器在硬件性能方面的反饋,并以此引導(dǎo)使用者對DNN作相應(yīng)優(yōu)化(如增減層數(shù)、調(diào)整量化方案等)。
DNNBuilder的第二步操作會接收上一步訓(xùn)練好的網(wǎng)絡(luò)定義及權(quán)重數(shù)據(jù)文件,并開始分析網(wǎng)絡(luò)結(jié)構(gòu)和提取關(guān)鍵參數(shù),如網(wǎng)絡(luò)層數(shù)、網(wǎng)絡(luò)層種類、通道數(shù)等。根據(jù)對網(wǎng)絡(luò)的理解,DNNBuilder會綜合考慮DNN每層復(fù)雜度、權(quán)重數(shù)據(jù)可重用程度和可用的FPGA硬件資源,自動生成性能優(yōu)化策略。隨后,DNNBuilder會根據(jù)優(yōu)化策略配置預(yù)制的高度參數(shù)化的RTL IP,并使用這些IP搭建整個DNN加速器。
在DNNBuilder的最后一步,使用者可以把生成的二進(jìn)制文件下載至FPGA,運行DNN推理加速器。
三大硬件設(shè)計創(chuàng)新
本文提出了多個DNN加速器架構(gòu)創(chuàng)新,令自動生成的加速器也擁有現(xiàn)時最高的吞吐率、最少的輸出響應(yīng)時間和極佳的可拓展性。論文著重介紹的有三個創(chuàng)新點,包括“列緩存方案(a column-based cache scheme)”、“細(xì)粒度流水線結(jié)構(gòu)(a fine-grained layer-based pipeline structure)”和“高性能RTL IP (optimized and reconfigurable DNN-specific RTL IPs)”。
1)列緩存方案能在使用高清輸入的情況下大幅減少存放特征圖(feature map)所需的緩存空間,其核心思想是通過緩存若干slices代替緩存整個3維特征圖(圖2左),從而減少FPGA片上存儲器(Block RAM)的使用量。
只要這些被緩存的數(shù)據(jù)可提供足夠數(shù)量的卷積滑窗操作,不同網(wǎng)絡(luò)層之間的操作就能繼續(xù)下去。如當(dāng)前的網(wǎng)絡(luò)層為卷積層(卷積核=3x3,stride=1),緩存4個slices就能滿足2次滑窗操作,當(dāng)需要做第三次滑窗時,只需要傳入1個新的slice替代舊數(shù)據(jù)即可。
此設(shè)計可行的根本原因是特征圖數(shù)據(jù)生命周期短,可在計算后立刻丟棄以節(jié)省空間。實驗表明(見圖2右),在運行高清輸入的YOLO加速器時,在使用列緩存方案可減少7至320倍的片上緩存使用量(平均減少43倍)。
2)細(xì)粒度流水線結(jié)構(gòu)可在保留傳統(tǒng)流水線結(jié)構(gòu)高吞吐率特性的同時,大幅度減少DNN加速器的計算延時。
與使用傳統(tǒng)流水線結(jié)構(gòu)的加速器類似,該結(jié)構(gòu)會在FPGA上例化DNN中需要使用參數(shù)的主要網(wǎng)絡(luò)層(如卷積層、全連接層),每一主要網(wǎng)絡(luò)層會對應(yīng)加速器的一級流水;而不同的地方是此方案讓各層重疊,從而大幅度降低輸出需要等待的時間。
一個使用傳統(tǒng)流水結(jié)構(gòu)的加速器對一個9層的DNN作推理運算需要等待457.24ms才能獲得結(jié)果,而在使用本文提出的結(jié)構(gòu)后,運行同樣的網(wǎng)絡(luò)推理僅需等待59.04ms(圖3右),延時下降幅度達(dá)7.7倍。
圖 3傳統(tǒng)流水線結(jié)構(gòu)(左)及本文提出的細(xì)粒度流水結(jié)構(gòu)(右)
3)高性能RTL IP是構(gòu)建DNN加速器的最基本模塊。通過分解這些DNN網(wǎng)絡(luò)層,核心功能可以被映射到對應(yīng)所需的RTL IP上,并通過這些IP搭建加速器(圖4左)。
由于這些IP是高度可配置的,DNNBuilder可通過生成優(yōu)化策略去合理配置這些IP,以滿足不同網(wǎng)絡(luò)層對硬件資源和運行性能的要求。
圖4右展示了DNNBuilder使用的卷積IP。它的輸入和輸出數(shù)據(jù)處理并行度均可被配置(分別對應(yīng)CPF和KPF)。此外IP中數(shù)據(jù)通路的位寬都是靈活的可變的(如輸入輸出位寬,bias和weight的位寬等),這樣DNNBuilder就可以精確控制每一個IP相應(yīng)的資源消耗及可獲取的性能。
圖4
自動化:確保最優(yōu)資源分配
DNNBuilder可對FPGA的計算及存儲資源作分配并生成優(yōu)化策略,為RTL IP的參數(shù)配置提供依據(jù)。
在計算資源分配方面,作者在文中提及了資源分配的理論基礎(chǔ)(圖5左公式):即在使用流水線結(jié)構(gòu)的加速器中,只有每一級流水的延時相當(dāng)時,加速器才能獲得最大吞吐率。
根據(jù)算法理論,作者設(shè)計了基于FPGA的DNN推理加速器的資源分配算法(見原文Algorithm 1)。
此外,本文還討論了FPGA外部存儲器訪存帶寬的分配問題。作者使用Roofline模型(圖5右)闡述了可通過改變CTC指數(shù) (Computation to communication Ratio) 增加數(shù)據(jù)重用的機會,從而減少帶寬資源消耗。CTC指數(shù)的增減可通過調(diào)整列緩存方案中slices多寡實現(xiàn)。根據(jù)此思路,作者在原文Algorithm2中詳細(xì)描述了帶寬資源分配方案。
終極殺器:DNNBuilder
為評估自動生成加速器的性能,作者選擇了KU115(中端FPGA)和ZC706(嵌入式FPGA)這兩款設(shè)備作為目標(biāo)FPGA,讓DNNBuilder分別對應(yīng)云端和終端計算場景生成DNN推理加速器。
首先,作者與最近使用同款ZC706 FPGA的設(shè)計作比較(表1)。DNNBuilder生成的設(shè)計獲得最高的吞吐率(GOPS)和最優(yōu)秀的功率效率(GOPS/W)。
表1 DNN推理加速器性能對比(終端FPGA設(shè)備)
隨后,作者選擇了與其他運行在云端FPGA的加速器作對比(表2)。在使用Xilinx的一款中端FPGA KU115,DNNBuilder所生成設(shè)計能獲得超過2TOPS(16比特量化)和4TOPS(8比特量化)吞吐率,超越其他設(shè)計。在功率效率方面,DNNBuilder也領(lǐng)先其他對手。
表2 DNN推理加速器性能對比(云端FPGA設(shè)備)
本文作者還以AlexNet作為基準(zhǔn)測試,對比了基于GPU和FPGA的DNN推理加速器(表3)。此對比同樣分成兩組,分別使用云端(TitanX GPU vs. KU115 FPGA)與終端設(shè)別 (TX2 GPU vs. ZC706 FPGA)。DNNbuilder所生成的基于FPGA的加速器在效率方面超過了基于GPU的設(shè)計。
表3 GPU與FPGA的DNN推理性能對比
結(jié)論
本文作者提出了DNNBuilder,它是一種基于FPGA的高性能DNN加速器自動生成方案。作者通過三個硬件設(shè)計創(chuàng)新(列緩存方案、細(xì)粒度流水線結(jié)構(gòu)和高性能RTL IP)和自動化資源分配方案,確保生成的加速器擁有現(xiàn)時最先進(jìn)的性能和效率。實驗表明,DNNBuilder生成的加速器在運行VGG-16時吞吐率可達(dá)4022 GOPS,效率達(dá)180.2 GOPS/W,超越了同類加速器。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618468 -
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124488 -
加速器
+關(guān)注
關(guān)注
2文章
827瀏覽量
39119
原文標(biāo)題:自動編程DNN加速器!只需3步,云端終端通用
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
汽車發(fā)動機升級產(chǎn)品,一種電子加速器是否真實?
汽車發(fā)動機升級產(chǎn)品,一種電子加速器的總體功能。
汽車發(fā)動機升級產(chǎn)品,一種電子加速器問專家?
汽車發(fā)動機升級產(chǎn)品,一種電子加速器與汽車點火增強器位置不同。
為什么汽車發(fā)動機升級產(chǎn)品,一種電子加速器能激發(fā)電的性能?
機器學(xué)習(xí)實戰(zhàn):GNN加速器的FPGA解決方案
核動力發(fā)動機與一種電子加速器
一種基于FPGA的圖神經(jīng)網(wǎng)絡(luò)加速器解決方案
UIUC推出最新DNN/FPGA協(xié)同方案 助力物聯(lián)網(wǎng)終端設(shè)備AI應(yīng)用

電子學(xué)報第七期《一種可配置的CNN協(xié)加速器的FPGA實現(xiàn)方法》
Rapanda流加速器-實時流式FPGA加速器解決方案

AI芯片設(shè)計DNN加速器buffer管理策略

Hitek Systems開發(fā)基于PCIe的高性能加速器以滿足行業(yè)需求

評論