近年來,機器學習(ML)技術,尤其是機器學習的神經網路子集,幾乎已經迅速入侵了行動設備硬體和應用軟體的所有層面。許多常用且廣泛使用的手機應用程序都在後台運行ML技術,以針對特定用法和行為對設備進行微調。當手機的電源管理系統自動微調性能設置以延長電池壽命時,這就是機器學習的一個例子。
圖一 : 在所有機器學習案例中,最具挑戰性多媒體的強化功能。 |
|
當行動設備助理裝置追蹤正常的行車狀況,並發送有關火車或下班回家路上交通異常延誤的警示時,這也是機器學習的一種形式。而且,如果社交網路應用程序使用你朋友的名字來標記你所上傳的照片,那麼這也是正在運作中的機器學習的最好例證。
機器學習的重大挑戰
以節能和數據頻寬高效的方式來提供大規模運算,將成為行動運算晶片開發人員面臨的最大挑戰。
Arm機器學習事業部副總裁Steve Roddy指出,上面所提到的範例,都是下載到手機並在CPU或GPU上運行的軟體APP應用程序。深度嵌入功能還與行動設備的硬體緊密相關,例如,高性能的神經網路功能可以改善行動設備中的相機視頻和靜態影像捕獲品質。當行動設備連接到無線網路或蜂巢式網路時,高級WiFi和5G調變解調器將採用與機器緊密耦合的自適應機器學習演算法,並最大程度地提高數據傳輸速率。
Steve Roddy說,在所有這些機器學習的案例中,技術上最具挑戰性的是照片與視訊等多媒體的強化功能,通常稱為運算攝影。拍攝10秒鐘視頻或自拍照的消費者,希望在非常高分辨率的感測器上,以每秒60幀的速度執行具有智能對焦和曝光的穩定流暢視頻擷取;加上透過語音來啟動的命令處理功能,以設置功能並啟動或停止視頻擷取(自然語言處理)。
在即時視頻上同時運行所有這些功能,將會消耗大量的系統運算處理能力。在今年所宣布用於高階行動領域的最新行動設備,多數都採用了Arm架構處理器來提供具多核運算效能的15~20 TeraOp/Sec神經處理單元(NPU),可以滿足這些應用範例中的高運算要求。我們可以預期,在2020年甚至2021年將超過這些運算的水準,以節能和數據頻寬高效的方式來提供大規模運算,將成為目前行動運算晶片開發人員所面臨的最大挑戰。
針對不同應用部署機器學習
Arm的機器學習策略,是透過通用軟體層以及功能強大的整合開發與調試工具,盡可能將廣泛並支援ML的處理元素組合在一起。每個行動SoC開發團隊都會在設計上進行取捨,以針對每種不同的應用來部署運算能力和機器學習能力。
SoC設計人員必須考量面積與成本、靈活性與專用運算能力,以及性能與功耗之間的關係。這樣的結果是,沒有兩個行動SoC看起來是完全一樣的。
Arm提供了大量的Cortex CPU、可擴展的Mali GPU與Ethos NPU,因此客戶以異構混合架構的形式來設計,以達到其目標市場的正確性能目標。舉例來說,一個典型的新設計架構,可能具備有大小核的多核心Cortex CPU、多核心GPU和Ethos NPU的多核混合架構。
但是,Steve Roddy說,Arm的工作並不會隨著SoC設計人員選擇了IP而結束。Arm可以讓應用程序開發人員編寫一次性應用程序,並部署在任何執行Arm NN(neural network)的設備上,而Arm NN也可將ML工作負載指定到設備(CPU,GPU或NPU)中適當的Arm IP,開發人員無需擔心必須針對每種硬體類型調整應用程序。
運算革命
事實上,Arm正與生態系統各個層面的合作夥伴廣泛合作,Arm的技術是運算和連接革命的核心,這樣的革命正在改變人們的生活和企業運營方式。到目前為止,Arm的節能處理器設計已實現了超過1500億個晶片的智能計算,並且可以安全地為感測器、智慧手機和超級電腦等產品提供運算能力。
Arm與1,000多個技術合作夥伴一起站在設計、保護和管理晶片到雲端的所有運算領域最前線。基於這些生態系統的優勢和普遍性,人工智能生態系統已經在Arm架構上實現了標準化。Arm和生態系統一直在為AI優化的開放軟體和工具等方面進行大量投資,來確保Arm處理器在各種AI應用中都能發揮全部的潛力。
Steve Roddy認為,5G的加速發展,以及AI、xR和IoT等,正在改變運算需求。面對更身臨其境的應用案例,運算性能需要超越當今的水準。這就使得我們必須採用一種截然不同的方法來設計IP,稱為Total Compute,這種方法是透過在IP、軟體和工具內部,以跨IP、軟件和工具的方法進行優化,來提供經驗基礎的解決方案,提供安全的基礎及複雜系統所需的性能,並透過運算來解決未來的工作挑戰。
建構和運行機器學習應用程式
圖三 : 機器學習特點是運算量龐大、且需要大量的記憶體頻寬,這正是行動設備最大挑戰。 |
|
Arm推出神經網路機器學習(ML)軟體 Arm NN,這是一項關鍵技術,可在Arm平台上輕鬆建構並無縫運行機器學習應用程式。
實質上,Arm NN橋接了現有的神經網路框架(例如 TensorFlow 或 Caffe),以及在嵌入式 Linux平台上運行的底層處理硬體(例如CPU、GPU或新型的Arm機器學習處理器等)。這樣一來,開發人員就能夠繼續使用他們首選的框架和工具,透過Arm NN無縫轉換,就可以在底層平台上運行。
機器學習需要經過一個訓練階段,也就是學習階段(也是先學習「這些是汽車的圖片」),另外還需要經過一個推理階段,也就是應用所學的內容(推論「這是汽車的圖片嗎?」)。這些訓練的過程目前通常在伺服器或類似的設備上發生,至於推理則大量的移轉到網路邊緣來進行,這正是新版本Arm NN的重點所在。
結語
機器學習工作負載的特點是運算量龐大、且需要大量的記憶體頻寬,這正是行動設備和嵌入式設備面臨的最大挑戰之一。隨著運行機器學習的需求日漸增加,對這些工作的負載進行分區變得越來越重要,以便充分利用可用的運算資源。
軟體開發人員面臨的挑戰在於很多不同的平台,這就帶來一個現實問題,CPU通常包含多個內核(例如Arm的大小核架構,甚至還有多種內核類型),此外還要考慮GPU,以及許多其他類型的專用處理器,包括Arm機器學習處理器等,這些都是整體解決方案的一部分。在這些應用情境中,Arm NN通常可以派上用場。事實上,Arm NN在其中扮演了樞紐角色,既隱藏了底層硬體平台的複雜性,同時可以讓開發人員能夠繼續使用他們的首選的神經網路框架。