年前施巍鬆教授和其團隊(張星洲、王一帆、張慶陽)應《計算機研究與發展》編輯部之邀,慶刊60週年發表論文,邊緣計算社區通過和施巍鬆教授溝通,將論文整理成幾篇,方便你們閱讀。字字珠璣,願你們多多轉發分享。node
本文爲第二篇《推進邊緣計算的七項核心技術》。算法
推進邊緣計算的七項核心技術編程
計算模型的創新帶來的是技術的升級換代,而邊緣計算的迅速發展也得益於技術的進步。本節總結了推進邊緣計算髮展的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技術。經過將應用運行於可信執行環境中,而且將使用到的外部存儲進行加解密,邊緣計算節點的應用,能夠在邊緣計算節點被攻破時,仍然能夠保證應用及數據的安全性。