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

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

AI芯片設計DNN加速器buffer管理策略

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

評論