年前施巍鬆教授和其團隊(張星洲、王一帆、張慶陽)應《計算機研究與發展》編輯部之邀,慶刊60週年發表論文,邊緣計算社群經過和施巍鬆教授溝通,將論文整理成幾篇,方便大家閱讀。字字珠璣,願大家多多轉發分享。
本文為第二篇《推動邊緣計算的七項核心技術》。
推動邊緣計算的七項核心技術
計算模型的創新帶來的是技術的升級換代,而邊緣計算的迅速發展也得益於技術的進步。本節總結了推動邊緣計算髮展的7項核心技術,它們包括網路、隔離技術、體系結構、邊緣作業系統、演算法執行框架、資料處理平臺以及安全和隱私。
1.網路
邊緣計算將計算推至靠近資料來源的位置,甚至於將整個計算部署於從資料來源到雲端計算中心的傳輸路徑上的節點,這樣的計算部署對現有的網路結構提出了 3個新的要求:
1)服務發現。在邊緣計算中,由於計算服務請求者的動態性,計算服務請求者如何知道周邊的服務,將是邊緣計算在網路層面中的一個核心問題.傳統的基於DNS的服務發現機制,主要應對服務靜態或者服務地址變化較慢的場景下.當服務變化時,DNS的伺服器通常需要一定的時間以完成域名服務的同步,在此期間會造成一定的網路抖動,因此並不適合大範圍、動態性的邊緣計算場景。
2)快速配置。在邊緣計算中,由於使用者和計算裝置的動態性的增加,如智慧網聯車,以及計算裝置由於使用者開關造成的動態註冊和撤銷,服務通常也需要跟著進行遷移,而由此將會導致大量的突發網路流量。與雲端計算中心不同,廣域網的網路情況更為複雜,頻寬可能存在一定的限制.因此,如何從裝置層支援服務的快速配置,是邊緣計算中的一 個核心問題。
3)負載均衡。邊緣計算中,邊緣裝置產生大量的資料,同時邊緣伺服器提供了大量的服務.因此,根據邊緣伺服器以及網路狀況,如何動態地對這些資料進行排程至合適的計算服務提供者,將是邊緣計算中的核心問題。
針對以上3個問題,一種最簡單的方法是,在所有的中間節點上均部署所有的計算服務,然而這將導致大量的冗餘,同時也對邊緣計算裝置提出了較高的要求。因此,我們以“建立一條從邊緣到雲的計算路徑”為例來說,首當其衝面對的就是如何尋找服務,以完成計算路徑的建立。命名資料網路(named data networking,NDN)是一種將資料和服務進行命名和定址,以P2P和中心化方式相結合進行自組織的一種資料網路。而計算鏈路的建立,在一定程度上也是資料的關聯建立,即資料應該從源到雲的傳輸關係.因此,將NDN引入邊緣計算中,通過其建立計算服務的命名並關聯資料的流動,從而可以很好地解決計算鏈路中服務發現的問題。
而隨著邊緣計算的興起,尤其是使用者移動的情況下,如車載網路,計算服務的遷移相較於基於雲端計算的模式更為頻繁,與之同時也會引起大量的資料遷移,從而對網路層面提供了動態性的需求。軟體定義網路(software definednetworking,SDN), 於2006年誕生於美國GENI專案資助的史丹佛大學Clean Slate課題,是一種控制面和資料面分離的可程式設計網路,以及簡單網路管理.由於控制面和資料面分離這一特性,網路管理者可以較為快速地進行路由器、交換器的配置,減少網路抖動性,以支援快速的流量遷移,因此可以很好地支援計算服務和資料的遷移。同時,結合NDN和SDN,可以較好地對網路及其上的服務進行組織,並進行管理,從而可以初步實現計算鏈路的建立和管理問題。
2.隔離技術
隔離技術是支撐邊緣計算穩健發展的研究技術,邊緣裝置需要通過有效的隔離技術來保證服務的可靠性和服務質量.隔離技術需要考慮2方面:
1)計算資源的隔離,即應用程式間不能相互干擾;
2)資料的隔離,即不同應用程式應具有不同的訪問許可權。
在雲端計算場景下,由於某一應用程式的崩潰可能帶來整個系統的不穩定,造成嚴重的後果,而在邊緣計算下,這一情況變得更加複雜.例如在自動駕駛作業系統中,既需要支援車載娛樂滿足使用者需求, 又需要同時執行自動駕駛任務滿足汽車本身駕駛需求,此時,如果車載娛樂的任務干擾了自動駕駛任務,或者影響了整個作業系統的效能,將會引起嚴重後果,對生命財產安全造成直接損失.隔離技術同時需要考慮第三方程式對使用者隱私資料的訪問許可權問題,例如,車載娛樂程式不應該被允許訪問汽車控制匯流排資料等.目前在雲端計算場景下主要使用VM虛擬機器和Docker容器技術等方式保證資源隔離。邊緣計算可汲取雲端計算髮展的經驗,研究適合邊緣計算場景下的隔離技術。
在雲平臺上普遍應用的Docker技術可以實現應用在基於0S級虛擬化的隔離環境中執行,Docker的儲存驅動程式採用容器內分層映象的結構,使得應用程式可以作為一個容器快速打包和釋出,從而保證了應用程式間的隔離性.Li等人建立 了一個基於Docker遷移的有效服務切換系統,利用Docker的分層檔案系統支援,提出了一種適合邊緣計算的高效容器遷移策略,以減少包括檔案系統、二進位制記憶體映象、檢查點在內的資料傳輸的開 銷.Ha等人提出了一種VM切換技術,實現虛擬機器VM的計算任務遷移,支援快速和透明的資源放置,保證將VM虛擬機器封裝在安全性和可管理行要求較高的應用中.這種多功能原語還提供了動態遷移的功能,對邊緣端進行了優化.這種基於VM的隔離技術提高了應用程式的抗干擾性,增加了邊緣計算系統的可用性。
3.體系結構
無論是如高效能運算一類傳統的計算場景,還是如邊緣計算一類的新興計算場景,未來的體系結構應該是通用處理器和異構計算硬體並存的模式。異構硬體犧牲了部分通用計算能力,使用專用加速單元減小了某一類或多類負載的執行時間,並且顯著提高了效能功耗比。邊緣計算平臺通常針對某一類特定的計算場景設計,處理的負載型別較為固定,故目前有很多前沿工作針對特定的計算場景設計邊緣計算平臺的體系結構.
ShiDianNao首次提出了將人工智慧處理器放置在靠近影象感測器的位置,處理器直接從感測器讀取資料,避免影象資料在DRAM中的存取帶來的能耗開銷;同時通過共享卷積神經網路(convolutional neural networks, CNNs) 權值的方法 ,將模型完整放置在SRAM中,避免權值資料在DRAM 中的存取帶來的能耗開銷;由於計算能效地大幅度提升(60倍),使其可以被應用於移動端裝置.EIE:是一個用於稀疏神經網路的高效推理引擎,其通過稀疏矩陣的並行化以及權值共享的方法加速稀疏神 經網路在移動裝置的執行能效.Phi-Stack則提出了針對邊緣計算的一整套技術桟,其中針對物聯網裝置設計的PhiPU,使用異構多核的結構並行處理 深度學習任務和普通的計算任務(實時作業系統). In-Situ AI是一個用於物聯網場景中深度學習應用的自動增量計算框架和架構,其通過資料診斷,選擇最小資料移動的計算模式,將深度學習任務部署 到物聯網計算節點.除了專用計算硬體的設計,還有 一類工作探索FPGA在邊緣計算場景中的應用. ESE[6]通過FPGA提高了稀疏長短時記憶網路 (long short term memory network,LSTM)在移動裝置上的執行能效,用於加速語音識別應用.其通過負載平衡感知的方法對LSTM進行剪枝壓縮,並保證硬體的高利用率,同時在多個硬體計算單元中排程 LSTM 資料流;其使用 Xilinx XCKU060 FPGA 進行硬體設計實現,與CPU和GPU相比,其分別實現了 40倍和11. 5倍的能效提升.Biookaghazadeh 等人通過對比FPGA和GPU在執行特定負載時吞 吐量敏感性、結構適應性和計算能效等指標,表明 FPGA更加適合邊緣計算場景。
針對邊緣計算的計算系統結構設計仍然是一個新興的領域,仍然具有很多挑戰亟待解決,例如如何高效地管理邊緣計算異構硬體、如何對這類的系統結構進行公平及全面的評測等.在第三屆邊緣計算會議(S E C 2 018 )上首次設立了針對邊緣計算體系結構的Workshop:ArchEdge,鼓勵學術界和工業界對此領域進行探討和交流。
4.邊緣作業系統
邊緣計算作業系統向下需要管理異構的計算資源,向上需要處理大量的異構資料以及多用的應用負載,其需要負責將複雜的計算任務在邊緣計算節點上部署 、排程 及遷移從而保證計算任務的可靠性以及資源的最大化利用。與傳統的物聯網裝置上的實時作業系統Contikt和FreeRTOS不同,邊緣計算作業系統更傾向於對資料、計算任務和計算資源的管理框架。
機器人作業系統(robot operating system, ROS) 最開始被設計用於異構機器人機群的訊息通訊管理,現逐漸發展成一套開源的機器人開發及管理工具,提供硬體抽象和驅動、訊息通訊標準、軟體包管理等 一系列工具,被廣泛應用於工業機器人、自動駕駛車輛即無人機等邊緣計算場景.為解決ROS中的效能 問題,社群在2015年推出ROS2. 0,其核心為引入資料分發服務(data distribution service,DDS), 解決ROS對主節點(master node)效能依賴問題,同時DDS提供共享記憶體機制提高節點間的通訊效率.EdgeOSH則是針對智慧家居設計的邊緣作業系統,其部署於家庭的邊緣閘道器中,通過3層功能抽象連線上層應用和下層智慧家居硬體,其提出面向多樣的邊緣計算任務,服務管理層應具有差異性 (differentiation)、可擴充套件性(extensibility)、隔離性 (isolation)和可靠性(reliability)的需求.Phi-Stack 中提出了面向智慧家居裝置的邊緣作業系統 PhiOS,其引人輕量級的REST引擎和LUA直譯器,幫助使用者在家庭邊緣裝置上部署計算任務. OPenVDAP是針對汽車場景設計的資料分析平臺,其提出了面向網聯車場景的邊緣作業系統 EdgeOSv.該作業系統中提供了任務彈性管理、資料共享以及安全和隱私保護等功能.
根據目前的研究現狀,ROS以及基於ROS實現的作業系統有可能會成為邊緣計算場景的典型作業系統,但其仍然需要經過在各種真實計算場景下部署的評測和檢驗。
5.演算法執行框架
隨著人工智慧的快速發展,邊緣裝置需要執行越來越多的智慧演算法任務,例如家庭語音助手需要 進行自然語言理解、智慧駕駛汽車需要對街道目標檢測和識別、手持翻譯裝置需要翻譯實時語音資訊等.在這些任務中,機器學習尤其是深度學習演算法佔有很大的比重,使硬體裝置更好地執行以深度學習演算法為代表的智慧任務是研究的焦點,也是實現邊緣智慧的必要條件.而設計面向邊緣計算場景下的高效的演算法執行框架是一個重要的方法.目前有許 多針對機器學習演算法特性而設計的執行框架,例如谷歌於2016年釋出的TensorFloE、依賴開源社群力量發展的Caffe等,但是這些框架更多地執行在雲資料中心,它們不能直接應用於邊緣裝置.如表2所示,雲資料中心和邊緣裝置對演算法執行框架的需求有較大的區別。在雲資料中心,演算法執行框架更多地執行模型訓練的任務,它們的輸人是大規模的批量資料集,關注的是訓練時的迭代速度、收斂率和框架的可擴充套件性等.而邊緣裝置更多地執行預測任務,輸人的是實時的小規模資料,由於邊緣裝置計算資源和儲存資源的相對受限性,它們更關注演算法執行框架預測時的速度、記憶體佔用量和能效。
為了更好地支援邊緣裝置執行智慧任務,一些專門針對邊緣裝置的演算法執行框架應運而生.2017年,谷歌釋出了用於移動裝置和嵌人式裝置的輕量級解決方案TensorFlow Lite,它通過優化移動應用程式的核心、預先啟用和量化核心等方法來減少執行預測任務時的延遲和記憶體佔有量.Caffe2 是Caffe的更高階版本,它是一個輕量級的執行框架,增加了對移動端的支援.此外,PyTorch和 MXNet等主流的機器學習演算法執行框架也都開始提供在邊緣裝置上的部署方式。
Zhang 等人對 TensorFlow,Caffe2 ,MXNet, PyTorch和TensorFlow Lite等在不同的邊緣裝置 (MacBook Pro,Intel FogNode,NVIDIA Jetson TX2,Raspberry Pi 3 Model B+ ,Huawfi Nexus 6P) 上的效能從延遲、記憶體佔用量和能效等方面進行了對比和分析,最後發現沒有一款框架能夠在所有維度都取得最好的表現,因此執行框架的效能提升空間比較大.開展針對輕量級的、高效的、可擴充套件性強的邊緣裝置演算法執行框架的研究十分重要,也是實現邊緣智慧的重要步驟。
6.資料處理平臺
邊緣計算場景下,邊緣裝置時刻產生海量資料,資料的來源和型別具有多樣化的特徵,這些資料包括環境感測器採集的時間序列資料、攝像頭採集的圖片視訊資料、車載LiDAR的點雲資料等,資料大多具有時空屬性。構建一個針對邊緣資料進行管理、分析和共享的平臺十分重要。
以智慧網聯車場景為例,車輛逐漸演變成一個移動的計算平臺,越來越多的車載應用也被開發出來,車輛的各類資料也比較多。由.Zhang等人提出的OPenVDAP是一個開放的汽車資料分析平臺,如下圖3所示,Open VDAP分成4部分,分別是異構計算平臺(VCU )、作業系統(EdgeOSv)、駕駛資料收集器(DDI)和應用程式庫(libvdap),汽車可安裝部署該平臺,從而完成車載應用的計算,並且實現車與雲、車與車、車與路邊計算單元的通訊,從而保證了車載應用服務質量和使用者體驗.因此,在邊緣計算不同的應用場景下,如何有效地管理資料、提供資料分析服務,保證一定的使用者體驗是一個重要的研究問題。
7.安全和隱私
雖然邊緣計算將計算推至靠近使用者的地方,避免了資料上傳到雲端,降低了隱私資料洩露的可能性。但是,相較於雲端計算中心,邊緣計算裝置通常處於靠近使用者側,或者傳輸路徑上,具有更高的潛在可能被攻擊者入侵,因此,邊緣計算節點自身的安全性仍然是一個不可忽略的問題.邊緣計算節點的分散式和異構型也決定其難以進行統一的管理,從而導致一系列新的安全問題和隱私洩露等問題.作為資訊系統的一種計算模式,邊緣計算也存在資訊系統普遍存在的共性安全問題,包括:應用安全、網路安全、資訊保安和系統安全等。
在邊緣計算的環境下,通常仍然可以採用傳統安全方案來進行防護,如通過基於密碼學的方案來進行資訊保安的保護、通過訪問控制策略來對越權訪問等進行防護.但是需要注意的是,通常需要對傳統方案進行一定的修改,以適應邊緣計算的環境。同時,近些年也有些新興的安全技術(如硬體協助的可信執行環境)可以使用到邊緣計算中,以增強邊緣計算的安全性。此外,使用機器學習來增強系統的安全防護也是一個較好的方案。
可信執行環境(trusted execution environment, TEE)是指在裝置上一個獨立於不可信作業系統而存在的可信的、隔離的、獨立的執行環境,為不可信環境中的隱私資料和敏感計算,提供了安全而機密的空間,而TEE的安全性通常通過硬體相關的機制來保障。常見的TEE包括Intel軟體防護擴充套件、Intel管理引擎、x86系統管理模式、 AMD記憶體加密技術、AMD平臺安全處理器和ARM TrustZone技術。通過將應用執行於可信執行環境中,並且將使用到的外部儲存進行加解密,邊緣計算節點的應用,可以在邊緣計算節點被攻破時,仍然可以保證應用及資料的安全性。