999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

NN-EdgeBuilder:面向邊緣端設(shè)備的高性能神經(jīng)網(wǎng)絡(luò)推理框架

2023-10-17 01:14:58張經(jīng)緯曹新野
電子與信息學(xué)報 2023年9期
關(guān)鍵詞:設(shè)計

張 萌 張 雨 張經(jīng)緯 曹新野 李 鶴

(東南大學(xué)電子科學(xué)與工程學(xué)院 南京 210096)

1 引言

隨著物聯(lián)網(wǎng)(Internet of Things, IoT)和人工智能行業(yè)的發(fā)展,神經(jīng)網(wǎng)絡(luò)在許多應(yīng)用場景中的性能已超越傳統(tǒng)算法[1,2]。FPGA具有高度可編程性,可以滿足應(yīng)用場景中的延遲、功耗等要求,因此FPGA已成為部署神經(jīng)網(wǎng)絡(luò)的流行平臺之一[3–5]。目前只有豐富設(shè)計經(jīng)驗的硬件研究人員才能在目標(biāo)平臺上部署滿足性能目標(biāo)的神經(jīng)網(wǎng)絡(luò)加速器,這阻礙了神經(jīng)網(wǎng)絡(luò)的進(jìn)一步發(fā)展。于是各種神經(jīng)網(wǎng)絡(luò)前向推理框架不斷涌現(xiàn)[6–9],可以解析神經(jīng)網(wǎng)絡(luò)算法的高級描述,捕獲網(wǎng)絡(luò)的結(jié)構(gòu)等關(guān)鍵信息,然后自動映射為目標(biāo)平臺的硬件描述。

但是目前主流的神經(jīng)網(wǎng)絡(luò)推理框架還沒有充分考慮到在邊緣端FPGA計算資源有限的情況下,高效地探索設(shè)計空間,平衡好資源占用和性能表現(xiàn),主要還存在下列不足:(1) 很少考慮在邊緣端設(shè)備計算資源十分有限的情況下,為神經(jīng)網(wǎng)絡(luò)定制高效的硬件加速算子,提高資源利用率和性能表現(xiàn)。(2) 忽略了對設(shè)計空間探索(Design Space Exploration, DSE)算法的優(yōu)化,常規(guī)的啟發(fā)式算法對超參數(shù)的設(shè)置十分敏感,需要多次的實(shí)驗嘗試不同的初始參數(shù)。

為了應(yīng)對上述的挑戰(zhàn),本文設(shè)計能夠在邊緣端FPGA上高效部署神經(jīng)網(wǎng)絡(luò)的推理框架NN-Edge-Builder,主要貢獻(xiàn)如下:

(1) 設(shè)計一個基于數(shù)據(jù)流結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)推理框架NN-EdgeBuilder,讓神經(jīng)網(wǎng)絡(luò)算法領(lǐng)域內(nèi)的研究人員不需要掌握深厚的硬件加速器設(shè)計經(jīng)驗,也可以快速地驗證自己設(shè)計的網(wǎng)絡(luò)模塊的硬件性能,提高FPGA在神經(jīng)網(wǎng)絡(luò)生態(tài)中的適用性。

(2) 設(shè)計了高效的量化模塊,既支持量化感知訓(xùn)練,又支持訓(xùn)練后量化,能夠最大限度地保證神經(jīng)網(wǎng)絡(luò)的精度。

(3) 開發(fā)了通用且高性能的硬件加速算子庫,將網(wǎng)絡(luò)中計算量最大的Conv和FC層映射到Conv/FC層通用計算單元來適應(yīng)不同的量化位寬和資源限制。

(4) 設(shè)計了一個基于多目標(biāo)貝葉斯優(yōu)化的設(shè)計空間探索算法,使用具有混合核函數(shù)的高斯過程作為代理模型可以有效地提取混合設(shè)計空間的信息,使用帶約束的多目標(biāo)采集函數(shù)來處理邊緣端FPGA的資源限制,可以高效地搜索出滿足要求的設(shè)計點(diǎn)。

本文其余安排如下:第2節(jié)介紹推理框架NNEdgeBuilder的總體架構(gòu)和Conv/FC層通用計算單元;第3節(jié)介紹專為NN-EdgeBuilder定制的設(shè)計空間探索算法;第4節(jié)將討論我們使用NN-Edge-Builder部署神經(jīng)網(wǎng)絡(luò)模型的實(shí)驗結(jié)果;第5節(jié)給出結(jié)論。

2 神經(jīng)網(wǎng)絡(luò)推理框架NN-EdgeBuilder的設(shè)計

2.1 推理框架NN-EdgeBuilder的部署流程

本文設(shè)計的神經(jīng)網(wǎng)絡(luò)推理框架NN-EdgeBuilder能夠在邊緣端FPGA平臺上自動部署神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)檢測精度,推理速度和關(guān)鍵資源占用等性能指標(biāo)的平衡。圖1虛線框中的部分展示了NN-Edge-Builder的部署網(wǎng)絡(luò)模型的完整流程,主要包含網(wǎng)絡(luò)模型解析,設(shè)計空間探索和調(diào)用硬件加速算子這3個階段,具體流程如下:首先網(wǎng)絡(luò)模型解析模塊會解析已經(jīng)訓(xùn)練好的模型,提取推理階段網(wǎng)絡(luò)每層所需的信息,刪除冗余信息,接著會進(jìn)一步配置網(wǎng)絡(luò)的通用信息,如每層的量化位寬和并行度因子等信息,最后會配置每層的專用信息,如確定每層使用的硬件加速算子等,解析完網(wǎng)絡(luò)模型之后會輸出完整的計算圖。

圖1 推理框架NN-EdgeBuilder部署網(wǎng)絡(luò)模型的流程

設(shè)計空間探索階段使用了第3節(jié)設(shè)計的基于多目標(biāo)貝葉斯優(yōu)化的設(shè)計空間探索算法,可以探索網(wǎng)絡(luò)任意層的輸出位寬和并行度因子,每次迭代并通過采集函數(shù)確定下一個采樣點(diǎn),然后調(diào)用EDA工具流得到準(zhǔn)確的目標(biāo)函數(shù)值,并以此更新數(shù)據(jù)集和代理模型,直到滿足停止條件,輸出帕累托前沿設(shè)計點(diǎn)。

硬件加速算子庫為推理框架支持的所有網(wǎng)絡(luò)模塊都設(shè)計了對應(yīng)的加速算子,通過計算圖連接成一個完整的加速器。針對邊緣端FPGA資源有限的現(xiàn)狀,本文設(shè)計了低推理延遲和低資源占用的FC/Conv層通用計算單元。NN-EdgeBuilder有兩種格式的輸出:第1種是可以導(dǎo)出加速器的IP并將其集成到更大的設(shè)計中。第2種則是生成加速器的比特流,可以直接部署到硬件平臺上。

為了能夠最大限度地保持推理框架部署加速器的精度,NN-EdgeBuilder的量化模塊包含兩個子模塊,分別支持量化感知訓(xùn)練(Quantization-Aware Training, QAT)[8]和訓(xùn)練后量化(Post-Training Quantization, PTQ)[10]。量化感知訓(xùn)練子模塊可以解析經(jīng)過量化感知訓(xùn)練的網(wǎng)絡(luò)層,保留其量化配置并固定到計算圖中,在設(shè)計空間探索階段這些網(wǎng)絡(luò)層的權(quán)重位寬保持不變,以此利用量化感知訓(xùn)練精度高的特點(diǎn)。訓(xùn)練后量化子模塊主要針對推理過程中網(wǎng)絡(luò)每層的輸出位寬量化,由于在保持精度的情況下網(wǎng)絡(luò)的某些層能夠進(jìn)行更低比特的量化,所以訓(xùn)練后量化子模塊采用異構(gòu)量化,能夠在低硬件資源占用的情況下實(shí)現(xiàn)高精度。網(wǎng)絡(luò)每層的輸出量化位寬由設(shè)計空間探索模塊給出,可以細(xì)粒度地探索網(wǎng)絡(luò)每層的輸出量化位寬,來達(dá)到加速器的最優(yōu)性能表現(xiàn)。

NN-EdgeBuilder生成的是數(shù)據(jù)流結(jié)構(gòu)的加速器,會為網(wǎng)絡(luò)的每一層都例化單獨(dú)的硬件模塊,每一層都會例化單獨(dú)的緩存器(Buffer)以及基本運(yùn)算單元(Multiply ACcumulate, MAC),所以每個部分的量化位寬會不一樣,對于后續(xù)硬件生成的緩存器以及MAC沒有影響。圖2為推理框架NN-EdgeBuilder部署加速器時的量化流程,其中 IW為輸入數(shù)據(jù)的量化位寬,QW和QB是量化感知訓(xùn)練階段網(wǎng)絡(luò)權(quán)重和偏置的量化位寬,O W是訓(xùn)練后量化階段計算層的輸出位寬,QA是量化感知訓(xùn)練階段激活層的輸出位寬。量化的整體流程如下:首先量化位寬為IW的輸入數(shù)據(jù)進(jìn)入計算模塊,與位寬為QW和QB的權(quán)重和偏置進(jìn)行計算,得到輸出位寬為O W1的中間結(jié)果,接著將其送入激活層,得到輸出位寬為QA的中間結(jié)果,然后就可以進(jìn)行下一層的運(yùn)算。

圖2 量化模塊運(yùn)行流程

2.2 FC/Conv層通用計算單元

為了能夠更好地在資源有限的邊緣端FPGA上部署神經(jīng)網(wǎng)絡(luò),本文設(shè)計了低延遲,低資源占用的硬件加速算子庫。由于Conv層和FC層占據(jù)了網(wǎng)絡(luò)的絕大部分參數(shù)量和計算量,接下來重點(diǎn)介紹本文設(shè)計的FC層和Conv層通用計算單元,可以利用通用計算單元(GEneral Matrix Multiplication,GEMM)來加速FC層和Conv層。如圖3所示,由于本文實(shí)現(xiàn)了全片上推理,所以可以直接從Block RAM(BRAM)中加載卷積權(quán)重和偏置,只需要從外部存儲器讀取輸入數(shù)據(jù),數(shù)據(jù)流格式的中間計算結(jié)果不需要傳輸?shù)狡獯鎯ζ髦袝捍妫梢灾苯觽鬟f給下一層。將網(wǎng)絡(luò)權(quán)重加載到Weight Buffer之后,就可以送入通用計算單元。可以考慮對網(wǎng)絡(luò)進(jìn)行更低比特的量化來降低存儲空間需求,或者設(shè)計更加輕量化的網(wǎng)絡(luò)來完成任務(wù)。

圖3 FC/Conv通用計算單元

在開始計算之前,需要根據(jù)運(yùn)算類型對Input的數(shù)據(jù)進(jìn)行調(diào)整,因為FC層的輸入尺寸較小,所以只需要根據(jù)輸入輸出尺寸進(jìn)行分塊并存入到FC_Input Buffer中即可。而Conv層輸入尺寸較大且有復(fù)雜的數(shù)據(jù)復(fù)用,所以需要將Input中的數(shù)據(jù)先緩存到Line Buffer中,調(diào)整數(shù)據(jù)排列方式,再傳輸?shù)絊W (Sliding Window) Buffer中,以此來實(shí)現(xiàn)流水線運(yùn)算和輸入數(shù)據(jù)復(fù)用。接著將準(zhǔn)備好的數(shù)據(jù)送入到通用計算單元進(jìn)行運(yùn)算,接著將計算結(jié)果按FC運(yùn)算和Conv運(yùn)算分別處理,將計算得到的部分結(jié)果對應(yīng)相加并暫存到Accum Buffer中,最終將完整的輸出結(jié)果傳輸?shù)絆utput Buffer中,然后直接送到下一層網(wǎng)絡(luò)模塊中繼續(xù)進(jìn)行計算。以FC運(yùn)算為例,假設(shè)輸入的尺寸為 2CI ,當(dāng)FC層例化了C I個MAC運(yùn)算單元時,流水線計算過程如下:首先在T=1時 , C I 個通道的輸入x1~xCI和神經(jīng)元參數(shù)w1~wCI并行計算得到C I 個部分結(jié)果mi~mCI,并且還將偏置b1加載到Accun Buffer中。同理在T=2 時,再次得到部分計算結(jié)果mCI+1~m2CI,并將T=1時 刻計算得到的m1~mCI累加到A cc1中。

通用計算單元由MAC陣列組成,通過3.1節(jié)中介紹的并行度因子控制實(shí)例化的MAC數(shù)量[11],來決定每一層運(yùn)算中MAC使用的次數(shù)。如果對輸入和權(quán)重都進(jìn)行了量化,推理框架NN-EdgeBuilder可以使用查找表(LUT)來實(shí)現(xiàn)部分的低位寬乘法來節(jié)約DSP資源。NN-EdgeBuilder生成的是數(shù)據(jù)流結(jié)構(gòu)的加速器,加速器的延遲取決于計算延遲最大的層,所以需要探索每一層的并行度,根據(jù)每層的計算量來分配計算資源,實(shí)現(xiàn)每一層延遲的均衡。

算法1為全連接運(yùn)算循環(huán)嵌套流程,通常在計算全連接層時會將輸入展平為1維向量,即輸入向量維度為 CI ,輸出向量維度為C O,所以得到一個全連接層輸出像素點(diǎn)需要兩層循環(huán)。本文將FC層的輸出維度Loop2展開,實(shí)現(xiàn)了輸入數(shù)據(jù)復(fù)用,即在一個周期內(nèi)輸入像素點(diǎn)固定,同時和所有輸出維度對應(yīng)的神經(jīng)元相乘。本文針對輸入較小的FC層,使用數(shù)組分割指令將FC層的輸入數(shù)組完全分割到獨(dú)立的寄存器中,以此實(shí)現(xiàn)在一個時鐘周期內(nèi)訪問所有的輸入。理想狀態(tài)下經(jīng)過C I個周期就可得到完整的輸出結(jié)果。

卷積運(yùn)算的循環(huán)嵌套流程算法2所示,得到一個卷積層輸出像素點(diǎn)需要6層循環(huán),針對輸入特征圖尺寸較大的Conv層,如果將特征圖和權(quán)重參數(shù)全部展開并堆疊成矩陣形式,會占用邊緣端FPGA大量的硬件資源。

為了獲得最快的卷積運(yùn)算速度,本文將Loop3~Loop6展開,即實(shí)現(xiàn)了卷積核維度的展開,輸入通道維度的展開和輸出通道維度的展開,整體的并行度為 CO×CI×HF×WF ,在每個周期內(nèi)輸出CO個像素點(diǎn),對應(yīng)著輸出特征圖的同一位置。與FC層一樣,Conv層也復(fù)用了輸入特征圖的像素點(diǎn),這樣就可以實(shí)現(xiàn)和FC層共用相同的矩陣向量運(yùn)算單元。

算法1 全連接運(yùn)算循環(huán)嵌套

2.3 Line Buffer和Sliding Window Buffer設(shè)計

為了提高輸入數(shù)據(jù)處理速度并節(jié)省硬件資源,本文設(shè)計了Line Buffer和SW Buffer來緩存輸入特征圖[12],假設(shè)輸入特征圖的尺寸為 H I×WI×CI,卷積核尺寸為 HF×WF×CI×CO,則Line Buffer的尺寸為 (HF-1)×WI×CI,SW Buffer尺寸為HF×WF×CI。

由于對輸入特征圖每個通道的處理是相同的,所以為了簡潔地說明,圖4展示了 CI=1的情況,如圖4(a)所示,輸入特征圖尺寸為HI×WI=5×5 ,卷積核尺寸H F×WF=3×3,所以Line Buffer的尺寸為( HF-1)×WI=2×5,SW Buffer尺寸為 H F×WF=3×3。如圖4(b)和圖4(c)所示,在T時刻,新的輸入像素點(diǎn)x3被壓入Line Buffer和SW Buffer的第1行,Line Buffer第1行最先壓入的像素點(diǎn)x2被移動到Line Buffer和SW Buffer的第2行,最后是Line Buffer第2行最先壓入的像素點(diǎn)x1被 彈出,并壓入到SW Buffer的第3行。所以T時刻同一列的3個像素點(diǎn)x1,x2,x3被傳入到SW Buffer中,此時SW Buffer是被填滿的,所以會將整個SW Buffer的像素點(diǎn)送入運(yùn)算單元進(jìn)行一組并行的卷積運(yùn)算。同理,如圖4(d)、圖4(e)和圖4(f)所示,T+1 時 刻同一列的3個像素點(diǎn)x4,x5,x6被傳入SW Buffer中,并再次進(jìn)行卷積運(yùn)算。綜上分析可得x1,x2,x3一共被復(fù)用了3次。從圖4(a)和圖4(d)可以看出,Line Buffer相當(dāng)于是在輸入特征圖上滑動,每次滑動Line Buffer的每行都會壓入新的像素點(diǎn),且將Line Buffer最后一個像素點(diǎn)彈出,這樣Line Buffer每次滑動時彈出和壓入的像素點(diǎn)正好就是卷積運(yùn)算所需的一列數(shù)據(jù)。

圖4 Line_buffer工作流程

3 基于多目標(biāo)貝葉斯優(yōu)化的設(shè)計空間探索算法設(shè)計

3.1 NN-EdgeBuilder的參數(shù)空間

不同推理框架能夠提供不同程度的設(shè)計自由度,這些自由度構(gòu)成了推理框架的參數(shù)空間,提供了靈活部署神經(jīng)網(wǎng)絡(luò)的能力。NN-EdgeBuilder是基于數(shù)據(jù)流結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)推理框架,將網(wǎng)絡(luò)每一層的關(guān)鍵信息映射成計算圖上的節(jié)點(diǎn),通過并行度因子(Parallelism Factor, PF)控制每一層網(wǎng)絡(luò)例化的基本計算單元的數(shù)量,以此來調(diào)節(jié)并行度。

算法2 卷積運(yùn)算循環(huán)嵌套

并行度因子 PF通 過控制MAC實(shí)例化的數(shù)量來決定計算層中單個MAC單元使用的次數(shù)。如圖5所示,輸入向量的維度為 1 ×M,神經(jīng)元參數(shù)矩陣維度為M×N,當(dāng)并行度因子P F=1時會針對每一個乘法實(shí)例化相應(yīng)的MAC單元,則共有M×N個MAC單元,實(shí)現(xiàn)了完全并行計算。當(dāng)并行度因子PF=α?xí)r,需要實(shí)例化 c eil(M×N/α)個MAC單元。在推理框架NN-EdgeBuilder中量化能夠在保持精度的情況下更顯著地降低DSP資源利用率,并且支持任意定點(diǎn)數(shù)精度。

圖5 并行度因子控制MAC數(shù)量

綜上所述,本文選擇將網(wǎng)絡(luò)每一層的并行度因子和輸出位寬作為推理框架的設(shè)計空間,參數(shù)空間的細(xì)粒度是可調(diào)節(jié)的,可以先固定任意層的并行度和量化位寬,然后探索剩余網(wǎng)絡(luò)層的參數(shù)空間,以此來加快探索速度并降低計算資源占用,在滿足硬件資源的限制下實(shí)現(xiàn)精度和推理速度等指標(biāo)的平衡。

3.2 具有混合核函數(shù)的高斯過程回歸

貝葉斯優(yōu)化使用概率模型來擬合目標(biāo)函數(shù),因為高斯過程的計算代價相對較小,還可以計算每個設(shè)計點(diǎn)的不確定度,所以高斯過程是應(yīng)用最廣泛的代理模型之一[13]。假設(shè)已經(jīng)獲得的數(shù)據(jù)集共有J個神經(jīng)網(wǎng)絡(luò)推理框架得到的樣本,記為D=(X,Y),其中X=[x1,x2,...,xJ]T是J個已經(jīng)采樣過的設(shè)計點(diǎn),Y=[y1,y2,...,yJ]T是對應(yīng)的目標(biāo)性能輸出,其中y表示待優(yōu)化的黑盒函數(shù),記為y=φ(x)。假設(shè)φ(x)服 從高斯過程,則可以表示為式(1),其中u(x)代表均值函數(shù),K(x,x)代表核函數(shù)。

高斯過程利用核函數(shù)來提取不同設(shè)計點(diǎn)之間的相似性,所以核函數(shù)是決定高斯過程代理模型性能的關(guān)鍵,NN-EdgeBuilder的參數(shù)空間為網(wǎng)絡(luò)每一層的并行度因子和輸出位寬,其中并行度因子為整數(shù),而輸出位寬表示為 ,并非數(shù)值變量。本文將輸出位寬視為類別變量,所以設(shè)計空間為組合空間[14],令I(lǐng)代表整數(shù)空間,C代表類別空間,所以推理框架NN-EdgeBuilder整體的設(shè)計空間F由兩者組合而成,記為F=[I,C]。

本文針對組合空間構(gòu)建了具有混合核函數(shù)的高斯過程G PM,可以充分地提取組合空間中采樣點(diǎn)的相似性。首先使用Matáern核函數(shù)來度量并行度因子這樣的數(shù)值變量,如式(2)所示,其中Kυ第2類修正貝塞爾函數(shù),Γ是伽馬函數(shù),l是長度范圍,可以通過調(diào)整υ來控制核函數(shù)的平滑程度,本文取值為2.5,來更好地逼近真實(shí)目標(biāo)值

因為Hamming距離可以有效地度量類別參數(shù)之間的距離,所以本文使用基于Hamming距離的加權(quán)核函數(shù)來提取不同輸出位寬之間的相似性[14],如式(3)所示,其中αj為權(quán)重超參數(shù),本文取值為1。 當(dāng)x1,j=x2,j時 ,δ(x1,j,x2,j)=1 ,當(dāng)x1,j ?=x2,j時,δ(x1,j,x2,j)=0

綜上,針對由并行度因子和輸出位寬構(gòu)成的組合設(shè)計空間,本文使用了如式(4)所示混合核函數(shù)KMixed(x1,x2)來提升高斯過程擬合目標(biāo)函數(shù)的效率,其中Kcons(x1,x2) 為常量核函數(shù), L為常量,KN(x1,x2)為白噪聲

3.3 帶約束多目標(biāo)優(yōu)化采集函數(shù)

在貝葉斯優(yōu)化算法中采集函數(shù)負(fù)責(zé)確定下一個采樣點(diǎn)的位置,來高效逼近最優(yōu)的目標(biāo)函數(shù)值,目前流行的采集函數(shù)之一是期望改進(jìn)(Expected Improvement, EI)及其多種變體[15],可以結(jié)合已經(jīng)探測得到高確信度的區(qū)域和還沒有充分開發(fā)的區(qū)域的信息,實(shí)現(xiàn)了搜索和利用兩者之間的平衡。

對于帶約束的多目標(biāo)優(yōu)化問題,假設(shè)共有M個目標(biāo)函數(shù)φ(x)={φ1(x),φ2(x),...,φM(x)}和N個約束 條 件C(x)={c1(x),c2(x),...,cN(x)},且φi(x)和ci(x)都滿足高斯過程,則多目標(biāo)優(yōu)化問題可以表示為式(5)所示。

超體積(HyperVolume,HV)是衡量多目標(biāo)優(yōu)化常用的指標(biāo)[16],以參考點(diǎn)yref為界,超體積是由非支配解集組成的目標(biāo)空間的體積,記P(V)為帕累托前沿。可以通過帕累托邊界上的點(diǎn)P(V)將目標(biāo)空間分塊,使用分段積分來計算期望的超體積改進(jìn)量(Expected HyperVolume Improvement, EHVI),期望的超體積改進(jìn)積分是非支配采樣點(diǎn)集合的超體積改進(jìn)分段積分之和。如式(6)所示,其中非支配解集Pn內(nèi)的設(shè)計點(diǎn)不被任何帕累托前沿上的點(diǎn)P(V)支 配,Pn={p ∈Pn:?y ∈p,y′∈P(V),y′y},P

φx(y)是目標(biāo)函數(shù)預(yù)測分布的概率密度函數(shù)。

NN-EdgeBuilder需要在滿足邊緣端FPGA硬件資源限制的條件下自動部署網(wǎng)絡(luò)模型,常規(guī)的EHVI沒有考慮有約束多目標(biāo)優(yōu)化問題,所以本文使用改進(jìn)后的EHVI函數(shù),只有在采樣點(diǎn)滿足約束時才會計算EHVI,改進(jìn)后的采集函數(shù)命名為EHVIC[17]。目標(biāo)函數(shù)和約束條件都是計算代價不菲的黑盒函數(shù),優(yōu)化后的采集函數(shù)由兩部分組成,第1部分是針對目標(biāo)函數(shù)的超體積改進(jìn)量,第2部分則是滿足約束的期望C S(p),如式(7)所示

由于是C S(p)是在每個單元格內(nèi)定義的,所以邊界為輸入x,記為x={x ∈F:y ∈p},考慮到約束滿足高斯過程,可以使用目標(biāo)函數(shù)后驗分布的采樣點(diǎn)來擬合 Pr(c(x)≤0) 。選擇滿足(x|y ∈p) 標(biāo)準(zhǔn)的后驗采樣點(diǎn),并使用Monte-Carlo采樣方法來求解 C S(p),所以EHVIC采集函數(shù)的計算如式(8)所示

為了能更快地找到可行解,讓高斯過程更專注于利用可行域的信息,不滿足要求的點(diǎn)不會用于帕累托集的計算。在多目標(biāo)貝葉斯優(yōu)化每次迭代過程中,都是通過最大化EHVIC函數(shù)在設(shè)計空間F中確定下一次采樣點(diǎn),如式(9)所示

神經(jīng)網(wǎng)絡(luò)加速器的核心指標(biāo)包含檢測精度和推理速度、資源占用等,這些指標(biāo)往往相互沖突,很難同時達(dá)到最優(yōu)。其中邊緣端FPGA的硬件資源既可以作為約束條件又可以作為優(yōu)化目標(biāo),例如可以將資源緊張的DSP和LUT作為優(yōu)化目標(biāo),而將其他資源作為約束條件,這樣可以探索性能表現(xiàn)的平衡點(diǎn)。

本文提出了基于多目標(biāo)貝葉斯優(yōu)化的推理框架設(shè)計空間探索算法,具體流程如算法3所示,首先在設(shè)計空間內(nèi)采樣,運(yùn)行EDA工具流得到初始的性能表現(xiàn)樣本集Dφ=(X,Y)和硬件資源約束條件集DC={C(x)}。接著在每一次迭代過程中,首先根據(jù)樣本集Dφ和約束集DC更新代理模型G PM。接著算出非支配域內(nèi)的期望超體積改進(jìn)量E HVI(x)和滿足約束的期望C S(p),進(jìn)一步算出帶約束的采集函數(shù) E HVIC(x), 然后通過最大化E HVIC(x),選擇下一個參數(shù)配置點(diǎn)xJ+1。得到新的配置點(diǎn)之后繼續(xù)運(yùn)行EDA工具得到真實(shí)的性能表現(xiàn)函數(shù)值φ(xJ+1)和硬件約束C(xJ+1)。最后更新數(shù)據(jù)集和約束集并進(jìn)行下一次迭代。迭代的停止條件可以根據(jù)實(shí)際場景的需要來選擇,如設(shè)計空間探索的最大時間,參考帕累托前沿的ADRS等,最終輸出加速器精度和推理速度平衡的帕累托前沿設(shè)計點(diǎn)。

算法3 貝葉斯優(yōu)化算法流程

4 實(shí)驗結(jié)果及分析

為了驗證NN-EdgeBuilder自動部署的加速器的性能,針對大疆(DJI)無人機(jī)小目標(biāo)檢測數(shù)據(jù)集,本文使用NN-EdgeBuilder部署UltraNet網(wǎng)絡(luò)。為了提高生成的UltraNet網(wǎng)絡(luò)加速器的性能,本文使用量化感知訓(xùn)練,位寬設(shè)置為4 bit,并通過數(shù)據(jù)增強(qiáng),重參數(shù)化等優(yōu)化策略,在不改變UltraNet推理階段參數(shù)量和計算量的情況下將精度提升到了0.703。網(wǎng)絡(luò)訓(xùn)練完成之后,就可以使用NN-Edge-Builder將其自動部署在邊緣端Ultra96-V2 FPGA上,工作頻率為250 MHz。NN-EdgeBuilder通過設(shè)計空間探索給出2個帕累托設(shè)計點(diǎn),分別記為P1和P2點(diǎn),然后可以部署到Ultra96-V2開發(fā)板上來測試結(jié)果。

本文將NN-EdgeBuilder經(jīng)過設(shè)計空間探索得到的UltraNet-P1和UltraNet-P2加速器與專用加速器SEUer和ultrateam進(jìn)行對比,表1為4個加速器分別處理5.25×104張圖片的性能表現(xiàn),對每一個加速器,循環(huán)測試5次取各個指標(biāo)的均值。

表1 UltraNet加速器性能對比

UltraNet-P1加速器每秒處理圖片的數(shù)量比ultrateam加速器少159幀,但是UltraNet-P1使用了高性能的硬件加速算子,處理5.25×104張圖片的功耗僅為30.2 J,功耗比ultrateam降低了25.06%。UltraNet-P1擁有最高的能效比,其每瓦特每秒的運(yùn)行數(shù)達(dá)3.199×1011次,比ultrateam提升了33.46%。

UltraNet-P2加速器實(shí)現(xiàn)了檢測精度和推理速度的平衡,UltraNet-P2的IOU和SEUer相同,都是0.703,其余性能指標(biāo)均優(yōu)于SEUer,其中推理速度提升了70FPS,功耗表現(xiàn)提升了10.08%,能效比提升了11.25%。

UltraNet-P1和UltraNet-P2優(yōu)秀的性能表現(xiàn)證明了推理框架NN-EdgeBuilder能夠有效地將網(wǎng)絡(luò)模型映射為高性能的硬件加速算子,再通過充分的設(shè)計空間探索,生成性能優(yōu)異的神經(jīng)網(wǎng)絡(luò)加速器。

從表2可以看出目前主流推理框架支持的深度學(xué)習(xí)框架數(shù)量有限,如DNNBuilder只支持Caffe框架,而NN-EdgeBuilder 的擴(kuò)展性更強(qiáng),能夠高效地解析主流深度學(xué)習(xí)框架設(shè)計的網(wǎng)絡(luò)模型,如PyTorch和TensorFlow。表2還對比了NN-Edge-Builder和其他推理框架部署VGG網(wǎng)絡(luò)的性能表現(xiàn),目前主流的推理框架支持的量化精度通常在8 bit及以上,對低比特量化沒有很好的支持,而NN-EdgeBuilder支持量化感知訓(xùn)練,所以可以進(jìn)行4 bit量化并保持網(wǎng)絡(luò)精度。NN-EdgeBuilder的硬件加速算子庫提供了低延遲低功耗的算子和高性能的DSE算法,所以針對相同的FPGA平臺,NNEdgeBuilder 生成的VGG加速器計算性能是Deep-Burning-SEG的兩倍。由于DNNBuilder在硬件資源更豐富的平臺上部署,并且對VGG進(jìn)行了剪枝,所以生成的加速器計算性能超過了NN-EdgeBuilder。但是NN-EdgeBuilder主要針對邊緣端FPGA進(jìn)行優(yōu)化,考慮了低功耗和低資源占用,所以生成的加速器能效比是DNNBuilder的4.4倍,DSP的計算效率提升了50.65%。所以與目前主流的推理框架相比,NN-EdgeBuilder針對邊緣端FPGA生成的加速器解決方案實(shí)現(xiàn)了明顯的性能提升。

表2 NN-EdgeBuilder和其他推理框架部署VGG網(wǎng)絡(luò)的性能對比

5 結(jié)束語

目前將神經(jīng)網(wǎng)絡(luò)部署在FPGA平臺還面臨開發(fā)時間長、性能優(yōu)化難等問題,本文設(shè)計了神經(jīng)網(wǎng)絡(luò)推理框架NN-EdgeBuilder,提供了高性能的基于多目標(biāo)貝葉斯優(yōu)化的設(shè)計空間探索算法和低延遲低功耗的硬件加速算子,能夠加速開發(fā)對邊緣端FPGA友好的神經(jīng)網(wǎng)絡(luò)硬件加速器,生成的加速器比目前主流的推理框架有顯著的性能提升。

猜你喜歡
設(shè)計
二十四節(jié)氣在平面廣告設(shè)計中的應(yīng)用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設(shè)計的守護(hù)之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統(tǒng)設(shè)計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設(shè)計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發(fā)生器仿真設(shè)計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設(shè)計萌到家
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設(shè)計到“設(shè)計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 亚洲第一成年免费网站| 秋霞一区二区三区| 人妻无码中文字幕第一区| 欧美精品啪啪一区二区三区| 永久免费精品视频| 婷婷激情五月网| 亚洲an第二区国产精品| 午夜激情福利视频| 伊人激情综合网| 国产在线八区| 操国产美女| 黄色网站在线观看无码| 亚洲狼网站狼狼鲁亚洲下载| 午夜福利网址| a级免费视频| 国产性精品| 天堂成人av| 免费观看国产小粉嫩喷水| AV网站中文| 国产精品任我爽爆在线播放6080 | 亚洲中文制服丝袜欧美精品| 国产三区二区| 国产人免费人成免费视频| 久久青草视频| 99在线观看精品视频| 爱爱影院18禁免费| 97国产成人无码精品久久久| 在线色综合| 最新国产麻豆aⅴ精品无| 亚洲三级视频在线观看| 日韩午夜伦| 米奇精品一区二区三区| 国内精品91| 亚洲一区二区三区香蕉| 少妇精品在线| 精品人妻一区二区三区蜜桃AⅤ | 天天干天天色综合网| 久久人人妻人人爽人人卡片av| 国产亚洲精品自在久久不卡 | 久久永久免费人妻精品| 91久草视频| 国产毛片不卡| 青青国产视频| 日本手机在线视频| 91视频精品| 四虎影视无码永久免费观看| 2021国产精品自产拍在线| 免费一极毛片| 亚洲精品波多野结衣| 国产精品成人免费视频99| 很黄的网站在线观看| 亚洲欧洲免费视频| 欧美日韩第三页| 超级碰免费视频91| 午夜精品福利影院| 一级全黄毛片| 国产精彩视频在线观看| 亚洲第一香蕉视频| 国产福利微拍精品一区二区| 欧美日本在线播放| 亚洲av成人无码网站在线观看| 中文字幕亚洲综久久2021| 国产制服丝袜无码视频| 在线看片中文字幕| 伊伊人成亚洲综合人网7777| 免费不卡视频| 免费看久久精品99| 亚洲高清资源| 中文无码精品a∨在线观看| 国产欧美在线观看精品一区污| 亚洲最猛黑人xxxx黑人猛交| 18禁不卡免费网站| 国产jizzjizz视频| 国产精品一区二区无码免费看片| 亚洲国产中文精品va在线播放 | 亚洲av综合网| 亚洲中文字幕国产av| 麻豆精品视频在线原创| 波多野结衣国产精品| 国产91丝袜在线播放动漫| 91久久青青草原精品国产| 黑人巨大精品欧美一区二区区|