01
—
6月2-6日,在美國拉斯維加斯Convention Center召開了一年一度的ACM/IEEE設(shè)計(jì)自動化大會“Design Automation Conference (DAC) 2019”,作為計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域的頂級會議之一,每年會吸引上千名學(xué)者和上百家公司參會,進(jìn)行處理器設(shè)計(jì)、EDA工具、集成電路設(shè)計(jì)、邊緣計(jì)算、機(jī)器學(xué)習(xí)等領(lǐng)域的學(xué)術(shù)和前沿技術(shù)的交流和展出,DAC已被中國計(jì)算機(jī)學(xué)會CCF列為A類推薦會議。
北京交通大學(xué)信息科學(xué)研究所王東副教授代表其研究小組在本次會議上宣講了題目為《ABM-SpConv一種基于新型稀疏卷積算法的卷積神經(jīng)網(wǎng)絡(luò)FPGA硬件加速方法》(ABM-SpConv: A Novel Approach to FPGA-Based Acceleration of Convolutional Neural Network Inference)的論文,作者分別為:Dong Wang, Ke Xu, Qun Jia, Soheil Ghiasi.
圖(1)王東老師在DAC2019大會上宣講論文
02
—
論文簡介
早期基于FPGA的深度卷積神經(jīng)網(wǎng)絡(luò)推理硬件加速器設(shè)計(jì)研究均采用時(shí)域卷積(Spatial-Domain Convolution,SDConv)方法,研究方向主要集中在處理器設(shè)計(jì)空間探索、存儲器帶寬優(yōu)化、神經(jīng)網(wǎng)絡(luò)模型壓縮編碼等方面。如國內(nèi)北京大學(xué)高能效計(jì)算中心Jason Cong教授的研究小組最先提出了一種基于roofline 模型進(jìn)行硬件加速器設(shè)計(jì)空間探索的方法[1],定量化地指導(dǎo)硬件加速器吞吐率和存儲器帶寬的設(shè)計(jì)和優(yōu)化;該研究還采用了高層次綜合(high-level synthesis, HLS)設(shè)計(jì)方法學(xué),進(jìn)行基于卷積循環(huán)分塊(loop tiling)和變換優(yōu)化方法的硬件加速方法研究。清華大學(xué)Yu Wang教授團(tuán)隊(duì)的研究工作[2]進(jìn)一步指出,深度卷積神經(jīng)網(wǎng)絡(luò)推理運(yùn)算中,卷積層為計(jì)算密集型運(yùn)算(computational-centric),而全連接層為存儲密集型運(yùn)算(memory-centric);為了解決全連接層計(jì)算性能受到外存帶寬限制的問題,該研究提出了一種基于矩陣奇異值分解(singular value decomposition,SVD)的神經(jīng)網(wǎng)絡(luò)模型壓縮方法來降低網(wǎng)絡(luò)模型傳輸?shù)膸捪模⒃O(shè)計(jì)了一種可同時(shí)加速卷積和全連接層運(yùn)算的硬件電路結(jié)構(gòu)。
時(shí)域卷積SDConv方法的問題在于,采用該方法設(shè)計(jì)的硬件加速器的最高性能受到FPGA片上DSP資源數(shù)量的限制。如圖(2)所示的roofline模型所示,當(dāng)FPGA片上DSP資源對應(yīng)的乘累加單元(MAC)總數(shù)為Nmac時(shí),處理器的推理運(yùn)算的最高性能不會超過2×Nmac×Freq,其中Freq為處理器的工作頻率;該理論性能極限被稱為computational roof。目前,基于時(shí)域卷積方法的硬件硬件加速器設(shè)計(jì)性能已接近理論計(jì)算性能極限,單從架構(gòu)設(shè)計(jì)方面已經(jīng)無法進(jìn)一步提升神經(jīng)網(wǎng)絡(luò)硬件加速器的性能。因此,最新的學(xué)術(shù)研究開始轉(zhuǎn)向研究基于新型卷積算法的加速器設(shè)計(jì),包括如頻域卷積(Frequency-Domain Convolution,F(xiàn)DConv)和稀疏卷積(Sparse Convolution,SpConv)。這兩種方法都是通過設(shè)計(jì)新型的卷積計(jì)算方法,在算法層面壓縮卷積運(yùn)算所需要執(zhí)行的乘累加運(yùn)算數(shù)目,如減少Rmac倍,則理論上對應(yīng)的硬件加速器性能可提升Rmac倍(通常也稱Rmac為算法加速比)。例如FPGA’18的最新論文[3]設(shè)計(jì)了一種高效的頻域卷積算法,與時(shí)域卷積算法相比,該方法可以將卷積運(yùn)算中乘累加運(yùn)算數(shù)量壓縮3.6倍,從而將理論計(jì)算性能極限提升了3.6倍,論文在Stratix-VA7 FPGA上進(jìn)行了實(shí)驗(yàn),僅使用256個(gè)DSP單元,實(shí)現(xiàn)了高達(dá)669 GOP/s的卷積神經(jīng)網(wǎng)絡(luò)推理性能。
圖(2)深度卷積神經(jīng)網(wǎng)絡(luò)硬件加速器roofline模型
通過進(jìn)一步分析深度卷積神經(jīng)網(wǎng)絡(luò)硬件加速器的roofline模型可以發(fā)現(xiàn),現(xiàn)有研究雖然在算法層面開展了不同類型卷積方法的研究,但在硬件架構(gòu)層面,絕大多數(shù)設(shè)計(jì)均采用了相類似的計(jì)算陣列架構(gòu)——乘累加陣列;所帶來的問題是硬件加速器電路過度依賴片上DSP資源,提升硬件加速器的推理性能的途徑被局限于兩種:(1)使用更大容量FPGA器件,利用更多DSP資源提供算力;(2)進(jìn)一步壓縮卷積運(yùn)算中乘累加運(yùn)算的數(shù)量,提高算法加速比Rmac。第一種方法會增大應(yīng)用實(shí)現(xiàn)的成本,第二種方法往往會帶來深度學(xué)習(xí)算法準(zhǔn)確率的下降。
本論文另辟蹊徑,提出了一種新的稀疏卷積算法,該方法利用權(quán)值共享技術(shù)避免了卷積運(yùn)算中冗余的乘法運(yùn)算,在不影響模型精度的前提下壓縮了乘法運(yùn)算的數(shù)量;同時(shí),還將卷積運(yùn)算公式進(jìn)行變形,解耦乘法和加法運(yùn)算數(shù)據(jù)流,使得乘法和加法運(yùn)算可分別映射到兩個(gè)相互獨(dú)立的乘法計(jì)算陣列和加法計(jì)算陣列上,通過靈活的分配乘法器和加法器的比例關(guān)系,充分利用FPGA片上所有邏輯和DSP資源,為卷積運(yùn)算提供更多算力;例如上圖所示,本文的方法可突破FPGA片上DSP資源的限制,改變硬件加速器理論計(jì)算性能極限(computational roof)為2×Nacc×Freq,與FPGA’18相比,硬件加速器的最高性能可進(jìn)一步提升1.5倍,突破1TOP/s。論文使用了英特爾公司的FPGA平臺和OpenCL SDK開發(fā)工具。