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

輕量級卷積神經(jīng)網(wǎng)絡的硬件加速方法

2024-03-21 01:58:24呂文浩支小莉童維勤
計算機工程與設計 2024年3期

呂文浩,支小莉,2+,童維勤,2

(1.上海大學 計算機工程與科學學院,上海 200444;2.上海智能計算系統(tǒng)工程技術研究中心 研發(fā)部,上海 200444)

0 引 言

過去幾年間,卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)的應用范圍從服務器集群上的圖像處理服務逐漸擴展到了對延遲更敏感的邊緣端實時應用[1,2]中。為了能夠適配資源受限的計算環(huán)境,輕量級CNN[2]往往會成為這類應用的最優(yōu)選擇。

目前,關于輕量級CNN的硬件加速方法的研究工作還比較少,大致可分為兩類。一類是優(yōu)化深度可分離卷積等不便于硬件部署的輕量級操作,Yifan等使用1×1卷積和移位操作代替了深度可分離卷積[3];另一類是保留模型完整結構的同時優(yōu)化計算單元的架構設計,Di等為深度可分離卷積和標準卷積設計了兩個專用計算單元來提高計算效率[4],Ming等設計了加速架構SparkNoC,將所有層以流水線的方式同步部署到現(xiàn)場可編程門陣列(field programmable gate array,F(xiàn)PGA)上[5]。

但關于輕量級CNN的硬件加速方案主要的目標依然是根據(jù)網(wǎng)絡結構特性對硬件架構進行針對性的優(yōu)化,沒有很好地結合軟件進行協(xié)同優(yōu)化,在模型修改靈活性和模型性能改善方面尚有很大研究空間,基于軟硬件協(xié)同優(yōu)化思想設計的輕量級CNN的硬件加速方法研究尚不成熟。Lu等以軟硬件協(xié)同優(yōu)化的方法設計了FPGA加速器,將移位量化算法與FPGA相結合[6],但是他們提出的架構是基于傳統(tǒng)CNN模型進行設計的,對于輕量級卷積神經(jīng)網(wǎng)絡模型則無法適用。

因此,本文選擇最典型的輕量級卷積神經(jīng)網(wǎng)絡MobileNetV2[7]作為目標模型,以軟硬件協(xié)同優(yōu)化為指導思想,針對基于輕量級卷積神經(jīng)網(wǎng)絡的FPGA加速策略展開了研究。本文的貢獻主要如下:

(1)針對FPGA加速器更擅長處理移位計算的特性,提出了一種基于可微閾值的選擇性移位量化方案(differentiable threhold-based selective shift quantization,DTSSQ),通過將浮點數(shù)權重轉化為一或兩個2的冪次方和的形式,將全部乘法運算轉化為移位運算,從而提高加速器的性能。

(2)提出了一種基于FPGA的CNN加速器架構,將MobileNetV2中所有的網(wǎng)絡層都映射到了獨立定制的硬件單元上,對緩存設計、數(shù)據(jù)存取等方面進行了針對性優(yōu)化。

(3)為了最大化硬件資源利用效率,設計了一種具有更高兼容性的卷積層計算單元,統(tǒng)一了數(shù)據(jù)輸入輸出接口并且能夠支持不同卷積類型的通用化部署。

1 相關技術

1.1 MobileNetV2

MobileNetV2是一種輕量級CNN模型,主要使用了深度可分離卷積來構建網(wǎng)絡架構,在圖像分類和目標檢測領域有著很顯著的優(yōu)勢。

MobileNetV2建立在MobilenetV1的基礎上,與后者相比,前者的top-1準確率從70.6%提高到了72%,模型大小也從4.2 M縮小到了3.4 M。MobileNetV2最大的特點是使用了倒置殘差結構。該結構包括一個1×1的擴展層、一個3×3的逐通道卷積,和一個1×1投影層。當逐通道卷積的步長為2時,將輸入與輸出逐元素相加。當步長為1時則不做額外處理。

1.2 Intel FPGA SDK For OpenCL

在傳統(tǒng)的開發(fā)方式中,F(xiàn)PGA是通過硬件描述語言(hardware description language,HDL)進行編程的,開發(fā)人員不僅需要掌握HDL語言,還需要熟知FPGA的硬件架構。同時由于HDL語言直接面向硬件,抽象層次較低,這嚴重提高了FPGA開發(fā)的準入門檻。

開放式計算語言(open computing language,OpenCL)是一門基于C/C++的語言,能夠進行跨平臺的并行編程,并且能夠兼容各類硬件設備。而Intel FPGA SDK for OpenCL是Intel公司提供的一個OpenCL設計套件,它使用自定義的編譯器將OpenCL代碼映射到FPGA上,在隱藏FPGA細節(jié)的同時實現(xiàn)了工作優(yōu)化。

這種開發(fā)方法可以極大地減少硬件開發(fā)時間,提高FPGA的開發(fā)效率。同時,基于OpenCL開發(fā)的程序也有助于復雜程序在FPGA上的快速部署。因此,本文使用OpenCL作為開發(fā)語言,完成了FPGA加速器的部署實現(xiàn)。

2 模型量化

2.1 量化方案

為了降低網(wǎng)絡模型在FPGA上的存儲成本和計算成本,本文使用移位量化的方案將浮點參數(shù)轉化為低精度數(shù)。與移位量化不同,定點量化依然使用乘法操作來進行卷積運算,這在FPGA中通常由DSP來實現(xiàn)。但是與FPGA中數(shù)量較多的查找表和寄存器相比,F(xiàn)PGA中DSP的數(shù)量較少,往往需要對其進行特殊處理,才可能支持CNN的大規(guī)模乘法運算。因此DSP資源的數(shù)量通常是限制加速器性能的重要原因。

而移位操作在FPGA中通常由查找表來實現(xiàn),幾乎不會消耗DSP資源,因此FPGA加速器的性能將不會受到DSP資源的限制,并減少因過度使用DSP而產(chǎn)生的功耗[8]。但如式(2)所示,由于移位量化的每個量化值都是2的冪次方,當量化值的目標位寬b增加時,量化值集合Qshift內包含的值只會在0附近增加[2-2b+1,2-2b-1]區(qū)間內的有限個值,而其它區(qū)間不會發(fā)生任何變化,這種分布上的不均勻使得模型的量化性能無法被有效地提升

Qshift={0,±2-2b-1+1,±2-2b-1+2,…,±2-1,±1}

(1)

為解決這個問題并增加權重表示的靈活性,本文提出了一種基于可微閾值的選擇性移位量化方案。該方案使用一或兩個2的冪次方來表示權重,對量化值進行了更細粒度的劃分。

量化函數(shù)定義如下

(2)

(3)

(4)

其中,b表示權重量化的位寬,W(i) 表示第i層的權重數(shù)據(jù),P表示權重的移位值,Wq(i) 表示第i層權重的量化表示形式,clip(.)表示裁剪函數(shù)。在式(4)表示的量化函數(shù)的作用下,形如0.128這樣的全精度權重最終會被表示為2-3的形式。

2.2 基于可微閾值的權重分組

相比于將權重直接量化為兩個2的冪次方的和,如果將一部分權重量化為兩項之和并且將另一部分權重量化為單個項,則能夠保持高分辨率帶來的高精度優(yōu)勢,同時也具有移位量化帶來的低能耗優(yōu)勢。

基于這一假設,本文提出的DTSSQ方案包括下列步驟:基于可微閾值的權重分組和重訓練。

基于閾值的權重分組根據(jù)量化誤差將權重劃分為3組,分別對應權重被量化為兩項之和、被量化為單項和不被量化。第一組的權重經(jīng)過兩次移位量化,以減小量化誤差。第二組的權重僅需要經(jīng)過一次量化,即可逼近全精度的權重值。第三組的權重在前向傳播的過程中將不會進行移位量化,其值是由量化函數(shù)計算得到的零值。

本文將R(i) 定義為第i層權重的量化誤差,則R(i) 可以通過式(5)來表示

R(i)=W(i)-Quant(W(i))

(5)

如果權重的量化誤差大于閾值,權重就會被劃分到第一組,反之則被劃分到第二組。這種動態(tài)的分組模式在數(shù)學中可以通過二值掩碼矩陣來表示,具體表示見式(6)

(6)

式中:T為判斷量化誤差與閾值大小關系的二值掩碼矩陣,t表示量化誤差的閾值。因此,使用該方案計算得到的量化后的權重值就可以通過式(7)進行表示

Wq(i)=Quant(W(i))+Quant(R(i)⊙T)

(7)

式中:⊙表示逐元素相乘。根據(jù)T的不同取值,Wq(i) 可能會被表示為一或兩個移位值和的形式,也就是形如0.128這樣的全精度權重最終可能會被表示為2-3+2-5或者2-3的形式。完整的權重分組方案如算法1所示。

算法1:基于閾值的權重分組方案

輸入:全精度權重w

閾值t

輸出:量化后的權重w_q

(1)計算全精度權重的單項量化值w1:w1=Quant(w)

(2)根據(jù)w1計算權重的量化誤差error:error=w-w1

(3)if error >=tdo

(4)w_q= w1+Quant(error)

(5)else

(6)w_q=w1

(7)end if

(8)returnw_q

在實踐中,該類閾值如果被設置為靜態(tài)值,將無法反映量化過程中權重的變化和迭代過程中量化誤差的變化,因此,本文將引入可微閾值t作為權重劃分的依據(jù),并通過重訓練求解出閾值的最優(yōu)解。

2.3 重訓練

為了更好地減少重訓練時的量化誤差,并使權重在反向傳播過程中更逼近2的冪次方,本文提出了一個正則化項Ω來輔助權重的修正

(8)

因此,與新的正則化項Ω結合之后,新的損失函數(shù)將變化為如下形式

lossnew=loss+λ*Ω

(9)

式中:λ是預定義的一個超參數(shù)。

根據(jù)反向傳播的鏈式求導法則,損失函數(shù)對權重的偏導數(shù)可以由下列公式計算得出

(10)

但是Wq(i) 的計算涉及了對全精度權重的四舍五入的運算,這使得?Wq/?W的導數(shù)處處為0(除了W恰好為2的冪次方的離散點),權重的梯度無法正常進行反向傳播。以前的一些工作[9,10]大多通過令?Wq/?W=1來直接獲取梯度的近似值,雖然看似解決了問題,但是卻完全忽略了量化對權重造成的影響,當進行低比特的量化時,量化誤差會被放大,導致訓練過程難以收斂[11]。

本文引用了Junghyup等[12]提出的EWGS方法來嘗試解決這一問題。根據(jù)文獻[12]可以計算出損失函數(shù)對權重的偏導數(shù)?L/?W,如式(11)所示

(11)

式中:δ是一個大于等于0的比例因子。

根據(jù)式(7),閾值t的梯度可以通過Wq(i) 進行計算,具體計算公式見式(12)

(12)

在計算?Wq/?t這一項時,可以使用tanh函數(shù)進行近似計算。令?T/?t=tanh(R(i)2-t),則求值的具體公式見式(13)

-R(i)⊙tanh′(R(i)2-t)

(13)

3 加速器設計

FPGA加速器整體架構如圖1所示,包括控制器、卷積層計算單元、片上緩沖區(qū)、外部存儲器和其它層的計算單元。

圖1 加速器架構

控制器負責協(xié)調不同計算單元在運行期間的執(zhí)行順序,驅動加速器以流水線模式高效運行。卷積層的計算單元主要負責MobileNetV2中不同卷積模塊的計算,最多可兼容標準卷積、逐通道卷積以及逐點卷積等3種不同卷積模塊的實現(xiàn)。外部存儲器主要用于存儲原始輸入圖像和最終計算結果,僅在網(wǎng)絡輸入和輸出端與片上產(chǎn)生交互。片內緩沖區(qū)包括輸入緩沖區(qū)、輸出緩沖區(qū)和權重緩沖區(qū)等,遵循了分層存儲策略,根據(jù)參數(shù)的數(shù)量和使用頻率來分配各自的片上存儲資源。其它層的計算單元主要包括了MobileNetV2中涉及的全局平均池化層、Relu6激活函數(shù)層以及BN層等。

3.1 數(shù)據(jù)流

加速器包含控制器、卷積模塊、池化層、BN層、激活等多個FPGA內核。內核之間的數(shù)據(jù)流動效率將直接影響加速器的推理速度。OpenCL SDK提供了通道作為內核之間通信的橋梁,這意味著內核之間可以使用先進先出(first in first out,F(xiàn)IFO)緩沖區(qū)直接進行片上通信。如圖2所示,加速器的數(shù)據(jù)流就是使用通道按照順序構建起來的。

圖2 數(shù)據(jù)流

加速器上的數(shù)據(jù)流動,可以分為阻塞式和非阻塞式。當加速器開始運行時,控制器處于阻塞式讀取模式,此時控制器要確保讀取的數(shù)據(jù)可用,以便整個流水線可以正確啟動。輸入圖像和權重數(shù)據(jù)從片外內存加載到片上緩沖區(qū)中,當控制器讀取到數(shù)據(jù)時,開始執(zhí)行卷積、激活、池化的計算流程。池化單元計算得到的輸出值被寫回控制器,此時加速器開始執(zhí)行層間計算流程,并且控制器將切換為非阻塞式讀取模式以避免加速器在運行期間因阻塞而停止運行。同時如果該層存在殘差連接,則將輸出結果提前寫入到輸出緩沖區(qū)內。

3.2 內存布局

一般來說,與片外內存的頻繁通信會導致加速器能耗增加,因此本文使用了片上緩存來存儲網(wǎng)絡中間層的全部輸出數(shù)據(jù)以減少與片外的通信。類似的研究中大多使用雙緩沖區(qū)技術也就是使用兩個相同的緩沖區(qū)在每個時鐘周期內同時讀寫來加速數(shù)據(jù)處理過程。然而,這種技術的主要缺陷在于雙緩沖區(qū)的尺寸需要滿足中間層的最大存儲需求。因此,本文提出了非對稱式動態(tài)雙緩沖區(qū)技術,將內存區(qū)域劃分為兩塊大小不等的子區(qū)域,并根據(jù)實際網(wǎng)絡模型的架構設置不同的緩沖區(qū)配置比例。因此,緩沖區(qū)的大小的計算實際上就可以被轉化為求解以下問題

argmin(SIZE(layeri)+SIZE(layeri+1))

(14)

根據(jù)求解得到的結果,就可以得到最優(yōu)的緩沖區(qū)配置比例。并且將最優(yōu)比例與每一層的中間數(shù)據(jù)大小相結合,就能夠提前計算出每一層的緩沖區(qū)讀取基地址和緩沖區(qū)寫入基地址。控制器通過指令流將預計算的基地址傳入加速器,從而實現(xiàn)運行時對緩沖區(qū)的動態(tài)數(shù)據(jù)讀寫。經(jīng)計算,在MobileNetV2層中的最優(yōu)緩沖區(qū)配置為第五層與第六層的組合。

3.3 卷積計算單元

深度可分離卷積比普通卷積有更低的參數(shù)量和計算成本,但它也給基于標準卷積的加速體系結構帶來了相當大的挑戰(zhàn)[13]。適用于標準卷積的計算單元,往往無法在逐通道卷積和逐點卷積的運算模式中高效地運算。

Ming等[5]嘗試為每種卷積運算類型設計一個專用引擎來針對性地提高計算效率,但是在MobilenetV2中3種卷積類型各自的計算量很不平衡,反而會使得不同計算單元的工作負載不平衡,進而導致整體硬件資源利用率降低,白白浪費功耗。相反,如果為不同的卷積類型設計一個統(tǒng)一的計算單元,就可以解決負載不平衡的問題,獲得更高的計算資源綜合利用率。

本文將卷積計算單元從邏輯上分解為移位計算陣列和加法器樹,并根據(jù)不同的卷積類型設計了不同的組合方案,從而提出了一種可兼容多個卷積類型的新的計算單元設計方案。為了保證計算單元在不同工作模式下保持統(tǒng)一,本文針對不同卷積類型設計了專門的數(shù)據(jù)重排序過程。同時,本文根據(jù)標準卷積、逐通道卷積、逐點卷積等卷積類型的不同計算策略提出了能夠在統(tǒng)一的硬件電路上部署的并行化策略。

如圖3所示,一個完整的卷積計算單元包含了行緩沖區(qū)以及移位和陣列。

圖3 卷積計算單元架構

在卷積計算之前,控制器將下一層的輸入數(shù)據(jù)和權重參數(shù)進行分組并分別發(fā)送給卷積計算單元。引擎的行緩存按照非對稱式動態(tài)雙緩沖區(qū)的設計思路接收并存儲這些數(shù)據(jù),同時也將當前層計算所需的數(shù)據(jù)發(fā)送到移位和陣列。根據(jù)預先配置的工作模式控制位,移位單元陣列和加法器樹會以不同的方案進行配置。移位單元陣列利用FPGA中數(shù)量充足的查找表對數(shù)據(jù)實現(xiàn)移位運算,最后再由加法器樹對中間結果求和從而完成整個卷積計算。

3.3.1 標準卷積

為了充分利用FPGA設備的硬件資源,提高標準卷積模式下的并行性,本文針對參與運算的數(shù)據(jù)設計了5個并行級別,并將其定義為計算單元并行度level_R,輸出通道并行度level_N,輸入通道并行度level_C,寬度并行度le-vel_W,高度并行度level_H。同時,將level_R的值設置成輸出通道并行度level_N,以確保運算單元能正確處理輸入數(shù)據(jù)的格式,使每一個計算單元最終只生成一個通道的輸出數(shù)據(jù)。

為了更好地描述計算單元在特定模式下的并行計算能力,本文將Parallelstandard定義為在指定工作模式下,計算單元在一個時鐘周期內并行執(zhí)行的卷積運算次數(shù)。因此標準卷積模式下的計算單元并行度Parallelstandard可以通過下列公式計算

Parallelstandard=k×level_R×(level_W-k+1)×

(15)

式中:k表示卷積核的尺寸,C表示輸入特征圖的通道數(shù)。

如圖4所示,為了使不同工作模式下的數(shù)據(jù)格式保持一致并與并行策略相匹配,輸入數(shù)據(jù)會被重新排序。

圖4 標準卷積工作模式的數(shù)據(jù)重排序

圖的頂部為輸入特征圖陣列和權重陣列,底部為重排序后的數(shù)據(jù)存儲格式。頂部的序號表示輸入數(shù)據(jù)在滑動窗口內的原始存儲順序,經(jīng)過重新排序后與底部的序號形成一一對應關系。最終,計算單元會根據(jù)圖中的數(shù)據(jù)存儲格式接收輸入數(shù)據(jù)和權重數(shù)據(jù),并最終計算出卷積結果。

3.3.2 逐點卷積

逐點卷積的計算過程實際上等同于1×1卷積,之前的工作[4,6,13]中使用標準卷積的計算單元直接實現(xiàn)逐點卷積而沒有進行專門的優(yōu)化。然而,由式(16)所示,這種方式實際上會使得當前計算單元的并行度Parallelpointwise降低約level_H倍,沒有充分利用計算標準卷積所需的硬件資源

(16)

因此,逐點卷積也需要對數(shù)據(jù)的讀取順序進行如圖5所示的重排序過程。逐點卷積工作模式下,計算單元將會按順序依次讀取3個輸入通道的權重,并重排序組合成與標準卷積一致的數(shù)據(jù)排列順序。

圖5 逐點卷積工作模式的數(shù)據(jù)重排序

權重數(shù)據(jù)的重排序將使得計算單元在逐點卷積的模式下能夠保持與在標準卷積模式時一致的數(shù)據(jù)排列順序,因此計算單元即使處于逐點卷積模式,也可以充分利用標準卷積時用到的移位單元陣列和加法器樹模塊。

3.3.3 逐通道卷積

與標準卷積相比,逐通道卷積在計算過程中最大的不同是每個輸出特征圖通道都是由一個內核通道與一個輸入特征圖通道進行卷積而產(chǎn)生的,并且每個維度之間均沒有數(shù)據(jù)依賴關系。

因此逐通道卷積的并行計算能力Paralleldepthwise實際上降低了level_R倍,這意味著同一時間只有一個計算單元在進行運算,完全喪失了level_R并行度的優(yōu)勢。因此,本文利用了逐通道卷積的計算特性,通過控制器對輸入數(shù)據(jù)進行如圖6所示的重排序,使得輸入數(shù)據(jù)以額外的level_R維度被送入,從而充分能夠利用多個計算單元并行處理的優(yōu)勢。

圖6 逐通道卷積工作模式的數(shù)據(jù)重排序

圖7顯示了優(yōu)化后的計算單元在處于逐通道卷積工作模式下會被激活的計算陣列,其中實線部分表示被激活的陣列而虛線部分則表示未被激活的部分。不同工作模式僅在加法器樹的連接配置中有所區(qū)分。

圖7 逐通道卷積的計算陣列

最終,優(yōu)化后的Paralleldepthwise可以通過式(17)計算得出

Paralleldepthwise=

k×level_R×(level_W-k+1)×level_H

(17)

4 實驗結果

4.1 量化方案

為了評估本文提出的DTSSQ量化方案的有效性,本文使用CIFAR-10和CIFAR-100數(shù)據(jù)集對模型進行訓練,這兩個數(shù)據(jù)集是深度學習中常用的識別常見物體的數(shù)據(jù)集,分別包含了10類和100類輸入圖像,共計60 000張圖片。

實驗選取的模型為Resnet18和Resnet20,模型的編譯語言為Python3.7,開發(fā)框架為PyTorch1.7.1。

本文將DTSSQ方案和在ResNet網(wǎng)絡上表現(xiàn)良好的幾種量化方案在CIFAR-10和CIFAR-100數(shù)據(jù)集上分別進行了比較,其中包括Zhou等[15]的DOREFA-NET、Choi等[16]的PACT、Ding等[17,18]的FlightNNs和LightNN。為與其它量化方案的實驗配置保持一致,模型的第一層和最后一層不進行量化。

實驗結果見表1,DTSSQ量化方案在CIFAR100和CIFAR10數(shù)據(jù)集上均表現(xiàn)良好,在CIFAR10數(shù)據(jù)集上Resnet20的準確率達到了92.84%,與全精度baseline相比提高了約0.8%。而在CIFAR100數(shù)據(jù)集上訓練的Resnet18的準確率達到了71.84%,與baseline相比提高了約1%,與FlightNNs相比提高了約1.3%,可見基于可微閾值的方案能夠有效地降低量化誤差,并且通過重訓練對閾值的動態(tài)調整,最終得到的量化精度與全精度網(wǎng)絡相比也有明顯提高。

表1 量化性能結果

4.2 FPGA加速器

輕量級卷積神經(jīng)網(wǎng)絡硬件加速器部署的平臺為Intel Arria10 GX1150,軟件開發(fā)環(huán)境為CentOS Linux release 7.9.2009+Intel OpenCL 19.1 SDK。使用OpenCL語言將經(jīng)過軟硬件協(xié)同優(yōu)化后的加速器架構進行編碼表達,編碼完成后連接FPGA加速卡進行編譯,SDK會將高層次的開發(fā)語言轉化為對硬件電路的描述,最終部署完成后,整體的資源利用率見表2。

表2 資源利用率/%

本文將MobileNetV2的FPGA加速器與其GPU版本和CPU版本進行了對比實驗。實驗采用的CPU是12核心24線程的Intel Xeon CPU E5-2678 v3@2.5 GHZ,GPU是來自NVIDIA的專業(yè)計算卡Tesla V100。對比結果見表3。

表3 與CPU和GPU對比

從表中可以看出,CPU版本MobileNetV2的平均推理速度為29.9 ms,與之相比,F(xiàn)PGA加速器的平均加速比為9.3,具有更好的性能優(yōu)勢。而GPU作為一個通用加速器,MobileNetV2模型無法完全利用其硬件資源。因此,GPU的平均推理速度需要7.55 ms,與之對比,在FPGA上部署的模型推理速度比GPU的快了約3倍。

如表4所示,本文選取了幾項類似的基于FPGA的MobileNetV2加速器實現(xiàn)方案,與本文設計的加速器進行了對比。

表4 加速性能對比

從表中可以看出,本文提出的加速器最終實現(xiàn)了311.6 fps的推理速度,優(yōu)于大部分的FPGA加速器,并且本文設計的DTSSQ量化方案使得卷積的計算能夠借由FPGA上充足的查找表來實現(xiàn),每個時鐘周期內能夠完成更多的計算,因此在吞吐量方面加速器也占據(jù)了優(yōu)勢。

另外,本文的加速器也具備使用高級語言開發(fā)易于部署的優(yōu)勢。實驗結果表明,我們實現(xiàn)的基于FPGA的輕量級卷積神經(jīng)網(wǎng)絡加速器相比其它輕量級卷積神經(jīng)網(wǎng)絡加速器實現(xiàn)了更高的吞吐量和更快的推理速度。

5 結束語

本文利用FPGA的硬件可編程優(yōu)勢,進行軟硬件協(xié)同優(yōu)化,對基于FPGA的輕量級卷積神經(jīng)網(wǎng)絡加速方案進行了深入研究,為進一步改善輕量化網(wǎng)絡應用的性能提供了方法和方案。

首先,本文提出了一種基于可微閾值的選擇性移位量化方案,解決了傳統(tǒng)移位量化算法精度迅速飽和的問題。實驗結果表明,提出的量化方案在CIFAR10和CIFAR100數(shù)據(jù)集上量化后的精度相比全精度網(wǎng)絡分別提高了0.8%和1%。

其次,本文設計了一種基于FPGA的高性能加速架構來適應輕量化網(wǎng)絡計算特征,并提出了非對稱式動態(tài)雙緩沖區(qū)技術與具有更高兼容性的統(tǒng)一卷積計算單元。實驗結果表明,提出的加速器架構幾乎不使用DSP就可以完成卷積運算,最終實現(xiàn)了98.62 GOPS的吞吐量和311.6 fps的推理速度。

主站蜘蛛池模板: 亚洲毛片一级带毛片基地 | 免费人成又黄又爽的视频网站| 日本一区高清| 精品福利视频网| 国产av剧情无码精品色午夜| 欧美三级不卡在线观看视频| 久久综合成人| 欧美一区二区三区不卡免费| 欧美在线视频a| 欧美一级高清片久久99| 麻豆a级片| 亚洲精品国产综合99久久夜夜嗨| 欧美国产综合色视频| 伊人天堂网| 欧美h在线观看| 午夜精品久久久久久久99热下载| 天堂va亚洲va欧美va国产| 国产一二三区在线| 亚洲三级片在线看| 性色生活片在线观看| 国产精品对白刺激| 夜夜拍夜夜爽| 波多野结衣久久高清免费| 亚洲天堂成人| 不卡的在线视频免费观看| 亚洲男人天堂2020| 视频一本大道香蕉久在线播放| 91视频99| 欧美成人综合视频| 欧美视频二区| 亚洲色无码专线精品观看| 国产成人亚洲毛片| 香蕉综合在线视频91| 亚洲精品无码专区在线观看 | 国产在线视频福利资源站| 亚洲精品视频免费| 久久久波多野结衣av一区二区| 亚洲a级在线观看| 青青青国产视频手机| 午夜丁香婷婷| 成人在线观看一区| 蜜臀AV在线播放| 99这里精品| 亚洲一区精品视频在线| 欧美日韩在线成人| 精品国产aⅴ一区二区三区| 中文字幕2区| 亚洲人精品亚洲人成在线| 国产亚洲精久久久久久无码AV| 四虎成人精品在永久免费| 国产精品自在在线午夜| 操国产美女| 成人免费黄色小视频| 久久国产精品电影| 亚洲天天更新| 91在线高清视频| 国产免费久久精品99re不卡| 九九热这里只有国产精品| 国产无码网站在线观看| 亚洲综合久久一本伊一区| 久久久久久久蜜桃| 91久草视频| AV不卡无码免费一区二区三区| 久久久久久国产精品mv| 欧美成一级| 青青青国产在线播放| 欧美激情网址| 在线观看免费AV网| 亚洲精品在线影院| 国产高清无码麻豆精品| 中文字幕在线播放不卡| 国产精品一区二区无码免费看片| 亚洲婷婷在线视频| 91成人在线免费观看| 日本一区高清| 99视频精品全国免费品| 97se亚洲| 美女无遮挡被啪啪到高潮免费| 国产v欧美v日韩v综合精品| 欧美亚洲激情| 69国产精品视频免费| 91欧洲国产日韩在线人成|