朱明
(天翼物聯(lián)科技有限公司 江蘇省南京市 210006)
根據(jù)國際電信聯(lián)盟電信標(biāo)準(zhǔn)分局ITU-T 的研究結(jié)果表明,在2020年,平均每人每秒將會產(chǎn)生1.7MB 的數(shù)據(jù)。由此可見,邊緣計算已經(jīng)成為海量數(shù)據(jù)分析與存儲背景下解決網(wǎng)絡(luò)帶寬問題的最佳方案。
在靠近用戶端的網(wǎng)絡(luò)邊緣節(jié)點(diǎn)進(jìn)行計算,成為技術(shù)革新的重點(diǎn)。想要實現(xiàn)邊緣計算,需要在網(wǎng)絡(luò)邊緣端植入小型嵌入式信息采集處理設(shè)備,當(dāng)用戶使用的智能設(shè)備(如智能手機(jī)、電腦等)將數(shù)據(jù)傳送到網(wǎng)關(guān)后,通過邊緣設(shè)備對數(shù)據(jù)進(jìn)行計算、分析、處理、過濾及反饋。如此一來,很多原始數(shù)據(jù)在邊緣端已經(jīng)得到了完善的處理,不必傳送到云端,進(jìn)而節(jié)省了大量的網(wǎng)絡(luò)傳輸成本,有效降低了帶寬的壓力。
目前常見的邊緣計算設(shè)備如下:
(1)EDGE TPU 計算板。作為最新出現(xiàn)在市場上的專用集成電路芯片(ASIC),此設(shè)備主要用于計算神經(jīng)網(wǎng)絡(luò)產(chǎn)生的相關(guān)數(shù)據(jù),在運(yùn)行過程中,具有極快的數(shù)據(jù)處理速度,并且無需消耗大量外部能源。
(2)NVIDIA Jetson TX2,作為一種應(yīng)用于人工智能的超級計算機(jī)信息處理模塊,其采用了Maxwell(NVIDIA 第十代GPU 架構(gòu)),結(jié)合流式多處理器,不僅支持16 位的半精度運(yùn)算,還能夠滿足部分設(shè)備對32 位單精度的計算要求。
(3)Jetson NANO,在傳統(tǒng)的TX1 數(shù)據(jù)處理模塊的基礎(chǔ)上,實現(xiàn)了數(shù)據(jù)流的提升,并且其電源性能得到了增強(qiáng)。其主要構(gòu)成是將CUDA 核心的數(shù)量提高到了128 個,并且支持16 位半精度計算和32 位單精度計算,與其他設(shè)備不同的是,NANO 的16 位計算數(shù)據(jù)容納量超過了32 位計算的一倍。
邊緣計算設(shè)備性能功耗實驗過程采用Roofline 性能分析模型作為判定工具。該模型將神經(jīng)網(wǎng)絡(luò)部署在上述幾種邊緣計算設(shè)備上,組成相關(guān)平臺,根據(jù)其運(yùn)行時的幀數(shù)(幀率)對維持期正常運(yùn)轉(zhuǎn)的必要功耗進(jìn)行推算,從而繪制出Roofline 模型,進(jìn)而通過直接的觀測,對數(shù)據(jù)結(jié)果進(jìn)行分析。此外,結(jié)合試驗結(jié)果,可以對部署在邊緣計算設(shè)備之上的神經(jīng)網(wǎng)絡(luò)進(jìn)行針對性優(yōu)化,目的是提高數(shù)據(jù)運(yùn)算、處理速度。
Roofline 性能分析模型是一種視覺上的直觀性能模型,經(jīng)常綁定在多核或者加速器處理架構(gòu)上,在運(yùn)行過程中對出現(xiàn)的數(shù)值進(jìn)行分析,印證相關(guān)設(shè)備的可操作性。與傳統(tǒng)的峰值百分比測算方式不同,Roofline 模型能夠?qū)⒕植啃?、帶寬和不同的并行化范例組合到統(tǒng)一的性能數(shù)據(jù)中,從而客觀判定設(shè)備性能。目前較為成熟的實驗流程如下:首先通過外置的功耗測量設(shè)備,對不同邊緣計平臺待機(jī)以及無神經(jīng)網(wǎng)絡(luò)負(fù)載時的功耗進(jìn)行測算;其次,結(jié)合模型的整體運(yùn)
行速度,通過系列運(yùn)算制作出“性能-功耗比”模型;最后,根據(jù)結(jié)果將各個邊緣計算平臺的待機(jī)功率與負(fù)載神經(jīng)網(wǎng)絡(luò)時的運(yùn)轉(zhuǎn)性能及功耗比進(jìn)行對照,為進(jìn)一步的分析提供準(zhǔn)確數(shù)據(jù)。為了充分說明邊緣計算的先進(jìn)性及潛在的發(fā)展商機(jī),本實驗進(jìn)行過程中,添加了K40、K80 等服務(wù)器級別的圖形處理器(GPU)對照組。
EDGE TPU 計算板本身具備4T/s 的峰值計算量,且其最大帶寬能夠達(dá)到50GB/s,此外,EDGE TPU 計算板的固定數(shù)據(jù)處理方式為量化產(chǎn)生的8 位整型數(shù)據(jù)運(yùn)算,其中8 位整型處理器不僅面積小、能量消耗低,僅僅為IEEE 二進(jìn)制浮點(diǎn)數(shù)算術(shù)標(biāo)準(zhǔn)(IEEE 754)定義下FP46 處理器的六分之一?;诖?,EDGE TPU 計算板本身性能極強(qiáng),在保持高速運(yùn)算的同時無需消耗大量外部能源。通常情況下,TPU 運(yùn)行前的重要準(zhǔn)備工作是量化數(shù)據(jù)處理步驟,盡管此舉會導(dǎo)致數(shù)據(jù)精度有所降低,但神經(jīng)網(wǎng)絡(luò)模型的泛化能力會有效淡化這一問題。為了確保量化不會對實驗造成影響,實驗人員采用32 位單精度和8 位定點(diǎn)權(quán)重參數(shù)對移動網(wǎng)絡(luò)V2 和卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)V4 進(jìn)行了測試,其中移動網(wǎng)絡(luò)V2 模型的精度浮點(diǎn)為0.792,精確度-int8 為0.779;卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)V4 的精度浮點(diǎn)為0.78,精確度-int8 為0.771,可見準(zhǔn)確性非常高,符合實驗要求。此外,本實驗采用四種常見神經(jīng)網(wǎng)絡(luò),將之作為實驗對象,其中Mobile Net SSD V1 和Mobile Net SSD V12 的卷積均為36(13dw),數(shù)據(jù)集為Coco,唯一不同的是重量大小,前者為4.27M、后者為3.4M;而Inception V1 和Inception V4 的卷積分別為53 和59,數(shù)據(jù)集均為Image net ,重量大小分別為6.8M 及4.3M[1]。
根據(jù)上文介紹,通過Roofline 性能分析模型,能夠?qū)⑦吘売嬎阍O(shè)備的性能、密度和存儲性等重要數(shù)據(jù)關(guān)聯(lián)在一起,通過二元直角坐標(biāo)系清晰顯示?;赗oofline 模型本身的限制,即網(wǎng)絡(luò)模型中的數(shù)據(jù)無法進(jìn)行高速緩存,因此模型中的位置會受到測算力與內(nèi)存寬帶的制約。一般來說,二元直角坐標(biāo)系中的縱向軸(Y 軸)代表的意義為浮點(diǎn)的每秒運(yùn)算次數(shù),Roofline 模型曲線中較為“平滑”的部分代表峰值計算速率;橫向軸(X 軸)代表的意義為計算的強(qiáng)度,記錄訪問DRAM 自己的浮點(diǎn)運(yùn)算,此外,內(nèi)存寬帶以每秒字節(jié)數(shù)的形式展現(xiàn)。根據(jù)數(shù)學(xué)運(yùn)算:(操作/s)÷(操作/字節(jié))=字節(jié)/s,因此其代表Roofline 模型曲線中呈現(xiàn)“傾斜”的部分。經(jīng)過大量實驗數(shù)據(jù)分析可知,如果計算強(qiáng)度不足,Roofline 網(wǎng)絡(luò)模型會受到內(nèi)存帶寬較為嚴(yán)重的制約,其在二元直角坐標(biāo)系中的位置常常處于曲線傾斜部分靠下的位置。
繪制Roofline 模型曲線之前,必須將計算平臺理論上可以達(dá)到的峰值以及內(nèi)存帶寬計算出來。
(1)峰值算力計算公式如下:PROnum×OpePerSecnum= OPSpeak,其中OPS 即為算力,Pro 代表處理器的數(shù)量,OpePerSec則表明不同處理器每秒鐘可以操作的數(shù)量,將上述三種邊緣計算設(shè)備(TX2、NANO 及EDGE TPU)通過該公式計算,得出的8 位算力分別是1.3TOPS、471GTOPS 以及4TOPS。將兩種服務(wù)器級別的圖形處理器(K80、K40)的峰值帶入該公式計算,可以得出其32位算力峰值分別為8.75T 以及4.3T。
(2)內(nèi)存帶寬計算公式如下:ClockRatememory×2BitW= BWtheory,公式中的BW 即為帶寬,ClockRate 的含義為時鐘頻率,而BitW 表示位寬。將邊緣計算板與服務(wù)器級別的圖形處理器分別帶入計算,得出理論上的峰值帶寬分比為:TX2-85.5GB/s、NANO-25.7GB/s、EDGE TPU-50GB/s、K80-480GB/s、K40-290GB/s。
根據(jù)三種邊緣計算板的算力及內(nèi)存帶寬數(shù)據(jù)繪制成Roofline 模型曲線圖并通過對數(shù)變換顯示,經(jīng)過分析可知,EDGE TPU 的算力超出TX2 兩倍、超出NANO 7 倍。造成如此大差距的根本原因在于EDGE TPU 計算板進(jìn)行了結(jié)構(gòu)改進(jìn),與部署在其上的神經(jīng)網(wǎng)絡(luò)高度契合,同時采用8 位頂點(diǎn)數(shù)據(jù)量化的方式,極大地提升了運(yùn)算速率,因而其性能效果已經(jīng)遠(yuǎn)遠(yuǎn)超過其他兩種邊緣計算板。
除了受到網(wǎng)絡(luò)帶寬限制以外,計算板自身的內(nèi)存帶寬還容易受到硬件自身的性能限制,連接線路在運(yùn)行過程中產(chǎn)生的電磁干擾信號以及其他各種各樣無法避免的物理干擾因素都會影響內(nèi)存帶寬的計算。面對此種情況,EDGE TPU 自帶的Bandwidth 帶寬測試模塊能夠發(fā)揮巨大作用,經(jīng)過實際應(yīng)用,得出TX2 的實際內(nèi)存帶寬為33.5GB/s、NANO 的實際內(nèi)存帶寬為15GB/s。而EDGE TPU 自身的實際內(nèi)存帶寬為30GB/s。對Roofline 模型內(nèi)存帶寬曲線圖進(jìn)行分析,可知TX2 的計算強(qiáng)度達(dá)到40 操作(算力)/字節(jié)時,即為峰值,與X 軸保持平行且無限延伸。一般來說,邊緣計算板在實際運(yùn)行中還會收到諸多影響,導(dǎo)致神經(jīng)網(wǎng)絡(luò)的位置無法與Roofline 模型曲線產(chǎn)生交集,但其與曲線峰值的距離恰恰證明了后續(xù)調(diào)整計算強(qiáng)度的可行性。Roofline 模型曲線與Y 軸的距離差值,一般情況下代表數(shù)據(jù)緩存的障礙。當(dāng)神經(jīng)網(wǎng)絡(luò)分布在曲線的斜線部分是,表明收到了網(wǎng)絡(luò)帶寬制約,無法達(dá)到計算峰值。當(dāng)NANO 的計算強(qiáng)度達(dá)到32操作(算力)/字節(jié)時,算力達(dá)到峰值,與X 軸保持平行且無限延伸。與上述兩種邊緣計算板不同,建立EDGE TPU 計算板Roofline模型時,必須量化神經(jīng)網(wǎng)絡(luò),為了避免受到原有權(quán)重的影響,應(yīng)該將浮點(diǎn)型的參數(shù)轉(zhuǎn)變?yōu)檎蛥?shù),并對計算強(qiáng)度進(jìn)行重新定義,此時計算強(qiáng)度應(yīng)該以“計算數(shù)/字節(jié)”進(jìn)行計量。根據(jù)Roofline 模型曲線可知,當(dāng)EDGE TPU 的計算強(qiáng)度達(dá)到140 操作(算力)/字節(jié)時,處于巔峰狀態(tài),與X 軸保持平行且無限延伸。將三種計算板的Roofline 模型曲線放在一起比較克制,EDGE TPU 曲線的傾斜上升過程最長,且峰值最高,造成此種現(xiàn)象的原因在于:
(1)EDGE TPU 中經(jīng)過量化處理的神經(jīng)網(wǎng)絡(luò)計算強(qiáng)度較大,受限于網(wǎng)絡(luò)帶寬進(jìn)而調(diào)整的幅度也較大。
(2)EDGE TPU 計算板由于自身高度集成,性能更佳[2]。
運(yùn)行過程中消耗的能源也是邊緣計算設(shè)備性能的一部分。結(jié)合實驗過程中產(chǎn)生的相關(guān)數(shù)據(jù),本文將邊緣計算設(shè)備的性能與做功單位瓦特(w)組合在一起,構(gòu)建出“性能(算力)/w”的評判指標(biāo),與上文所述一樣,結(jié)合K40 與K80 兩種服務(wù)器級別的圖形處理器進(jìn)行比較分析。
本實驗選用的測量邊緣計算設(shè)備功耗的設(shè)備型號為EXTECH- 380803,其誤差范圍上下不超過0.9%,其輸入電壓為標(biāo)準(zhǔn)家庭電壓,即220V 的交流電。經(jīng)過對相關(guān)資料的研究可知,嵌入式邊緣計算設(shè)備的主要能耗數(shù)據(jù)產(chǎn)生于計算板的整體能耗,而K40 與K80 的能耗數(shù)據(jù)產(chǎn)生于內(nèi)部寄存器。
為了保證功耗測算的精確性,必須在計算沒有負(fù)載神經(jīng)網(wǎng)絡(luò)的情況下,首先確定其空載運(yùn)行消耗,即空閑能耗。經(jīng)過實際測算的結(jié)果顯示,NANO、TX2、EDGE TPU 為整個開發(fā)計算板功效,其中NANO 的能耗最低,僅為1.5w;TX2 的空閑能耗為7.5w;EDGE TPU 的空閑能耗為3.5w;K40 的空閑能耗達(dá)到23w;而K80的空閑能耗最高,達(dá)到58w。經(jīng)過數(shù)據(jù)對比可知,TX2 的待機(jī)功率是邊緣開發(fā)計算板中最高的。
確定空閑能耗之后,應(yīng)該在負(fù)載神經(jīng)網(wǎng)絡(luò)的情況下測量各個邊緣計算平臺的工作能耗。經(jīng)過實際測量,得出每種計算板的性能(算力)與消耗功比之如下:NANO 為47.5、EDGE TPU 為585.3、TX2 為89.8、K40 為18.7、K80 為30。經(jīng)過對比可知,兩種服務(wù)器級別的圖形處理器算力與帶寬雖然非常高,但性能與功耗比數(shù)值偏低,即在運(yùn)行過程中,雖然對數(shù)據(jù)的計算、處理速度較快,但卻必須消耗大量外部能源。而EDGE TPU 的性能功耗比遠(yuǎn)遠(yuǎn)超過其他兩種邊緣計算板,超出NANO 11 倍,超出TX2 6 倍。由此可知,在執(zhí)行相同計算任務(wù)量的情況下,EDGE TPU 計算板不僅性能最佳,消耗的能源最低,因此在日常工作中,采用此種計算板的性價比最高。
VGG 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)由牛津大學(xué)于2014年首先提出?;谄浜啙嵭院蛯嵱眯?,成為了當(dāng)時最流行的卷積神經(jīng)網(wǎng)絡(luò)模型,具有良好的圖像分類和目標(biāo)檢測任務(wù)功能。在2014年的ILSVRC比賽中,VGG 在Top-5 中取得了92.3%的正確率[3]。本實驗將VGG16 網(wǎng)絡(luò)結(jié)構(gòu)部署在TX2 邊緣計算板上,通過記錄可知,其平均每秒鐘處理圖片數(shù)量為30 張,繪制出Roofline 模型之后,可知VGG16 模型的附著點(diǎn)位于斜線附近且距離較近。此種現(xiàn)象說明當(dāng)VGG16 網(wǎng)絡(luò)結(jié)構(gòu)運(yùn)行在TX2 時,其接受訪問的數(shù)據(jù)存量極為有限。為了使該結(jié)構(gòu)提升運(yùn)行效率,在帶寬允許范圍內(nèi)進(jìn)一步提升TX2 的利用率,應(yīng)該對其進(jìn)行修改,原則是大幅度削減卷積和維度,削減數(shù)量至少為三分之二,目的是較少計算量和方存量,但在整體上保留其原本的網(wǎng)絡(luò)架構(gòu)。經(jīng)過修改后的模型,運(yùn)行準(zhǔn)確度下降了5%,但是每秒鐘能夠處理的圖片數(shù)量提升了8.5 倍,而TX2 的每秒操作數(shù)也得到了顯著提高。
邊緣計算需要結(jié)合神經(jīng)網(wǎng)絡(luò)才能有效開展工作。通過Roofline性能分析模型開展實驗與分析,采用合理的量化方法,得出了較為嚴(yán)謹(jǐn)?shù)纳窠?jīng)網(wǎng)絡(luò)的帶寬容納能力和訪問存儲空間大小。