鄭重聲明:原文參見標題,如有侵權,請聯系作者,將會撤銷發布!
ASPLOS ’17, April 08-12, 2017, Xi’an, China
Abstract
如今的智能個人助理,如Apple Siri、Google Now和Microsoft Cortana,都是在雲端進行計算的。這種僅限雲計算的方法需要通過無線網絡將大量數據發送到雲計算,並給數據中心產生了巨大的計算壓力。然而,隨着移動設備中的計算資源變得更加強大和高效,出現了這樣的問題:這種只使用雲計算的處理是否值得推進,以及將部分或全部計算推到邊緣的移動設備上意味着什么。
在本文中,我們研究了純雲處理的現狀,並研究了能夠有效利用整套雲和移動設備來在這類智能應用上實現低延遲、低能耗和高數據中心吞吐量的計算划分策略。我們的研究使用了8個智能應用程序,涉及計算機視覺、語音和自然語言領域,所有這些應用程序都采用最先進的深度神經網絡(DNNs)作為核心機器學習技術。我們發現,鑒於DNN算法的特點,一種基於DNN中每一層的數據和計算變化的細粒度層級計算划分策略比現有方法具有顯著的延遲和能量優勢。
利用這一觀點,我們設計了一個輕量級調度器Neurosurgeon,它可以在移動設備和數據中心之間以神經網絡層的粒度自動划分DNN計算。Neurosurgeon不需要每個應用程序的配置文件。它適用於各種DNN架構、硬件平台、無線網絡和服務器負載級別,智能地划分計算以獲得最佳延遲或最佳移動能量。我們在一個最先進的移動開發平台上對Neurosurgeon進行了評估,結果表明,Neurosurgeon的端到端延遲平均改善了3.1倍,最高可達40.7倍;移動設備能耗平均降低59.5%,最高可達94.7%;數據中心吞吐量平均提高1.5倍,最高可達6.7倍。
1. Introduction
隨着移動設備越來越個性化和智能化,我們與當今移動設備的交互方式正在迅速改變。Apple Siri、Google Now和Microsoft Cortana等智能個人助理(IPA)在移動設備上默認處於集成狀態,隨着可穿戴設備和智能家庭設備的不斷普及,預計將越來越受歡迎[1,2]。與這些智能移動應用程序的主要接口是使用語音或圖片來引導設備並提出問題。這種交互模式的需求有望取代傳統的基於文本的輸入[3-5]。
為IPA應用處理語音和圖像輸入需要精確和高度復雜的機器學習技術,其中最常見的是深度神經網絡(DNNs)。DNNs以其在語音識別、圖像分類和自然語言理解等任務中的高精度,日益成為這些應用中的核心機器學習技術。包括Google、Microsoft、Facebook和Baidu在內的許多公司都在使用DNNs作為其生產系統中眾多應用程序的機器學習組件[6-8]。
先前的工作已經表明,基於DNN的智能應用中的語音或圖像查詢需要比基於文本的輸入更多的數量級處理[9]。傳統的移動設備已經不能以合理的延遲和能量消耗來支持這么大的計算量,這是一個常識。因此,目前web服務提供商用於智能應用程序的方法是在高端雲服務器上承載所有計算[10–13]。從用戶的移動設備生成的查詢將發送到雲進行處理,如圖1a所示。但是,使用這種方法,大量數據(例如,圖像、視頻和音頻)通過無線網絡上傳到服務器,導致高延遲和能源成本。
當數據傳輸成為延遲和能量瓶頸時,通過強大的移動SoC集成,現代移動硬件的性能和能量效率不斷提高[14,15]。基於這一觀察,本文重新研究了移動與雲之間智能應用的計算划分。特別是,我們研究如何將計算從雲端推到邊緣的移動設備上,以全部或部分執行這些傳統的僅限雲計算的應用程序。我們在這項工作中解決的關鍵問題包括:
1. 在當今的移動平台上執行大規模智能工作負載的可行性如何?
2. 在哪一點上,通過無線網絡傳輸語音和圖像數據的成本過高,無法證明雲處理的合理性?
3. 移動邊緣在為需要大量計算的智能應用程序提供處理支持方面應該扮演什么角色?
基於我們使用的8個基於DNNs的智能應用程序(涉及視覺、語音和自然語言領域)進行的調查,我們發現,對於某些應用程序,由於數據傳輸開銷高,在移動設備上本地執行(圖1b)的速度可能比僅使用雲的方法快11倍(圖1a)。此外,我們發現,一個基於DNN拓撲結構和組成層的細粒度層級划分策略,不僅不限制計算完全在雲中執行,也不限制計算完全在移動設備上執行,而且可以獲得非常優異的端到端性能和移動能源效率。通過將計算從雲端推到移動設備,我們還提高了數據中心的吞吐量,允許給定的數據中心支持更多的用戶查詢,並為移動和雲系統創造雙贏局面。
鑒於理想的細粒度DNN划分點依賴於DNN的層組成、使用的特定移動平台、無線網絡配置和服務器負載,我們設計了一個輕量級的動態調度器Neurosurgeon。Neurosurgeon是一個實時系統,涉及雲和移動平台,自動識別DNNs中的理想分區點,並協調移動設備和數據中心之間的計算分布。如圖1c所示,Neurosurgeon對DNN計算進行了划分,並利用了移動和雲的處理能力,同時減少了數據傳輸開銷。本文的具體貢獻如下:
- 深入調查現狀——我們展示了在雲端和移動設備上執行最新DNNs的延遲和能耗。我們觀察到,通過無線網絡上傳是當前方法的瓶頸,而移動設備執行通常比當前方法提供更好的延遲和能量消耗。(第3節)
- DNN計算和數據大小特征研究——我們提供了8個DNNs的計算和數據大小的深入層級特征,跨越計算機視覺、語音和自然語言處理。我們的研究表明,DNN層具有明顯不同的計算和數據大小特征,這取決於它們的類型和配置。(第4節)
- 跨雲和移動邊緣的DNN計算划分——基於DNN層的計算和數據特征,我們表明在層粒度上對DNN進行划分具有顯著的性能優勢。然后,我們設計了一個系統的方法來識別優化點,以便在一組應用程序中划分計算,從而減少延遲和移動能耗。(第4節)
- Neurosurgeon實時系統和層性能預測模型——我們開發了一組模型,根據DNN層的類型和配置預測其延遲和功耗,並設計Neurosurgeon,一個在移動設備和雲之間智能划分DNN計算的系統。我們證明Neurosurgeon顯著地改善了端到端的延遲,降低了移動能耗,並提高了數據中心的吞吐量。(第5、6節)
我們對一組8個DNNs應用程序的評估表明,使用Neurosurgeon平均可將端到端延遲提高3.1倍,將移動能耗降低59.5%,並將數據中心吞吐量提高1.5倍。
2. Background
在本節中,我們將概述深度神經網絡(DNN),並描述計算機視覺、語音和自然語言處理應用程序如何利用DNN作為其核心機器學習算法。
DNNs被組織在一個有向圖中,其中每個節點是一個處理元素(神經元),它將一個函數應用於其輸入並生成一個輸出。圖2描述了用於圖像分類的5層DNN,其中計算從左到右流動。圖的邊緣是定義數據流的每個神經元之間的連接。對輸入的不同部分應用相同函數的多個神經元定義了一個層。對於通過DNN的前向傳遞,層的輸出是下一層的輸入。DNN的深度由層數決定。計算機視覺(CV)應用程序使用DNNs從輸入圖像中提取特征,並將圖像分類為一個預定義的類。自動語音識別(ASR)應用程序使用DNN生成語音特征向量的預測,然后對其進行后處理以生成最有可能的文本。自然語言處理(NLP)應用程序使用DNNs從輸入文本生成的詞向量中分析和提取語義和句法信息。
3. Cloud-only Processing: The Status Quo
目前,雲提供商用於智能應用程序的方法是在雲中執行所有DNN處理[10–13]。這種方法的一大開銷是通過無線網絡發送數據。在這一部分中,我們研究了完全在最先進的移動設備上執行大型DNN的可行性,並與現狀進行了比較。
3.1 Experimental setup
我們使用一個真正的硬件平台,代表當今最先進的移動設備,由NVIDIA開發的Jetson TK1移動平台[16],並用於Nexus 9平板電腦[17]。Jetson TK1配備了NVIDIA最新的移動SoC之一的Tegra K1:四核ARM A15和Kepler mobile GPU,帶有單流多處理器(表1)。
我們的服務器平台配備了NVIDIA Tesla K40 GPU,這是NVIDIA最新提供的服務器級GPU之一(表2)。
我們使用caffe[18],一個積極開發的開源深度學習庫,用於移動設備和服務器平台。對於移動設備CPU,我們使用OpenBLAS[19],一個NEON矢量矩陣乘法庫,並使用可用的4核。對於這兩個GPU,我們都使用cuDNN[20],這是一個優化的NVIDIA庫,它加速了Caffe中的關鍵層,並對其余層使用Caffe的CUDA實現。
3.2 Examining the Mobile Edge
我們研究移動平台執行傳統的僅雲DNN工作負載的能力。我們使用AlexNet[21]作為我們的應用,這是一種用於圖像分類的最先進的卷積神經網絡。先前的工作已經注意到,AlexNet是當今部署在服務器環境中的DNN的代表[22]。
在圖3中,我們划分了AlexNet查詢的延遲,這是對152KB圖像的一個推斷。對於無線通信,我們使用TestMyNet[23]在幾個移動設備上測量3G、LTE和Wi-Fi的帶寬。
通信延遲——圖3a顯示了通過3G、LTE和Wi-Fi上傳輸入圖像的延遲。最慢的是超過870ms的3G連接,LTE和Wi-Fi連接分別需要180ms和95ms的上傳時間,這表明網絡類型對於實現低延遲是至關重要的。
計算延遲——圖3b顯示了移動CPU、GPU和雲GPU上的計算延遲。最慢的平台是移動CPU占用382ms,而移動GPU和雲GPU分別占用81ms和6ms。注意,移動CPU處理圖像的時間仍然比通過3G上傳輸入快2.3倍。
端到端延遲——圖3c顯示了現狀和僅移動方式所需的總延遲。每個條形圖頂部的一個符號是用於計算的端到端延遲的占比。目前的方法在服務器上計算的時間不到6%,傳輸數據的時間超過94%。與使用LTE和3G的現狀方法相比,移動GPU實現的端到端延遲更低,而使用LTE和Wi-Fi的現狀方法執行性能優於移動CPU。
能源消耗——我們用Watt Up? meter[24]和Huang等人描述的技術[25]來測量移動設備的能耗。與圖3a所示的趨勢類似,圖4a顯示通信能量在很大程度上取決於所使用的無線網絡的類型。在圖4b中,移動設備在CPU上的能量消耗高於GPU(雖然GPU需要更多的能量,但設備用於更短的突發,因此消耗的總能量更少)。圖4c顯示了純雲計算中的總移動能量消耗,以及移動執行在純雲計算消耗的能量主要由通信組成時。與通過LTE或3G傳輸輸入進行雲處理相比,移動GPU消耗的能量更少,而通過Wi-Fi進行的雲處理消耗的能量少於移動執行。
關鍵觀察——1)數據傳輸延遲通常高於移動計算延遲,尤其是在3G和LTE上。2)與移動處理相比,雲處理具有顯著的計算優勢,但由於數據傳輸開銷占主導地位,通常不會轉化為端到端的延遲/能量優勢。3)本地移動執行通常比純雲方式的延遲和能耗更低,而純雲方式在使用快速Wi-Fi連接時性能更好。
4. Fine-grained Computation Partitioning
根據第3節的研究結果,問題是在移動設備和雲之間划分DNN計算是否有利。基於DNN層提供了適合於划分計算的抽象觀察,我們從分析最新DNN體系結構在層粒度上的數據和計算特性開始。
4.1 Layer Taxonomy
在進行層級分析之前,了解當今DNNs中存在的各種類型的層是很重要的。
全連接層(fc)——全連接層中的所有神經元都與前一層中的所有神經元完全連接。該層使用一組學習的權重計算輸入的加權和。
卷積層和局部層(conv,local)——卷積層和局部層用一組學習的濾波器卷積圖像以生成一組特征圖。這些層的主要區別在於其輸入特征圖的尺寸、其過濾器的數量和大小以及應用於過濾器的步幅。
池化層(pool)——池化層在輸入特征圖的區域上應用預定義函數(例如max或average)將特征組合在一起。這些層主要在其輸入的維度、池化區域的大小以及應用池的步幅方面有所不同。
激活層——激活層將非線性函數分別應用於其每個輸入數據,生成與輸出相同數量的數據。神經網絡的激活層包括sigmoid層(sig)、線性整流層(relu)和硬Tanh層(htanh)。
本文研究的其他層包括:正則化層(norm)對空間分組特征圖中的特征進行正則化;softmax層(softmax)在分類的可能類上產生概率分布;argmax層(argmax)選擇概率最高的類;而隨機失活層(dropout)在訓練過程中隨機忽略神經元,避免模型過度擬合,並在預測過程中被傳播。
4.2 Characterizing Layers in AlexNet
首先研究了AlexNet中各層的數據和計算特性。這些特性提供了在層級找到移動和雲之間更好的計算划分的見解。在本節和后續章節的其余部分中,我們將在移動和雲平台中使用GPU。
層級延遲——圖5中的左欄(淺色)顯示移動平台上每個層的延遲,按順序從左到右排列。卷積層(conv)和全連接層(fc)是最耗時的層,占總執行時間的90%以上。中間部分的卷積層(conv3和conv4)比前一部分的卷積層(conv1和conv2)需要更長的執行時間。在DNN的后一部分,卷積層應用了大量的濾波器,逐步提取出更具魯棒性和代表性的特征,增加了計算量。另一方面,全連接層比網絡中的卷積層慢一個數量級。最耗時的層是fc6層,它是DNN中一個全連接層,占總執行時間的45%。
數據大小變化——圖5中的右欄(深色)顯示了每一層輸出數據的大小,這也是下一層的輸入。前三個卷積層(conv1、conv2和conv3)生成大量的輸出數據(顯示為最大的深色條),因為它們在輸入特征圖上應用數百個過濾器來提取有趣的特征。通過激活層(relu1-relu5),數據大小保持不變。池化層極大地減少了數據大小,高達4.7倍,因為他們總結了最大的相鄰特征的區域。網絡中更深的全連接層(fc6-fc8)逐漸減小數據大小,直到最后的softmax層(softmax)和argmax層(argmax)將數據減少為一個分類標簽。
關鍵觀察——1)根據其在網絡中的類型和位置,每一層都有不同的計算和數據剖面。2)移動GPU上卷積層和池化層的延遲相對較小,而全連接層的延遲較高。3)卷積層和池化層主要位於網絡的前端,而全連接層則位於后端。4)隨着卷積層增加數據量,然后池化層減少數據量,前端層逐漸減小數據量。最后幾層中的數據大小小於原始輸入。5)前端數據量普遍減小,后端每層移動延遲普遍較高,這說明在移動與雲之間的DNN中間有獨特的計算划分機會。
4.3 Layer-granularity Computation Partitioning
第4.2節的分析表明,在神經網絡中存在有趣的點來划分計算。在本節中,我們將探討在移動和雲之間的每一層對AlexNet進行划分。在本節中,我們使用Wi-Fi作為無線網絡配置。
圖6a中的每個條表示AlexNet的端到端延遲,在每個層之后進行划分。類似地,圖6b中的每個條表示Alexnet的移動能耗,在每個層之后進行划分。在特定層之后進行計算划分意味着在移動設備上執行DNN到該層,通過無線網絡將該層的輸出傳輸到雲,並在雲中執行其余層。最左邊的條表示發送原始輸入進行純雲處理。當分割點從左向右移動時,在移動設備上執行更多層,因此存在越來越大的移動處理部分。最右邊的條是在移動設備上本地執行整個DNN的延遲。
延遲划分——如果在前端划分,則數據傳輸控制端到端延遲,這與我們在第4.2節中的觀察一致,即數據大小在DNN前端是最大的。后端的划分提供了更好的性能,因為應用程序可以最小化數據傳輸開銷,同時利用功能強大的雲在后端執行計算量更大的層。在使用移動GPU和Wi-Fi的AlexNet的情況下,最后一個池化層(pool5)和第一個全連接層(fc6)之間的划分實現了最低的延遲,如圖6a所示,比純雲處理改進了2.0倍。
能量划分——類似於延遲,由於無線數據傳輸的高能量成本,傳輸輸入用於純雲處理不是最節能的方法。如圖6b所示,DNN中間的划分實現了最佳的移動能耗,比純雲計算的方法節能18%。
關鍵觀察結果——在層粒度上進行划分可以提供顯著的延遲和能效改進。對於使用GPU和Wi-Fi的AlexNet,最好的划分點在DNN的中間層之間。
4.4 Generalizing to More DNNs
我們將研究擴展到7個更智能的應用程序,以研究它們的數據和計算特性及其對計算划分機會的影響。我們使用Tonic suite[9]中提供的DNNs以及VGG(一種最先進的圖像分類DNN)和LTE作為無線網絡配置。關於基准的詳細信息見表3。我們計算每個DNN從第一個非輸入層到最后一個層的層數,包括argmax(如果存在)。
CV應用程序——剩余的三個計算機視覺DNN(VGG、FACE和DIG)具有與AlexNet(圖5)相似的特性,如圖7a-7c所示。前端層是增加數據的卷積層,池化層減少數據。后端層中的數據大小與原始輸入數據相似或更小。后端層的延遲高於大多數前端層(例如,fc6是VGG中最耗時的層),除了DIG是卷積層最耗時。與AlexNet類似,這些特性表明DNN的中間存在划分機會。圖8a顯示了VGG最佳延遲的划分點在中間層。此外,圖8a-8c顯示不同的CV應用程序具有不同的最佳延遲划分點,圖9a-9c顯示這些DNN的最佳能量划分點。
ASR和NLP應用程序——套件中的其余四個DNN(ASR、POS、NER和CHK)僅由全連接層和激活層組成。層分解如圖7d-7g所示,其中,在整個執行過程中,相同類型的層產生相似的延遲,並且數據大小保持相對恆定,除了每個DNN的第一層和最后一層。這些DNNs沒有數據增加層(即卷積層)或數據減少層(即池化層)。因此,在這些網絡的末端存在計算划分的機會。圖8d-8g和圖9d-9g分別顯示了這些DNNs的最佳延遲和能量的不同划分點。對於這些應用程序,最右邊的欄中有數據通信部分(僅移動處理),因為DNN的輸出被發送到雲中,用於這些應用程序所需的后處理步驟。
關鍵觀察結果——1)在具有卷積層和池化層的DNNs(例如計算機視覺應用)中,卷積層后的數據大小增加,池化層后的數據大小減少,而每層計算通常在執行過程中增加。2)只有具有相似大小的全連接層和激活層的DNNs在每層延遲和數據大小上變化較小(例如ASR和NLP DNNs)。3)DNN的最佳划分方法取決於其拓撲結構和組成層。計算機視覺DNNs有時在DNN的中間有較好的划分點,而對於ASR和NLP DNNs在開始或結束時進行划分更為有利。最佳划分點的強烈變化表明,需要一個基於神經網絡架構的系統在移動和雲之間划分DNN計算。
5. Neurosurgeon
DNN結構的最佳划分點取決於DNN的拓撲結構,它體現在每一層的計算和數據大小的變化上。此外,即使在相同的DNN結構下,無線網絡的狀態和數據中心的負載等動態因素也會影響最佳划分點。例如,移動設備的無線連接經常經歷高方差[31],直接影響數據傳輸延遲。數據中心通常會經歷日間負載模式[32],這導致其DNN查詢服務時間的高度差異。由於這些動態因素,需要一個自動系統智能地選擇最佳點來划分DNN,以優化端到端的延遲或移動設備的能耗。為了滿足這一需求,我們設計了一種智能DNN划分引擎,Neurosurgeon。Neurosurgeon由一個部署階段和一個實時系統組成,用於管理智能應用程序的划分執行。圖10顯示了Neurosurgeon的設計,它有兩個階段:部署和實時。
部署——Neurosurgeon對移動設備和服務器進行配置,以生成DNN層類型頻譜的性能預測模型(在第4.1節中列舉)。請注意,Neurosurgeon的分析是應用程序不可知的,只需要對給定的一組移動和服務器平台執行一次;不需要對每個應用程序進行分析。這組預測模型存儲在移動設備上,隨后用於預測每個層的延遲和能量成本(第5.1節)。
實時——在移動設備上執行基於DNN的智能應用程序期間,Neurosurgeon動態地確定DNN的最佳划分點。如圖10所示,步驟如下:1)Neurosurgeon分析並提取DNN架構的層類型和配置;2)系統使用存儲的層性能預測模型來估計在移動和雲上執行每個層的延遲和能耗;3)結合這些預測在當前無線連接帶寬和數據中心負載水平下,Neurosurgeon選擇最佳划分點,優化最佳端到端延遲或最佳移動能耗;4)Neurosurgeon執行DNN,在移動和雲之間划分工作。
5.1 Performance Prediction Model
Neurosurgeon對任意神經網絡結構的每層延遲和能量消耗進行建模。這種方法允許Neurosurgeon在不執行DNN的情況下估計DNN組成層的延遲和能量消耗。
我們觀察到,對於每種層類型,不同層配置有很大的延遲變化。因此,為了構造每種層類型的預測模型,我們改變層的可配置參數,並測量每種配置的延遲和功耗。利用這些剖面,我們為每種層類型建立了一個回歸模型,以根據其配置預測層的延遲和功耗。我們將在本節后面描述每一層的回歸模型變量。我們使用GFLOPS(每秒千兆浮點運算)作為性能度量。根據層類型,我們使用對數函數或線性函數作為回歸函數。當層的計算需求接近可用硬件資源的極限時,使用基於對數的回歸對性能平台進行建模。
卷積層、局部層和池化層的可配置參數包括輸入特征圖維數、濾波器數目、濾波器大小和步長。卷積層的回歸模型基於兩個變量:輸入特征圖中的特征數量和(濾波器大小/步長)2 × (濾波器數量),后者表示應用於輸入特征圖中每個像素的計算量。對於局部層和池化層,我們使用輸入和輸出特征圖的大小作為回歸模型變量。
在全連接層中,輸入數據乘以所學習的權重矩陣以生成輸出向量。我們使用輸入神經元和輸出神經元的數目作為回歸模型變量。Softmax和argmax層的處理方式類似。
與其他層相比,激活層具有較少的可配置參數,因為激活層在其輸入數據和輸出之間具有一對一的映射。我們使用神經元數目作為回歸模型變量。我們對正則化層應用同樣的方法。
如前所述,這是每個移動和服務器硬件平台生成一組預測模型所需的一次性分析步驟。這些模型使Neurosurgeon能夠根據其配置估計每一層的延遲和能量成本,這使得Neurosurgeon能夠支持未來的神經網絡架構,而無需額外的剖析開銷。
5.2 Dynamic DNN Partitioning
利用層性能預測模型,Neurosurgeon動態選擇最佳DNN划分點,如算法1所述。該算法分為兩步:目標DNN分析和划分點選擇。
分析目標DNN——Neurosurgeon分析目標DNN的組成層,並使用預測模型估計每一層在移動和雲上的延遲,以及在移動上的功耗。具體來說,在算法1的第11行和第12行,Neurosurgeon提取每個層的類型和配置(Li),並使用回歸模型預測在移動(TMi)和雲(TCi)上執行層Li的延遲,同時考慮當前數據中心負載水平(K)。第13行估計在移動設備上執行層Li的功耗(PMi),第14行基於最新的無線網絡帶寬計算無線數據傳輸延遲(TUi)。
划分點選擇——Neurosurgeon然后選擇最佳划分點。候選點位於每一層之后。第16行和第18行評估在每個候選點進行划分時的性能,並為最佳端到端延遲或最佳移動能耗選擇點。由於回歸模型的簡單性,此評估是輕量級和高效的。
5.3 Partitioned Execution
我們通過創建Caffe[18]的修改實例作為我們的移動端(NSmobile)和服務器端(NSserver)基礎設施,來創建Neurosurgeon的原型。通過Caffe的這兩個變體,我們使用Turffs[33]實現了我們的客戶端-服務器接口,這是一個開放源碼的RPC接口,用於進程間通信。為了允許動態選擇划分點,NSmobile和NSServer主機都完成DNN模型,划分點由NSmobile和NSServer運行時強制執行。給定NSmobile的划分決策,執行從移動設備開始,並通過DNN的各層級聯到該划分點。完成該層后,NSmobile將該層的輸出從移動設備發送到位於服務器端的NSserver。然后,NSserver執行其余DNN層。DNN執行完成后,最終結果從NSserver發送回移動設備上的NSmobile。請注意,DNN中只有一個划分點,移動設備向雲發送信息。
6. Evaluation
我們評估Neurosurgeon使用8個DNNs(表3)作為我們在Wi-Fi、LTE和3G無線連接中的基准,這些連接都是僅使用CPU和GPU的移動平台。我們證明Neurosurgeon對只使用雲計算的方法(第6.1節和第6.2節)實現了顯著的端到端延遲和移動能量的改進。然后我們將Neurosurgeon與MAUI[34]進行比較,MAUI[34]是一個著名的計算轉移框架(第6.3節)。我們還評估了Neurosurgeon對無線網絡連接(第6.4節)和服務器負載(第6.5節)變化的魯棒性,證明了這種動態實時系統的必要性。最后,我們評估Neurosurgeon通過將計算從雲端推送到移動設備來實現的數據中心吞吐量改進(第6.6節)。
6.1 Latency Improvement
划分點選擇——表4總結了Neurosurgeon在48種配置(即8個基准、3種無線網絡類型、移動CPU和GPU)的延遲優化選擇的划分點。綠色格子表示Neurosurgeon何時選擇最佳划分點並達到最佳加速,而白色格子表示Neurosurgeon何時選擇次優划分點。Neurosurgeon從48種配置中選出44種配置的最佳划分點。預測失誤的發生是因為划分點及其相關性能彼此非常接近,因此Neurosurgeon的延遲預測中的微小差異會改變選擇。在所有的基准和配置中,Neurosurgeon在最佳加速的98.5%內實現延遲加速。
延遲改善——圖11顯示Neurosurgeon在Wi-Fi、LTE和3G上的8個基准上相對於目前方法的延遲改善。圖11a顯示Neurosurgeon在配備CPU的移動平台上應用時的延遲改善,圖11b顯示具有GPU的移動平台。對於CV應用,Neurosurgeon為24例中的20例確定了最佳划分點,並實現了顯著的延遲加速,特別是當移動GPU可用時。對於NLP應用程序,Neurosurgeon甚至在Wi-Fi可用的情況下也能實現顯著的延遲加速。對於ASR,Neurosurgeon成功地識別出最好是完全在服務器上執行DNN,因此Neurosurgeon的表現與該特定基准的現狀類似。在所有的基准和配置中,Neurosurgeon平均達到3.1倍的延遲加速,比目前方法最多高出40.7倍。
6.2 Energy Improvement
划分點選擇——表5總結了Neurosurgeon確定的最佳移動能量划分點。Neurosurgeon從48種配置中選出44種配置的最佳划分點。對於次優選擇,Neurosurgeon的平均能耗比當前方法低24.2%。
能源改善——圖12顯示了Neurosurgeon實現的移動能源消耗,並將其標准化為當前方法。圖12a和12b分別顯示了僅限CPU的移動平台和配備GPU的移動平台的結果。在優化最佳能源消耗時,Neurosurgeon的移動能源平均減少了59.5%,最多比當前方法減少了94.7%。與延遲的改善類似,當移動平台配備GPU時,大多數基准測試的能耗降低也更高。
6.3 Comparing Neurosurgeon to MAUI
在本節中,我們將Neurosurgeon與MAUI[34]進行比較,MAUI[34]是一個通用的轉移框架。注意,MAUI是以控制為中心的,對代碼區域(函數)進行推理和決策,而Neurosurgeon是以數據為中心的,根據數據拓撲結構進行划分決策,即使調用了相同的代碼區域(函數),數據拓撲結構也可能不同。
圖13顯示了Neurosurgeon在執行8個DNN基准測試時(平均在三種無線網絡類型中)標准化為MAUI所實現的延遲加速。圖13a顯示了將MAUI和Neurosurgeon應用於僅限CPU的移動平台時的結果,圖13b顯示了在配備GPU的移動平台上的結果。在這個實驗中,我們假設對於MAUI,程序員已經最優地注釋了需要傳輸的最小程序狀態。
圖13顯示Neurosurgeon在計算機視覺應用上的表現明顯優於MAUI。對於NLP應用,Neurosurgeon和MAUI都正確地認為移動設備上的本地計算是最優的。然而,MAUI對於更復雜的場景(例如VGG、FACE、DIG和ASR)做出了錯誤的轉移選擇。這是因為MAUI依賴於某個DNN層類型的過去調用來預測該層類型的未來調用的延遲和數據大小,從而導致預測失誤。這種以控制為中心的預測機制不適用於DNN層,因為同一類型層的延遲和數據大小在一個DNN中可能有很大的不同,Neurosurgeon的DNN分析步驟和預測模型正確地捕捉了這種變化。例如,在VGG中,第一和第二卷積層的輸入數據大小明顯不同:conv1.1為0.57MB,conv1.2為12.25MB。對於移動CPU和LTE,MAUI決定在conv1.2之前轉移DNN,這是由於DNN的預測失誤,上載了大量數據,導致其速度比現有方法慢了20.5倍。同時,Neurosurgeon成功地發現,在這種情況下,最好完全在雲中執行DNN,從而獲得與目前方法相似的性能,並比MAUI快了20.5倍。
6.4 Network Variation
在這一部分中,我們評估Neurosurgeon對現實世界測量的無線網絡變化的彈性。在圖14中,頂部的圖顯示了一段時間內T-Mobile LTE網絡的測量無線帶寬。底部的圖顯示了當前方法和Neurosurgeon在移動CPU平台上執行AlexNet(IMC)的端到端延遲。底部的圖注釋是Neurosurgeon的動態執行選擇,分為本地、遠程或划分。目前的方法很容易受到網絡變化的影響,因此在低帶寬階段應用程序的延遲會顯著增加。相反,Neurosurgeon通過改變划分選擇,根據可用帶寬調整數據傳輸量,成功地減輕了大變化的影響,並提供一致的低延遲。
6.5 Server Load Variation
在本節中,我們將評估Neurosurgeon如何在服務器負載變化時做出動態決策。數據中心通常會經歷日間負載模式,高服務器利用率導致DNN查詢的服務時間增加。Neurosurgeon根據空閑期間定期ping服務器得到的當前服務器負載水平來確定最佳划分點,從而避免了高用戶需求和由此產生的高負載造成的長延遲。
圖15顯示了隨着服務器負載的增加,通過當前方法和Neurosurgeon實現的AlexNet(IMC)端到端延遲。移動設備配有CPU,並通過Wi-Fi傳輸數據。如圖所示,當前方法不能動態地適應不同的服務器負載,因此在服務器負載高的情況下性能會顯著下降。隨着服務器接近峰值負載水平,當前方法的端到端延遲從105ms增加到753ms。另一方面,在考慮服務器負載的情況下,Neurosurgeon動態地調整划分點。在圖15中,兩條垂直虛線表示Neurosurgeon改變其選擇的點:從低負載時的完全在雲端執行,到中等負載時在移動端和雲端之間划分DNN,最后在峰值負載時完全轉移到移動端。無論服務器負載如何,Neurosurgeon將執行圖像分類的端到端延遲保持在380ms以下,通過考慮服務器負載及其對服務器性能的影響,Neurosurgeon始終提供最佳的延遲,而不考慮服務器負載的變化。
6.6 Datacenter Throughput Improvement
Neurosurgeon將部分或全部計算從雲上傳到移動設備,以改善端到端的延遲並降低移動能耗。這種新的計算范式減少了數據中心所需的計算,從而縮短了查詢服務時間,提高了查詢吞吐量。在本節中,我們將評估Neurosurgeon在這方面的有效性。我們使用BigHouse[38]來比較當前方法和Neurosurgeon之間的數據中心吞吐量。傳入的DNN查詢平均由基准套件中的8個DNNs組成。我們將DNN查詢的平均服務時間與Google web搜索的查詢分布相結合來計算查詢的到達率。
圖16顯示了神經外科醫生實現的數據中心吞吐量改進,該改進與在服務器上執行整個計算的基線現狀方法標准化。每個集群顯示給定無線網絡類型的結果。在每一個集群中,第一個條代表了當前的僅雲方法,而其他四個條代表了具有不同組成的移動硬件的神經外科醫生。例如,“30%移動GPU用戶”表示30%的傳入請求來自配備GPU的移動設備,而其余70%來自僅配備CPU的設備。
當移動客戶端通過快速Wi-Fi網絡連接到服務器時,Neurosurgeon的平均吞吐量提高了1.04倍。隨着無線連接向LTE和3G的轉變,其吞吐量的提高變得更加顯著:LTE的吞吐量提高了1.43倍,3G的吞吐量提高了2.36倍,Neurosurgeon調整了其划分選擇,隨着無線連接質量的降低,DNN計算的大部分被轉移到移動設備上。因此,數據中心的平均請求查詢服務時間縮短,吞吐量提高。我們還觀察到,隨着帶有GPU的移動設備百分比的增加,Neurosurgeon增加了從雲端到移動端的計算負載,從而提高了數據中心的吞吐量。
7. Related Work
以前的研究工作集中在將計算從移動設備轉移到雲上。在表6中,我們比較了Neurosurgeon和屬性最相關的技術,包括是否有大量的數據傳輸開銷、以數據為中心還是以控制為中心的划分、低的實時開銷、是否需要特定於應用程序的分析以及是否需要程序員的注釋。
除了這些關鍵區別之外,計算划分框架還必須對何時轉移計算進行預測,預測的正確性決定了應用程序的最終性能改進。COMET[35]在線程的執行時間超過預定義閾值時轉移線程,忽略任何其他信息(要傳輸的數據量、可用的無線網絡等)。Odessa[36]只考慮部分函數的執行時間和數據需求,而不考慮整個應用程序,做出計算划分決策。CloneCloud[37]為同一函數的所有調用做出相同的轉移決策。MAUI[34]的轉移決策機制更好,因為它分別對每個函數調用進行預測,並在選擇轉移哪個函數時考慮整個應用程序。然而,MAUI不適用於Neurosurgeon執行的計算划分,原因有很多:1)MAUI需要為每個單獨的應用程序執行一個分析步驟,而執行DNN划分需要進行預測。Neurosurgeon根據DNN拓撲結構進行決策,而無需任何實時分析。2)MAUI是以控制為中心,對代碼區域(功能)進行決策,而神經外科醫生根據數據拓撲結構進行划分決策,即使執行相同的代碼區域(功能),數據拓撲結構也可能不同。在一個DNN中,給定類型的層(即使映射到同一個函數)可以具有顯著不同的計算和數據特性。3)Neurosurgeon只傳輸正在處理的數據,而不是傳輸所有程序狀態。4)MAUI要求程序員注釋他們的程序,以確定哪些方法是“可轉移的”。
除了之前研究數據中心系統的利用率和效率的工作[39-52]外,人們越來越關注為深度神經網絡工作負載構建大型數據中心系統。為了更好地處理DNN計算,已經為數據中心提出了各種加速器,如GPUs、ASICs和FPGAs[9、53-55]。在設計適用於移動邊緣的緊湊型DNN方面也有研究做出了努力。微軟和谷歌在移動平台上探索用於語音識別的小規模DNNs[56,57]。MCDNN[58]提出生成替代DNN模型,以權衡性能/能量的准確性,並選擇在雲端或移動端執行。本文研究了移動設備和雲之間的智能協作,以在不犧牲DNNs的高預測精度的前提下,實現傳統的只使用雲計算的大規模DNNs,從而減少延遲和能耗。
8. Conclusion
作為當今智能應用的重要組成部分,深度神經網絡傳統上是在雲端執行的。在這項工作中,我們檢驗了這種純雲處理的當前方法的有效性,並表明將輸入數據傳輸到服務器並遠程執行DNN並不總是最優的。我們研究了8種DNN體系結構的計算和數據特性,包括計算機視覺、語音和自然語言處理應用,並給出了神經網絡中不同點的划分計算的權衡。基於這些見解,我們開發了Neurosurgeon,一個能夠在移動設備和雲之間以神經網絡層的粒度自動划分DNN的系統。Neurosurgeon適應各種DNN架構、硬件平台、無線連接和服務器負載水平,並選擇最佳延遲和最佳移動能耗的划分點。在8個基准測試中,與純雲處理相比,Neurosurgeon的平均改善為3.1倍,最高可達40.7倍;移動能耗平均降低59.5%,最高可達94.7%;數據中心吞吐量平均提高1.5倍,最高可達6.7倍。