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

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

使用賽靈思Alveo加速器卡加速DNN

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

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

評(píng)論