作者:Alexandre Peixoto Ferreira, Arm首席研究軟體架構師
在《持續演化的邊緣運算》這篇白皮書中,我們強調了實現智慧邊緣運算所面臨的三大挑戰,分別為:
- 促成硬體異質性
- 排除開發作業阻礙
- 確保規模化之後的安全性
本文將檢視上述三大挑戰的第一項,也就是異質性。我們將探討異質性出現的方式、對系統的影響,以及如何解決其既有的挑戰。
異質性如何提升設計的運作空間
邊緣運算基礎設施的特點是異質性,就像雲端運算基礎設施的特點是同質性一樣。邊緣基礎設施的異質性源自於艱困的環境、在每個節點高昂、且不斷增加的裝設成本(因應長久存在的基礎設施)。這些在邊緣端驅動的多種因素,在雲端上是不存在的。邊緣運算使用異質解決方案,原因是它們可以藉由提供不同等級的運算能力,來提升設計的運作空間;每種設計配置都對應了不同的成本、尺寸、功耗與能源。
異質性可以在某個節點內(節點裡面)出現;一個節點可能包含某些方面並不相同的數個處理器,例如像Cortex-A與Cortex-M等不同系列的Arm架構、不同的功能與尺寸、big-LITTLE架構,或者甚至是針對特定工作負載的加速器。邊緣運算的異質性也可能出現在不同的節點之間,例如隨著時間推進、部署來自不同世代的同個平台。
使用雲端工具與方法的後續影響
使用雲端原生的開發工具已經證實可以促成產品的快速推出上市、更簡易的編程、可攜性,並為雲端開發人員帶來可管理的部署作業。雲端的工具與方法可以為開發人員在邊緣提供類似的效益,但異質性也會帶來挑戰。異質性與它產生的影響,若不是被這些工具忽視,就是使用過於單純的解決方案。
其中一個受異質性影響的領域是應用程式的服務品質(QoS)。QoS的管理也是邊緣運算基礎設施的主要需求,如果為每個應用程式的每個元件提供足夠的資源,就可以維持QoS。在系統設計是用來運作的所有情況下,我們都預期可以在邊緣維持QoS。應用程式或應用程式的詮釋資料(metadata)提供有關資源需求的資訊,而邊緣基礎設施則必須保證這些資源的可用性。這可能成為一個爭議點,因此所有的共享資源都必須加以管理。
異質性因此提升了設計的運作空間,但同時也讓複雜性變得更高;因此抑制這種複雜性就成為維持這些效益的關鍵。以下圖表中說明了針對兩種異質性情況來減少複雜性的過程。
節點之間:異質叢集與具備異質架構的異質節點
目前的編排器(orchestrator)假設節點間的運算資源需求差異僅在於核心數量和記憶體容量,這也代表所有的核心都提供類似的運算能量。但事實上,例如針對配置Cortex-A76核心(如 Raspberry Pi 5)的節點進行設計的應用程式元件,在運作於配置Cortex-A72核心(如Raspberry Pi 4)的節點時,表現將大不相同。然而,從編排器的角度來看,這兩個節點的能力是相等的。
在先前的一篇部落格文章中(Adapting Kubernetes for High-Performance IoT Edge Deployments),我們導入了參考核心(reference core)的概念,提出因應此一問題的解決方案。在這個情境下。在與參考核心相比較時,每個節點都提供預期中的運算能量。應用程式規範它與參考核心有關的運算資源需求,並預期在不同的節點運作時,都能取得充足的運算能量以達成QoS。至於同一節點上出現不同類型核心的big.LITTLE大小核心特定案例,則是透過轉換被分配去運作應用程式的核心類型資源需求來解決問題。
節點之內:混合節點
混合節點(Hybrid nodes)為可能運作不同作業系統與基礎軟體的多套運算單元提供不同的架構,像Cortex-M4等微控制器核心、即時核心(real-time cores)與加速器,是我們可能會在混合節點上看到的額外核心。
在這種情況中,主要的需求是可攜性、編程與部署的簡易性。即便是針對Arm-A、Arm-M與Arm-R等擁有類似指令集架構與規範的核心系列,想要以雲端原生形式的工具打造可部署且可維護的解決方案並非易事。
混合系統中的雲端原生開發作業
近期另一篇部落格文章(Exploring Hybrid Runtime for Cloud-Native Deployment in High-Performance IoT Edge)則呼應了之前敘述的一些問題。該篇文章敘述了一個概念驗證案例,展示在一套混合系統中,如何使用雲端原生的編排工具從Cortex-A把應用程式部署到Cortex-M。
該解決方案讓我們可以把應用程式分割成多個部份,而每個部份則依據其需求在不同的核心上運作。如此一來在規模擴大後,韌體的更新會變得簡單、安全且可控。使用混合的runtime則讓我們有可能隨選更新在Cortex-M上運作的東西,例如功能性的升級。在這種情境下,我們一方面把複雜性降低,並促成那些額外運算元件做更好的運用。
對於有興趣使用韌體container影像檔與混合runtime組件來學習如何部署container嵌入式應用的開發人員,我們也已發表相關的學習途徑(Learning Path),請點此連結取得相關資訊。
未來發展
邊緣運算是個不斷演進的領域,而新的工作負載與需求也持續在改變與增加當中。在所有的運算層面中,AI能力、工作負載與加速器也逐漸深入至各個領域。這裡提出的一些展示參考核心與混合runtime部署的技術,未來可望在減少邊緣運算的複雜性方面扮演有用的角色。
不過,我們預期還是得因應其中的一些落差,並與我們的生態系及學術界合作,讓這些觀念更廣泛地傳播開來、取得回饋,並同時開發支援性與替代性的模型。歡迎讀者們與我們分享您對我們提出之解決方案的看法,或是利用Arm技術論壇與我們聯繫。
(參考原文:Evolving Edge Computing and Harnessing Heterogeneity;中文版校閱者為 Arm 首席應用工程師張維良)
- 【Arm的AI世界】持續演化的邊緣運算與異質性的掌控 - 2024/11/04
- 【Arm的AI世界】KleidiCV 0.1協助開發人員釋放影像處理能力 - 2024/10/03
- 【Arm的AI世界】Python在Arm平台上的應用 - 2024/09/04