国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于TPU和FPGA的深度學(xué)習(xí)邊緣計算平臺的設(shè)計與實現(xiàn)*

2021-06-25 09:46:04劉昌華
計算機(jī)工程與科學(xué) 2021年6期
關(guān)鍵詞:張量邊緣架構(gòu)

欒 奕,劉昌華

(武漢輕工大學(xué)數(shù)學(xué)與計算機(jī)學(xué)院,湖北 武漢 430023)

1 引言

我們所處的時代正在經(jīng)歷萬物互聯(lián)帶來的巨大變革,隨著中心化云計算、數(shù)據(jù)分析、網(wǎng)絡(luò)安全和存儲技術(shù)的進(jìn)一步成熟,搭建一個穩(wěn)定、可靠、高效的物聯(lián)網(wǎng)體系已成為可能。而這樣成熟的技術(shù)發(fā)展帶來的是移動設(shè)備用戶數(shù)量和數(shù)據(jù)流量的爆炸式增長,預(yù)計到2030年,全球移動設(shè)備接入數(shù)量將達(dá)到180億,中國占其中的六分之一;物聯(lián)網(wǎng)設(shè)備接入量將達(dá)到一千億,中國占其中的五分之一[1 - 3]。而隨著5G技術(shù)標(biāo)準(zhǔn)成熟[4],5G商用化正式啟動,未來對于物聯(lián)網(wǎng)和云計算會有更為嚴(yán)峻的挑戰(zhàn)。而如今我們正好可以應(yīng)用邊緣計算[5]技術(shù)來彌補(bǔ)云計算的不足之處。但是,深度學(xué)習(xí)算法本身對準(zhǔn)確度的追求會消耗大量計算資源,這與計算資源受限的邊緣計算環(huán)境相矛盾,因此將深度神經(jīng)網(wǎng)絡(luò)模型部署在邊緣計算平臺面臨巨大的挑戰(zhàn)。

2017年香港科技大學(xué)Mao[5]提出一種綠色邊緣計算和通信系統(tǒng)的設(shè)計方法,研究了單用戶系統(tǒng)下混合能源供應(yīng)HES(Hybrid Energy Supply)無線網(wǎng)絡(luò)的基本網(wǎng)能量消耗和QoS(Quality of Service)之間的權(quán)衡。香港大學(xué)的You[6]也提出了能源高效型的移動邊緣計算模型,并將重點放在計算遷移和資源管理上。同年,肖騫[7]也提出了在多用戶超密集型的網(wǎng)絡(luò)中,利用啟發(fā)式算法ECEP(Enhanced-Cochannel users Equal Power collocation)仿真分析得出盡可能小的時延-能耗權(quán)重和。上述研究都將重點放在了優(yōu)化抽象的網(wǎng)絡(luò)部署策略或者優(yōu)化模型推理的框架方面,還沒有提出切實的硬件部署方案。

2018年,趙佶[8]提出了一種以樹莓派為硬件構(gòu)建的網(wǎng)關(guān)設(shè)備,不僅可以實現(xiàn)基本的路由器功能,還可以承擔(dān)邊緣計算所需的任務(wù)。2019年開始出現(xiàn)將深度學(xué)習(xí)與邊緣計算相結(jié)合的研究,肖云飛[9]以樹莓派為硬件,基于邊緣計算的系統(tǒng)架構(gòu),在車輛終端應(yīng)用深度學(xué)習(xí)模型實現(xiàn)了車道保持功能,實現(xiàn)了深度學(xué)習(xí)樣本數(shù)據(jù)在自動駕駛領(lǐng)域的擴(kuò)充和應(yīng)用。也是在2019年,曹泓等人[10]提出了一種基于深度學(xué)習(xí)的城市管理違章行為分析算法,可以智能分析出視頻流中的常見違章行為。但上述研究均是以樹莓派為硬件實現(xiàn)的,盡管樹莓派與常見的51單片機(jī)和STM32等嵌入式微控制器相比,能夠運(yùn)行相應(yīng)的操作系統(tǒng),還可以完成更復(fù)雜的任務(wù)管理與調(diào)度,但樹莓派的最大優(yōu)勢同時也是自身的短板,它提供了比嵌入式微控制器更多選擇與應(yīng)用的同時,犧牲了自身的性能優(yōu)勢。盧冶等人[11]基于XILINX 7020 FPGA提出了面向邊緣計算的卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建方法,圖像分類準(zhǔn)確度可達(dá)79%,同時將系統(tǒng)功耗降低至4.2 W。

為了使深度學(xué)習(xí)技術(shù)能更好地適應(yīng)邊緣計算環(huán)境,本文同樣選擇采用搭載雙核Cortex-A9和張量處理器TPU(Tensor Processing Unit)的ZYNQ 7020 FPGA芯片,通過TPU+FPGA的方式,發(fā)揮FPGA[12]高速并行、可靈活編程的特點;同時結(jié)合TPU計算架構(gòu)在深度學(xué)習(xí)領(lǐng)域極高的算力,在FPGA芯片內(nèi)部搭建全新的邊緣計算架構(gòu)。并且在FPGA框架下,系統(tǒng)功耗性能比較高,適合在邊緣結(jié)點長期待機(jī)。本文在Caffe(Convolutional Architecture for Fast Feature Embedding)[13]框架下對壓縮后的MobileNet-V1模型完成了訓(xùn)練和優(yōu)化,最終將硬件與算法二者結(jié)合實現(xiàn)了一種基于TPU+FPGA的深度學(xué)習(xí)邊緣計算平臺,該計算架構(gòu)在測試數(shù)據(jù)集上取得了良好的效果。

2 TPU基本原理與特點

2.1 TPU基本原理

張量處理單元TPU最早是谷歌在2016年推出的,而谷歌人工智能AlphaGo依靠以單核TPU為核心的計算架構(gòu)先后擊敗了圍棋大師李世石與柯潔,并因此名聲大噪。由于神經(jīng)網(wǎng)絡(luò)編程模型的本質(zhì)是計算圖模型,計算圖的輸入/輸出是張量數(shù)據(jù),計算圖的類型代表操作類型。因此,直觀地,最適合于神經(jīng)網(wǎng)絡(luò)編程模型的計算體系結(jié)構(gòu)是Graph/Tensor計算體系,其中,處理器的功能由計算圖類型決定,而數(shù)據(jù)則是計算圖的輸入/輸出張量。然而,計算圖這一層級的粒度太粗,各類型間并沒有太大的相關(guān)性,一個典型的神經(jīng)網(wǎng)絡(luò)計算由Convolution、Pooling、BN、Scale、ReLU等組成,它們之間的行為差異巨大,如果處理器按照計算圖操作的粒度設(shè)計,這就意味著需要為每一個(或某幾個)計算圖操作設(shè)計專門的計算硬件(正如NVIDIA DLA那樣,NVDLA為卷積、池化和BN專門設(shè)計了不同的計算電路),這樣的代價是巨大的,而且也不具備可擴(kuò)展性。

TPU所采用的張量運(yùn)算集[14,15]用一種巧妙的方式解決了Graph/Tensor體系結(jié)構(gòu)中的核心問題:如何用一套標(biāo)準(zhǔn)、完善且最大粒度的操作(粒度遠(yuǎn)遠(yuǎn)高于傳統(tǒng)CPU/GPU的加、減、乘、除,同時也是各計算圖的子集)來定義基礎(chǔ)運(yùn)算類型。

在張量運(yùn)算集中,張量運(yùn)算被劃分為1維、2維、3維和4維4大種類,每個種類又由各種不同類型的計算操作組成,從而形成一個完備的計算集合,通過這些張量運(yùn)算操作的組合,便能在相同硬件架構(gòu)下完成如普通卷積、DW卷積、Pooling、Resize、ReLU等計算圖操作。TPU架構(gòu)如圖1所示。

Figure 1 Structure of TPU

2.2 TPU內(nèi)部主要模塊及工作原理

本文通過Vivado 2018.2工具完成TPU的相關(guān)設(shè)計,其中主要包括:張量計算模塊、激活/池化模塊、數(shù)據(jù)緩存模塊與動態(tài)存儲模塊。其中最為重要的張量計算模塊主要由一個256×256的乘法矩陣和累加器構(gòu)成,由于本文中張量計算模塊所采用的脈動陣列,使得TPU中最主要的計算過程比較固定,因此對控制電路的依賴較低;激活模塊與池化模塊負(fù)責(zé)對累加器輸出的像素點數(shù)據(jù)進(jìn)行激活處理和池化處理;數(shù)據(jù)緩存模塊用于存儲即將輸入乘法矩陣的像素數(shù)據(jù);而動態(tài)存儲模塊負(fù)責(zé)緩存像素的權(quán)值數(shù)據(jù)并交給乘法矩陣進(jìn)行相應(yīng)計算。

(1)數(shù)據(jù)緩存模塊。

該模塊的作用是緩存本地輸入的像素數(shù)據(jù),主要由片外SRAM構(gòu)成,TPU在推理過程中為了大幅提升響應(yīng)速率,會以較高的頻率訪問該模塊的數(shù)據(jù)。因此,選擇采用片外SRAM的方式來作為數(shù)據(jù)的緩存設(shè)備。本文采用開發(fā)板上提供的96 KB×256×8 bits SRAM作為數(shù)據(jù)緩存模塊的主要設(shè)備。

(2)動態(tài)存儲模塊。

在深度神經(jīng)網(wǎng)絡(luò)的推理過程中,每一層的權(quán)值是不斷更新的,動態(tài)存儲模塊就是用于存儲更新的權(quán)值并將其交給乘法矩陣,配合像素數(shù)據(jù)進(jìn)行乘累加運(yùn)算。該模塊的功能可以看做是一個FIFO隊列,接收來自開發(fā)板上DDR3(512 MB)的權(quán)值數(shù)據(jù)。實際上在Vivado設(shè)計中也是通過IP Catalog功能直接例化調(diào)用一個256×256×8 bits的FIFO隊列。

(3)張量計算模塊。

本文中TPU張量計算模塊由乘法矩陣和累加器組成,采用脈動陣列的方式工作,其核心概念就是讓數(shù)據(jù)在運(yùn)算單元的陣列中進(jìn)行流動,減少訪存的次數(shù),并且使得結(jié)構(gòu)更加規(guī)整,布線更加統(tǒng)一,提高頻率。乘法矩陣由256×256,即65 536個8位MAC組成,其結(jié)構(gòu)圖如圖2所示。圖2左側(cè)就是數(shù)據(jù)緩存模塊,它將每行像素輸入乘法矩陣中,數(shù)據(jù)在矩陣中按照從左至右的方向傳播。圖2上方為一個動態(tài)存儲器(權(quán)值濾波),負(fù)責(zé)將當(dāng)前權(quán)值交給下方的MAC單元。乘法矩陣中的每一個cell就是一個乘加單元(MAC)。每個cell執(zhí)行的計算如式(1)所示:

w×x+b

(1)

其中,x代表從左側(cè)輸入的像素數(shù)據(jù),w代表從上方cell得到的濾波器權(quán)值,b代表從上方cell得到的輸出部分和。從左側(cè)傳來的像素輸入數(shù)據(jù)會傳遞到右側(cè)的相鄰cell,濾波器權(quán)值會傳遞給下方的cell。從上方cell得到的部分和作為當(dāng)前cell的加數(shù)D。當(dāng)前cell輸出的部分和會傳遞給下方的相鄰cell當(dāng)作加數(shù)D。

Figure 2 Construction of matrix multiplication

2.3 TPU的特性及優(yōu)勢

TPU所具備的通用性和嵌入式2大主要特性更是為用戶進(jìn)行邊緣端AI的相關(guān)開發(fā)和部署提供了極大便利,從通用性來說TPU具有以下特性:

(1)支持各種類型神經(jīng)網(wǎng)絡(luò)計算層,方便后續(xù)算法迭代;

(2)支持大多數(shù)神經(jīng)網(wǎng)絡(luò)算法,方便實現(xiàn)各種解決方案;

(3)支持FP16和INT8數(shù)據(jù)類型,方便靈活選擇;

(4)支持PC訓(xùn)練模型的無縫轉(zhuǎn)換,提供便捷、易用的人工智能推理計算。

3 實驗設(shè)計方案

3.1 整體方案

本實驗中的TPU軟核處理器架構(gòu)是在Vivado 2018.2設(shè)計軟件下,通過VHDL硬件描述語言完成TPU工程文件的編譯并下載到開發(fā)板上的FPGA芯片。在PC端創(chuàng)建Linux操作系統(tǒng)的虛擬機(jī),并搭建基于Caffe的深度學(xué)習(xí)框架,在ImageNet數(shù)據(jù)集基礎(chǔ)上整理并創(chuàng)建小規(guī)模實驗數(shù)據(jù)集,完成對深度神經(jīng)網(wǎng)絡(luò)的搭建、訓(xùn)練和優(yōu)化。最后通過TPU編譯和交叉編譯完成算法編譯和嵌入式端應(yīng)用編譯,把神經(jīng)網(wǎng)絡(luò)算法模型和超參文件轉(zhuǎn)變成TPU軟核處理器可識別的嵌入式端執(zhí)行文件,同時將C++程序轉(zhuǎn)變成嵌入式端應(yīng)用程序可執(zhí)行文件。而TPU神經(jīng)網(wǎng)絡(luò)張量處理器已被移植到帶有ARM-cortex A9處理器的ZYNQ 7020 FPGA芯片中,等待PC端將上述各執(zhí)行文件、操作系統(tǒng)及SDK通過以太網(wǎng)下載到芯片之后,就可以通過PC端支配并監(jiān)視FPGA(TPU)完成圖像分類任務(wù)及過程并向PC返回分類結(jié)果。該深度學(xué)習(xí)邊緣計算平臺架構(gòu)如圖3所示。

Figure 3 Edge computing platform for deep learning

3.2 實驗環(huán)境

(1) PC機(jī)配置。由于實驗中深度神經(jīng)網(wǎng)絡(luò)的配置和訓(xùn)練均是在PC中完成的,因此PC的配置對網(wǎng)絡(luò)訓(xùn)練的效率有著重要影響。本實驗中PC機(jī)采用Intel i5-7300HQ CPU(2.50 GHz)、NVIDIA GeForce GTX1050(8 GB) GPU。

(2) Linux操作系統(tǒng)。本實驗通過VMware Workstation 12 Pro軟件,采用Ubuntu 18.04LTS版本的操作系統(tǒng)創(chuàng)建虛擬機(jī)文件,并將Caffe深度學(xué)習(xí)框架植入該系統(tǒng)中。

(3) 編譯工具。在完成網(wǎng)絡(luò)模型的訓(xùn)練后,通過TPU編譯器和Arm-linux-gcc6.3.1交叉編譯器進(jìn)行編譯,以完成嵌入式端系統(tǒng)文件和算法文件的下載。

4 數(shù)據(jù)集整理與預(yù)處理

本實驗在ImageNet數(shù)據(jù)集[16]的基礎(chǔ)上整理出一個較小的數(shù)據(jù)集。其中訓(xùn)練數(shù)據(jù)集包含4 000幅圖像,驗證數(shù)據(jù)集包含950幅圖像,測試數(shù)據(jù)集包含50幅圖像,共計5 000幅圖像,涉及100個類別(標(biāo)簽)。由于Caffe要求對數(shù)據(jù)集中的訓(xùn)練集和驗證集進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成LMDB數(shù)據(jù)庫,本實驗通過腳本命令分別建立用于訓(xùn)練和驗證的2個LMDB數(shù)據(jù)庫。同時,為了保證網(wǎng)絡(luò)在訓(xùn)練時能更快地收斂,本文對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行均值計算,獲取彩色圖像三通道的均值并將結(jié)果寫入.prototxt文件,以便后續(xù)工作中調(diào)用。本文中數(shù)據(jù)集經(jīng)過均值計算后,RGB三通道均值分別為:103.025,115.701,121.234。

5 神經(jīng)網(wǎng)絡(luò)模型及優(yōu)化

5.1 神經(jīng)網(wǎng)絡(luò)模型選擇

MobileNet-V1原本是谷歌推出的一種深度學(xué)習(xí)加速模型[17],與傳統(tǒng)模型相比它可以在保證不影響準(zhǔn)確度的情況下大大減少計算時間和參數(shù)規(guī)模,這樣就使得網(wǎng)絡(luò)可以被移植到算力和空間受限的移動端和邊緣計算平臺上。MobileNet采用一種稱為深度可分離卷積DW(Deep-Wise)的方式來替代傳統(tǒng)3D卷積,以大幅降低計算量,其具體思想是將原本的卷積核拆分成Depthwise和Pointwise 2部分。

Depthwise Convolution部分負(fù)責(zé)提取輸入圖像每個通道的空間特征,通常用N表示輸入圖像數(shù)量,H表示輸入圖像高度,W表示輸入圖像寬度,C表示通道數(shù),DK表示卷積核的高/寬,那么該部分的乘法計算量可表示為N×H×W×C。也就是說,該計算相當(dāng)于是將輸入圖像以通道數(shù)為基準(zhǔn),分為C組,并以DK·DK大小的卷積核對每組(即每個通道)進(jìn)行卷積計算。

Pointwise Convolution部分負(fù)責(zé)提取每個點的特征,它是對H×W×C的輸入進(jìn)行K個1×1的卷積計算,其乘法計算量為H×W×C×K。這樣一來就相當(dāng)于把一個普通卷積分解為Depthwise+Pointwise 2部分。對DW卷積和普通卷積的計算量進(jìn)行對比,對比結(jié)果如式(2)所示。

(2)

從式(2)中可以看出,DW卷積相比傳統(tǒng)3D卷積,在計算量上有了明顯壓縮,且壓縮比與卷積核數(shù)量、卷積核大小有關(guān),卷積核數(shù)量、卷積核大小越大,則壓縮效果越明顯,可以顯著提高計算速度。

5.2 網(wǎng)絡(luò)模型優(yōu)化方案

盡管這樣的網(wǎng)絡(luò)結(jié)構(gòu)已經(jīng)具備了一定的計算量和參數(shù)規(guī)模上的優(yōu)勢,但是,在一些對運(yùn)行速度或內(nèi)存有極端要求的場合,還需要更小更快的模型。為了進(jìn)一步壓縮、優(yōu)化網(wǎng)絡(luò)模型,本文通過超參數(shù)寬度因子(Width Multiplier)α和分辨率因子(Resolutionmultiplier)β來對網(wǎng)絡(luò)規(guī)模進(jìn)行壓縮。寬度因子α∈(0,1],附加于網(wǎng)絡(luò)的通道數(shù),簡單來說就是新網(wǎng)絡(luò)中每一個模塊要使用的卷積核數(shù)量相較于標(biāo)準(zhǔn)的MobileNet比例更少。對于DW結(jié)合1×1方式的卷積核,此時的卷積計算量如式(3)所示:

F=H×W×αC×DK×DK+H×W×αC×αK

(3)

除了通過寬度因子α對模型進(jìn)行進(jìn)一步優(yōu)化以外,本文還加入分辨率因子β來幫助進(jìn)一步壓縮算法模型的計算量。分辨率因子β∈(0,1],是作用于每一個模塊輸入尺寸的約減因子,簡單來說就是將輸入數(shù)據(jù)以及由此在每一個模塊產(chǎn)生的特征圖都變小了。同時加入寬度因子α和分辨率因子β后,此時DW結(jié)合1×1方式的卷積核計算量為:

F′=βH×βW×αC×DK×DK+βH×βW×αC×αK

(4)

因為分辨率因子β僅影響輸入數(shù)據(jù)和特征圖大小,并未對參數(shù)量有任何影響,僅影響計算量。為了探究配置上述參數(shù)對本實驗的具體影響,以找出最合適的模型優(yōu)化方案,實驗中分別將α配置為3/4,1/2,1/4,將β配置為6/7,5/7,4/7,再對壓縮后的網(wǎng)絡(luò)進(jìn)行訓(xùn)練。其中的關(guān)鍵數(shù)據(jù)對比結(jié)果如表1所示。

Table 1 Training results under different width and resolution factors

實驗中選取原始模型,即α=1.0,β=1.0作為對照組,從上述實驗數(shù)據(jù)中可以看出,隨著網(wǎng)絡(luò)模型的規(guī)模下降,準(zhǔn)確度也隨之下降,尤其當(dāng)α≤0.5時,雖然此時模型已經(jīng)得到了極為可觀的壓縮效果,但準(zhǔn)確度卻大幅下降,這樣會使網(wǎng)絡(luò)模型在進(jìn)行分類任務(wù)時,多個結(jié)果之間的概率區(qū)分度降低,無法較好地突出擬合度最高的結(jié)果。因此,本文采用寬度因子α=0.75,分辨率因子β=6/7的配置對原有模型進(jìn)行壓縮,不僅對準(zhǔn)確度影響最小,還將原有模型的計算量和參數(shù)量分別降低42%和62%,從網(wǎng)絡(luò)結(jié)構(gòu)上進(jìn)行優(yōu)化和提速,以更好地適應(yīng)邊緣計算環(huán)境。

6 實驗數(shù)據(jù)及對比分析

實驗整體上分為PC端與嵌入式端2部分,首先需要在PC端采用CPU/GPU對優(yōu)化壓縮后的網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,訓(xùn)練時Caffe中的超參數(shù)配置如表2所示。

Table 2 Hyperparameters of training model

BatchSize表示測試時每一批次的數(shù)量,由于測試數(shù)據(jù)集有近一千幅圖像,一次性執(zhí)行全部數(shù)據(jù)效率很低,因此本文將測試數(shù)據(jù)分成幾個批次來執(zhí)行,每個批次為4幅圖像。測試間隔為每100次訓(xùn)練進(jìn)行一次測試。本實驗采用step策略對基礎(chǔ)學(xué)習(xí)率進(jìn)行調(diào)整,該策略與步長(Stepsize)和迭代次數(shù)有關(guān),調(diào)整方法如式(5)所示:

(5)

其中,T表示當(dāng)前迭代次數(shù),step表示調(diào)整步長,base_lr表示基礎(chǔ)學(xué)習(xí)率。該策略的好處是隨著迭代次數(shù)的變化可以自動降低學(xué)習(xí)率,不需要人工操作。

相對于二分類問題常用的logistic回歸算法,在多分類問題中需要采用Softmax回歸算法提高分類結(jié)果的彈性,Softmax函數(shù)定義如式(6)所示:

(6)

并且本實驗通過權(quán)重衰減(L2正則化)可以在一定程度上避免過擬合現(xiàn)象。實驗中的正則化其實是在損失函數(shù)后添加正則化項,添加后的損失函數(shù)如式(7)所示:

(7)

其中,l0表示原始損失函數(shù),θ表示權(quán)重衰減系數(shù),n表示訓(xùn)練集數(shù)量,ω表示所有參數(shù)的平方和。正則化是通過約束參數(shù)的范數(shù)使其處于一定區(qū)間,所以可以在一定程度上減少過擬合情況。因為過擬合,就是當(dāng)擬合函數(shù)需要顧忌每一個點時,最終形成的擬合函數(shù)波動往往會很大。在某些很小的區(qū)間里,函數(shù)值的變化很劇烈,這就意味著函數(shù)在某些小區(qū)間里的導(dǎo)數(shù)值(絕對值)非常大。由于自變量值可大可小,所以只有系數(shù)足夠大才能保證導(dǎo)數(shù)值足夠大。本文對模型分別采用CPU和GPU訓(xùn)練和測試,其結(jié)果如表3所示。

Table 3 Training results under different configuration

雖然實驗中采用的CPU和GPU都是移動版的型號,算力不能與臺式電腦配置的處理器相提并論,但在使用不同配置的情況下,通過多次測試,可以看出在訓(xùn)練、測試任務(wù)計算的速度上GPU明顯比CPU更為高效,雖然TOP5的準(zhǔn)確度有略微下降,但TOP1的準(zhǔn)確度明顯提升,這更加有利于對目標(biāo)的精準(zhǔn)分類。

上述研究僅僅是在PC端完成的,為了將網(wǎng)絡(luò)模型算法完整地移植到FPGA SOC芯片上,還需要對訓(xùn)練完成的網(wǎng)絡(luò)進(jìn)行修改才能形成最后的部署網(wǎng)絡(luò)。在完成所有編譯和下載(包括相關(guān)SDK以及測試圖像)工作后,就可以通過嵌入式端對算法模型進(jìn)行進(jìn)一步測試,驗證TPU+FPGA的計算架構(gòu)對算法模型的支持。此時的分類已經(jīng)不在處于PC中CPU或GPU的架構(gòu)中計算,而是在TPU+FPGA的架構(gòu)中進(jìn)行,實驗在同樣的測試數(shù)據(jù)集上,TPU+FPGA組成的計算架構(gòu)相對于CPU/GPU數(shù)百甚至上千毫秒的分類計算速度有了明顯提高,如表4所示,每幅圖像的分類時間在32~93 ms不等,平均分類時間74.7 ms。

Table 4 Classification performance of edge computing platform

在本實驗中TPU對FPGA邏輯資源的占用情況直接影響到片上系統(tǒng)的功耗情況,本文采用的深度學(xué)習(xí)邊緣計算架構(gòu)與采用同型號的FPGA芯片通過HLS方式實現(xiàn)的計算架構(gòu)相比,F(xiàn)PGA中各類主要邏輯資源的占用率有了明顯下降,如圖4所示。

Figure 4 Comparison of FPGA resource utilization under different structures

在本文計算架構(gòu)下,不僅FPGA片上資源消耗得到大幅改進(jìn),而且總功耗僅為3.4 W,與上述僅僅采用FPGA邏輯資源搭建的計算架構(gòu)4.2 W的功耗相比降低了20%。

而與同樣將深度學(xué)習(xí)應(yīng)用在邊緣計算環(huán)境的結(jié)果相比,基于樹莓派實現(xiàn)的深度學(xué)習(xí)邊緣計算平臺[9]對每一幅圖像的計算時間往往需要數(shù)百毫秒,且準(zhǔn)確度無法滿足需求,而采用TPU軟核+FPGA的異構(gòu)計算架構(gòu),無論是功耗還是性能都具有一定優(yōu)勢。本實驗中的邊緣計算平臺在計算速度上,比起基于樹莓派的深度學(xué)習(xí)邊緣計算平臺,速度提升了3~6倍,準(zhǔn)確度提高了13%,而功耗更是降低了50.7%,如表5所示。

而將本文中的系統(tǒng)與其他非邊緣計算環(huán)境下的深度學(xué)習(xí)計算相比,雖然采用CPU協(xié)同多個FPGA的異構(gòu)計算架構(gòu)可以使同類數(shù)據(jù)集中的單幅圖像分類時間縮短到1 ms以下,但其平臺的整體功耗高達(dá)24 W,僅CPU就占了總功耗的37.5%。然而,在邊緣計算平臺上計算資源和功耗的控制都是極為嚴(yán)格的,本實驗所采用的計算架構(gòu)在各計算層以及整體的計算速度上遠(yuǎn)不如后者,但擁有極為明顯的功耗和體積優(yōu)勢,也更進(jìn)一步表明了本實驗中的計算架構(gòu)在邊緣計算平臺的意義和適用性。

Table 5 Comparison with other deep learning edge computing platforms

7 結(jié)束語

本文通過對ImageNet數(shù)據(jù)集的裁剪和整理,形成更適應(yīng)邊緣網(wǎng)絡(luò)的小型數(shù)據(jù)集。

依靠Caffe深度學(xué)習(xí)框架,搭建面向邊緣計算的神經(jīng)網(wǎng)絡(luò)算法模型,并對網(wǎng)絡(luò)模型算法的結(jié)構(gòu)進(jìn)行壓縮優(yōu)化,以適應(yīng)嵌入式端的硬件應(yīng)用環(huán)境。以ZYNQ 7020 FPGA SoC芯片的邏輯資源為基礎(chǔ)構(gòu)建TPU軟核處理器,并與SoC內(nèi)部的ARM處理器協(xié)同構(gòu)建深度學(xué)習(xí)邊緣計算架構(gòu),實現(xiàn)了在邊緣結(jié)點這樣計算資源、功耗受到明顯限制的環(huán)境中,仍然能夠以優(yōu)勢速度完成分類計算任務(wù),并且大大降低系統(tǒng)功耗,使其在邊緣結(jié)點長期待機(jī)中不會消耗過多能源。同時,由于FPGA中仍有部分資源未被使用,因此該系統(tǒng)尚有擴(kuò)展余地,可利用Verilog HDL/VHDL硬件描述語言或直接采用抽象等級更高的HLS編譯方式對這些資源加以利用,豐富邊緣結(jié)點的功能,進(jìn)一步提高上云數(shù)據(jù)的有效性。

猜你喜歡
張量邊緣架構(gòu)
基于FPGA的RNN硬件加速架構(gòu)
偶數(shù)階張量core逆的性質(zhì)和應(yīng)用
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
汽車工程(2021年12期)2021-03-08 02:34:30
四元數(shù)張量方程A*NX=B 的通解
LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
一張圖看懂邊緣計算
擴(kuò)散張量成像MRI 在CO中毒后遲發(fā)腦病中的應(yīng)用
一種基于FPGA+ARM架構(gòu)的μPMU實現(xiàn)
工程中張量概念的思考
河南科技(2014年19期)2014-02-27 14:15:33
在邊緣尋找自我
雕塑(1999年2期)1999-06-28 05:01:42
佛山市| 澄城县| 海宁市| 获嘉县| 镇江市| 新疆| 元阳县| 水富县| 文登市| 游戏| 东台市| 新安县| 麦盖提县| 武川县| 肃南| 高阳县| 阿合奇县| 刚察县| 华亭县| 汉阴县| 博客| 贵州省| 饶平县| 宁国市| 清徐县| 镇原县| 昆明市| 玉环县| 库车县| 天等县| 彰武县| 澄城县| 莱州市| 出国| 上饶市| 兴义市| 逊克县| 界首市| 凤阳县| 新沂市| 桦川县|