摘要:當(dāng)前,隨著異構(gòu)計算技術(shù)的快速發(fā)展,如何高效部署深度神經(jīng)網(wǎng)絡(luò)成為業(yè)界關(guān)注的焦點。文章重點研究了面向邊緣場景的神經(jīng)網(wǎng)絡(luò)加速技術(shù),通過剖析現(xiàn)有NPU架構(gòu)的優(yōu)缺點,提出了一套低功耗加速方案。該方案有效結(jié)合了流水線并行與循環(huán)展開技術(shù),顯著提升了計算資源利用率,同時在數(shù)據(jù)調(diào)度與存儲管理方面實現(xiàn)了有效優(yōu)化。在采用混合精度模式時,DSP與BRAM資源利用率分別達到98.15%與72.44%,相較于CPU基準(zhǔn)實現(xiàn)獲得了37.3倍的性能提升。此外,該方案的平均功耗僅為5.85 W,功耗波動控制在7.2%以內(nèi),為神經(jīng)網(wǎng)絡(luò)在邊緣設(shè)備上的實際應(yīng)用提供了可靠的技術(shù)路徑。
關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò)處理器(NPU) ;異構(gòu)計算;深度學(xué)習(xí)加速;邊緣計算;流水線優(yōu)化
中圖分類號:TP18" " " 文獻標(biāo)識碼:A
文章編號:1009-3044(2025)18-0095-03
開放科學(xué)(資源服務(wù)) 標(biāo)識碼(OSID)
0 引言
近年來,人工智能技術(shù)的突飛猛進推動神經(jīng)網(wǎng)絡(luò)在自動駕駛與智能醫(yī)療等領(lǐng)域的廣泛應(yīng)用。然而,依賴傳統(tǒng)GPU與CPU進行深度學(xué)習(xí)推理時,高功耗與高延遲問題日益凸顯,極大限制了神經(jīng)網(wǎng)絡(luò)在邊緣設(shè)備的落地,為此,專為神經(jīng)網(wǎng)絡(luò)計算優(yōu)化的NPU(神經(jīng)網(wǎng)絡(luò)處理器) 憑借其出色的并行計算能力與能效優(yōu)勢,成為行業(yè)關(guān)注的重點方向。本研究深入分析當(dāng)前NPU架構(gòu)的局限性,并提出一種面向邊緣計算的高效神經(jīng)網(wǎng)絡(luò)加速方案。通過多級優(yōu)化策略,該方案在計算性能與能源效率上均實現(xiàn)顯著提升。
1 NPU架構(gòu)發(fā)展現(xiàn)狀與分析
在異構(gòu)計算中,GPU與FPGA是兩種重要的加速器形式,其中GPU提供了強大的并行計算能力,而NPU作為深度學(xué)習(xí)專用處理器,通過集成專用的矩陣乘法單元與高效的卷積加速電路,在神經(jīng)網(wǎng)絡(luò)任務(wù)上展現(xiàn)出獨特優(yōu)勢。隨著人工智能技術(shù)從實驗室走向?qū)嶋H應(yīng)用,計算架構(gòu)正經(jīng)歷一場深刻變革——從傳統(tǒng)CPU向異構(gòu)計算的轉(zhuǎn)型已成定局。在這一進程中,NPU(神經(jīng)網(wǎng)絡(luò)處理器) 作為深度學(xué)習(xí)加速的專用芯片,其架構(gòu)設(shè)計實現(xiàn)重大進展:從早期的單一計算單元發(fā)展到如今的多核并行處理架構(gòu)[1]?,F(xiàn)代NPU普遍采用SIMT(單指令多線程) 并行計算架構(gòu),并集成專用矩陣乘法單元(MMU) 與卷積加速器,以高效處理神經(jīng)網(wǎng)絡(luò)中密集的張量運算。相較于數(shù)據(jù)中心級NPU,邊緣端設(shè)備必須在嚴(yán)苛的功耗與資源限制下保持高效推理能力。為此,新一代邊緣NPU采用了靈活可配置的計算單元架構(gòu),以及動態(tài)功耗管理結(jié)合精度可調(diào)的智能計算策略。
2 基于新型NPU架構(gòu)的加速器設(shè)計
2.1 加速器總體架構(gòu)
針對邊緣計算場景的特殊需求,本文設(shè)計了一種基于ZYNQ-7020的異構(gòu)NPU加速器架構(gòu)。圖1示意了ARM+FPGA異構(gòu)加速器的層級架構(gòu),該架構(gòu)采用ARM+FPGA的異構(gòu)計算模式,充分利用兩種處理器的優(yōu)勢特點。其中,ARM處理器作為系統(tǒng)的中央控制單元,負責(zé)協(xié)調(diào)接口映射、數(shù)據(jù)交互及任務(wù)調(diào)度等核心功能,而FPGA端則集成了包括標(biāo)準(zhǔn)卷積、逐點卷積及上采樣等在內(nèi)的通用計算單元IP核[2]。在數(shù)據(jù)傳輸方面,系統(tǒng)采用“加載—計算—寫回”三級計算通信機制,在ARM處理器端將外部存儲的數(shù)據(jù)流先加載到主存,再經(jīng)由數(shù)據(jù)緩存?zhèn)鬏數(shù)紽PGA片上緩存區(qū),最終以多維數(shù)組形式參與計算任務(wù),有效降低了訪存延遲,提升了整體計算效率。
2.2 流水線并行優(yōu)化設(shè)計
為充分發(fā)揮NPU的并行計算能力,本文采用多級流水線并行優(yōu)化設(shè)計,如圖2所示,通過Xilinx Vitis HLS 2020.2工具將高層算法描述轉(zhuǎn)換為RTL級硬件實現(xiàn)。本設(shè)計采用以下兩種關(guān)鍵優(yōu)化策略:
1) 循環(huán)展開優(yōu)化:針對5×5卷積核的計算,采用pragma HLS unroll指令將原本需要25個時鐘周期的串行運算轉(zhuǎn)化為單周期并行執(zhí)行。
2) 流水線并行優(yōu)化:通過設(shè)置pragma HLS pipeline II=2指令,使得相鄰指令之間能夠在保證數(shù)據(jù)依賴的前提下實現(xiàn)重疊執(zhí)行,有效提升了計算吞吐率。
2.3 計算資源調(diào)度策略
針對異構(gòu)架構(gòu)下的資源調(diào)度問題,本文設(shè)計了一套基于任務(wù)優(yōu)先級的動態(tài)調(diào)度策略。LeNet-5網(wǎng)絡(luò)結(jié)構(gòu)包含卷積層與池化層,其中卷積層需要大量的乘累加運算,而池化層則主要進行比較操作[4]??紤]到ZYNQ-7020的片上資源限制(DSP:220個,LUT:53 200個,BRAM:4.9 MB) ,系統(tǒng)采用層間流水線結(jié)構(gòu)進行并行計算,根據(jù)每層任務(wù)的計算特性與硬件資源利用率,每個時鐘周期動態(tài)分配計算資源。在卷積層執(zhí)行期間,優(yōu)先分配DSP資源以支持大量的乘累加運算,而在池化層計算階段,則主要使用LUT資源進行比較操作。這種細粒度的資源調(diào)度策略使得系統(tǒng)在處理不同類型的神經(jīng)網(wǎng)絡(luò)層時能夠保持較高的硬件利用率。
3 神經(jīng)網(wǎng)絡(luò)加速方法研究與實現(xiàn)
3.1 NPU指令集優(yōu)化
針對邊緣計算場景的神經(jīng)網(wǎng)絡(luò)特點,本文提出基于Vitis HLS的NPU指令集優(yōu)化方案。該方案主要圍繞卷積運算展開,通過對5×5卷積核計算過程的重構(gòu),利用pragma HLS unroll指令將傳統(tǒng)的25個時鐘周期的串行計算轉(zhuǎn)化為單周期并行執(zhí)行。經(jīng)優(yōu)化后,卷積計算的基本過程可表述為:
[output(w,h,m) += input(w+x,h+y,c)×filter(m,x,y,c)] (1)
式中:w與h分別表示輸出特征圖的寬度與高度坐標(biāo),m為輸出通道索引,x與y為卷積核坐標(biāo),c為輸入通道索引,通過指令級優(yōu)化,系統(tǒng)實現(xiàn)了從串行到并行的計算模式轉(zhuǎn)換,顯著提升了NPU的計算效率。經(jīng)測試,該指令集優(yōu)化方案使卷積運算的計算延時降低了約95%,同時DSP資源利用率提升至96.82%。
3.2 數(shù)據(jù)流優(yōu)化與存儲分配
1) 針對神經(jīng)網(wǎng)絡(luò)推理過程中的數(shù)據(jù)訪問特征,本文設(shè)計了一種層間緩存的數(shù)據(jù)流優(yōu)化策略,考慮到ZYNQ-7020平臺的資源限制,系統(tǒng)采用“加載—計算—寫回”三級計算通信機制。2) 通過在PS與PL之間建立高效的數(shù)據(jù)傳輸通道,具體而言,數(shù)據(jù)首先從外部存儲加載至DDR內(nèi)存,隨后經(jīng)由數(shù)據(jù)緩存?zhèn)鬏數(shù)紽PGA片上緩存區(qū),最終以多維數(shù)組形式參與計算[5]。3) 優(yōu)化后的多級緩存結(jié)構(gòu)通過合理的數(shù)據(jù)分塊策略,確保了對片上存儲資源的高效利用。該策略使得系統(tǒng)在處理LeNet-5網(wǎng)絡(luò)時,能夠達到70.36%的BRAM利用率,同時將數(shù)據(jù)傳輸開銷降至最低。上述三級優(yōu)化策略形成了完整的數(shù)據(jù)流水線,通過降低訪存延遲、提高數(shù)據(jù)吞吐率及優(yōu)化資源利用率,實現(xiàn)了數(shù)據(jù)傳輸與計算的高效協(xié)同。
3.3 運算精度優(yōu)化策略
為了在保證推理精度的同時降低計算復(fù)雜度,本文實現(xiàn)了一種動態(tài)精度調(diào)節(jié)機制。通過對LeNet-5網(wǎng)絡(luò)不同層的計算特性分析,采用混合精度量化策略,在關(guān)鍵卷積層保持較高精度計算,而在精度要求相對較低的池化層采用低精度運算。系統(tǒng)支持從32位浮點數(shù)到16位定點數(shù)的靈活轉(zhuǎn)換,采用Vitis Quantizer工具進行定點化處理,量化參數(shù)通過對1000個測試樣本的激活值分布進行統(tǒng)計分析得到。在關(guān)鍵層的計算中,采用均方誤差(MSE) 評估量化效果,結(jié)果顯示量化誤差控制在1%以內(nèi)。經(jīng)過精度優(yōu)化后的系統(tǒng)在保持識別準(zhǔn)確率的同時,功耗僅為傳統(tǒng)GPU平臺的1/8。
4 實驗評估與性能分析
4.1 實驗平臺與評估方法
本研究選擇ZYNQ-7020作為實驗驗證平臺,該平臺集成了ARM處理器與FPGA可編程邏輯,是典型的異構(gòu)計算架構(gòu)代表。實驗采用LeNet-5網(wǎng)絡(luò)作為基準(zhǔn)測試模型,使用MNIST數(shù)據(jù)集進行訓(xùn)練與測試,重點關(guān)注計算性能、資源利用率及功耗效率三個核心指標(biāo)。為確保評估的準(zhǔn)確性,在相同的數(shù)據(jù)規(guī)模與運行環(huán)境下,分別對CPU(Intel i5-12490F) 、GPU(RTX 3060) 及本文提出的NPU加速方案進行對比測試。實驗采用Vitis HLS工具鏈完成從高層算法到RTL實現(xiàn)的轉(zhuǎn)換,通過AXI協(xié)議實現(xiàn)PS端與PL端的高效數(shù)據(jù)交互,功耗測試使用Agilent 34410A高精度萬用表進行采樣記錄,采樣頻率為1 kHz,確保測量數(shù)據(jù)的時序精確性。
4.2 性能對比與分析
為全面評估所提出的NPU加速方案的性能優(yōu)勢,本研究在實驗設(shè)計中采用統(tǒng)一的測試數(shù)據(jù)集與評估標(biāo)準(zhǔn),確保不同平臺間的性能數(shù)據(jù)具有可比性(如表1所示) 。
在同等工作頻率(約1 GHz) 下,CPU單線程與多線程模式分別實現(xiàn)了2.5 GFLOPS與3.8 GFLOPS的吞吐率,采用TensorRT優(yōu)化的GPU方案在絕對推理速度上表現(xiàn)最佳,達到426.8 GFLOPS。本文提出的NPU加速方案在混合精度模式下達到了15.68 GFLOPS,雖然推理速度不及GPU,但其硬件資源利用率顯著提升,DSP與BRAM利用率分別達到98.15%與72.44%,在邊緣計算場景中展現(xiàn)出獨特優(yōu)勢。
4.3 能耗評估結(jié)果
在邊緣計算場景中,能耗效率往往是比計算性能更為關(guān)鍵的指標(biāo)。為系統(tǒng)評估能耗效率,采用以下評價指標(biāo):1) 單次推理能耗(J) = 平均功耗(W) × 推理時間(s);2) 節(jié)能率(%) = (1 - 當(dāng)前方案能耗/CPU單線程能耗) × 100%;3) 能效比(GFLOPS/W) = 吞吐率/平均功耗。為評估本文提出方案的能耗優(yōu)勢,針對不同計算平臺在執(zhí)行相同神經(jīng)網(wǎng)絡(luò)推理任務(wù)時的功耗特性進行系統(tǒng)測試(如表2所示) 。
如表2所示,在相同模型規(guī)模下,CPU多線程相比單線程模式節(jié)能率提升了16.3%。GPU方案雖然功耗高達48 W,但由于其強大的計算能力,實現(xiàn)了最高的能效比9.442 GFLOPS/W。本文提出的NPU加速方案在混合精度模式下,平均功耗僅為5.85 W,較單精度模式(6.21 W) 降低約6%,同時功耗波動控制在7.2%以內(nèi),展現(xiàn)出優(yōu)秀的能效特性,混合精度模式下的能效比達到2.680 GFLOPS/W,相較于單精度模式提升了24%,驗證了精度優(yōu)化策略的有效性。
5 結(jié)束語
本文針對邊緣計算場景下神經(jīng)網(wǎng)絡(luò)高效部署的挑戰(zhàn),提出了一種基于ARM+FPGA的異構(gòu)CNN加速器方案。通過軟硬件協(xié)同設(shè)計,實現(xiàn)了從高層算法到RTL實現(xiàn)的快速映射,并在加速器架構(gòu)與資源調(diào)度等方面進行了系統(tǒng)性創(chuàng)新。實驗結(jié)果表明,該方案在ZYNQ-7020平臺上工作頻率達到130 MHz,在混合精度模式下實現(xiàn)了13.40 GOPS的吞吐率與2.680 GOPS/W的能效比,功耗僅為5.85 W。這些性能指標(biāo)驗證了本文所提出的異構(gòu)加速方案在邊緣計算場景下實現(xiàn)了高效低功耗的神經(jīng)網(wǎng)絡(luò)推理。未來可進一步探索細粒度的片上存儲分配策略與動態(tài)功耗管理機制,將重點研究自適應(yīng)量化算法與多任務(wù)調(diào)度策略,以適應(yīng)更加復(fù)雜的應(yīng)用場景與更大規(guī)模的神經(jīng)網(wǎng)絡(luò)模型。
參考文獻:
[1] 謝志豪,李國剛.軟硬件協(xié)同設(shè)計的異構(gòu)CNN加速器[J].華僑大學(xué)學(xué)報(自然科學(xué)版),2025,46(2):209-216.
[2] 喻緒邦,吳濟文,夏宏,等.嵌入式異構(gòu)智能計算系統(tǒng)的PCIe總線傳輸帶寬優(yōu)化[J/OL].計算機應(yīng)用,2025.[2025-03-31].10.11772/j.issn.1001-9081.2024091299.
[3] 葛培洲,于清玥,宋宇波.異構(gòu)環(huán)境下的聯(lián)邦強化學(xué)習(xí)分布式?jīng)Q策優(yōu)化[J/OL].微電子學(xué)與計算機,2025.[2025-03-31].https://kns.cnki.net/kcms2/article/abstract?v=gPdQxwyUTL9G HOrdijrDhd1wKo8lgyfCj_OT040RkHZ3PuYAANXXELF7CV3l0J RyAq-37KGRAL1KWaBmtbD-lErUIvEJB6GIkDomDbzMDIfSf 2icit-57XYK3Cf1wrC4l6x3Rq-5ELE3ZIXKIvZdbgFGoMzZT4 AYfUw28dAgUag=amp;uniplatform=NZKPT.
[4] 賀鞏山,趙傳磊,蔣金虎,等.面向深度學(xué)習(xí)的數(shù)據(jù)存儲技術(shù)綜述[J/OL].計算機學(xué)報,2025.[2025-03-31].https://kns.cnki.net/kcms2/article/abstract?v=gPdQxwyUTL-7Bla7oEi_8DOQ62 pkou5qmlEm24cD3CQp-wqQPyunCX7_oDOSh0So6yIVDM-qOq HhHN-6zb3sQMNOTbME9v5vxRKyulCisEafXNAXa0mTq4Tt TZKvTWm2OUCZ4GfyC6Ee2O7UmWFXOVmA8082mXAbamp;uniplatform=NZKPT.
[5] 顧蓓蓓,邱霽巖,王寧,等.一種異構(gòu)系統(tǒng)下計算軟件性能數(shù)據(jù)采集方法[J/OL].計算機研究與發(fā)展,2025.[2025-03-31].https://kns.cnki.net/kcms2/article/abstract?v=gPdQxwyUTL-cfByHGGKysCyzImj4bNhBskp3QMG9PGIYAzSfuJ2Mf0RPYfy2eojjRaCkOwEEs5ktQCBw2qP7W3ownftHp4Bz41Rwaa9ROMWB 8jlCEJp6BRHU1bkksuY15g1ncmVbHI_PfgBLfzn9f96a10b1skw-IMD--JdS170=amp;uniplatform=NZKPT.
【通聯(lián)編輯:謝媛媛】