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