Arm Cortex-A320 是目前最小型的 Armv9-A 架構 CPU。得益于該處理器的推出,開發者現在能有更多選擇決定如何處理物聯網邊緣人工智能 (AI) 工作負載。然而,面對多樣化的選擇,要確定適合特定 AI 應用的處理器,系統開發者需要通過比較基于 Arm Cortex-A、Arm Cortex-M 和 Arm Ethos-U NPU 的設備及其可能的搭配進行決策。除了成本的考量,開發者還需了解各款處理器具備的 AI 功能,以及自身的項目可以通過何種軟件開發流程實現簡化。
在嵌入式設備中實現高能效 AI 計算
近年來,嵌入式設備中的 AI 計算效率突飛猛進。Arm 的 M 和 A 處理器架構的提升使得每單位能耗的機器學習 (ML) 推理性能呈數倍增長。特別是在 M 處理器架構上,基于 Armv8.1-M 架構的 Cortex-M52、Cortex-M55 和 Cortex-M85 CPU 集成了可編程的 Helium 向量擴展,從而解鎖了在微控制器級設備上實現新 AI 用例的能力。此外,得益于可伸縮向量擴展 (SVE2) 的引入,基于 Armv9 架構的 Cortex-A 處理器(如最新推出的 Cortex-A320)相較其前代產品進一步提升了 AI 性能。而 Ethos-U 系列 NPU 的最新一代產品 Ethos-U85 ,尤其在處理 Transformer 網絡時,表現更為高效。
如何選擇合適的硬件?
每種架構在不同方面各有優勢。在考慮哪款硬件最適合時,原始性能應與設計靈活性相權衡。此外,還需要將包括 CI/CD 要求在內的軟件開發流程納入考量。
性能
滿足所需的 AI 處理性能至關重要。Cortex-A 處理器本就是一款面向多種應用的可編程處理器,集成了 Neon/SVE2 向量引擎,旨在加速神經網絡和各種向量化代碼,并能原生支持多種數據類型。而帶有 Helium 向量引擎的 Cortex-M 處理器具備相同特性,且更適用于成本和能耗相對有限的目標用例。相比之下,包含 Ethos-U85 在內的 Ethos-U NPU 則專為處理神經網絡算子而設計,尤其還具備了量化的 8 位整數數據權重的能力,對于可以映射到這些 NPU 硬件的網絡算子,其任務表現十分高效。
基于 Armv9 架構的最新一代 Cortex-A CPU 支持 BF16 等廣泛的數據類型。此外,引入的新矩陣乘法指令顯著提高了神經網絡的處理性能。關于如何通過 SVE2 實現矩陣乘法的詳細解釋,推薦閱讀《Neon、SVE 和 SME 實現矩陣-矩陣乘法的比較》。
Cortex-M55 是首款集成 Helium 向量技術的 Cortex-M 處理器,此后推出的 Cortex-M85 也集成了這一技術。兩者都實現了雙節拍 (dual-beat) Helium 配置,每個時鐘周期可執行多達八次的 8 位整數乘積累加運算 (MAC) 操作。此外,Helium 還原生支持 FP16、FP32 等其他數據類型。
最后,在具有量化數據類型的模型上,具體來說是 INT8 權重,以及 INT8 或 INT16 激活數據,Ethos-U NPU 可以非常高效地處理神經網絡。這種設計雖會限制其適用的數據類型,但可提高 NPU 的執行效率。
評估處理器在實際 AI 工作負載中性能的方法之一,是分析其每種數據類型和每個時鐘周期的理論 MAC 執行能力。由于神經網絡處理使用大型數據集,因此內存訪問性能是另一大關鍵因素。不過在本例中,我們著重于處理器密集 (processor-bound) 性能,而非內存密集 (memory-bound) 性能。
神經網絡處理速率通常受限于底層硬件的 MAC 操作速率。雖然實際的網絡處理性能因網絡結構而異,但下表所示的的理論 MAC 處理速率提供了硬件能力的指標。
軟件
另外一個考慮的因素是每個硬件方案的軟件支持。Arm 為包括 Cortex-A、Cortex-M 和 Ethos-U 等在內的各類 AI 硬件解決方案提供全面的開源運行時支持軟件。Arm 為各種 ML 框架和運行時提供硬件加速支持,包括 PyTorch、ExecuTorch、Llama.cpp、TensorFlow 和 LiteRT(通過 XNNPACK)。任何 ML 框架都可通過優化,進而充分利用 Arm 的 AI 特性。在 Arm 處理器上執行的運行時可利用 CMSIS-NN(針對 Cortex-M/Helium)和 Arm Compute Library 或 Arm KleidiAI(針對 Neon/SVE2 中的 INT8 和 BF16)等軟件加速庫。Vela 編譯器是一個通過優化模型來實現高效部署的離線工具,可在 Ethos-U 上進一步調優可執行二進制文件,從而實現更卓越的硬件性能。
何時使用 Ethos-U?
一些具有明確定義的 AI 工作負載的邊緣 AI 用例可以通過將神經網絡處理卸載到專用 NPU 上,從而釋放主處理器的計算密集型任務,并由此獲益。如前所述,Ethos-U NPU 在處理具有量化的 8 位整數權重的神經網絡時非常高效。Transformer 網絡特別適合在 Ethos-U85 上運行。然而,Ethos-U85 NPU 需由一個主處理器(可以是 Cortex-M 或 Cortex-A)進行驅動。
主處理器與 Ethos-U 間可以有多種配置方式。Ethos-U 可由像 Cortex-M55 等啟用 Helium 的 Cortex-M 處理器驅動使用。目前市面上已有這種系統級芯片 (SoC) 配置的示例。近期,在小語言模型 (SLM) 上運行生成式 AI 工作負載愈發受到業界關注。Ethos-U 與啟用 Helium 的Cortex-M處理器相結合,是此類用例的上佳之選。
此外,還有基于 Cortex-A 處理器的 SoC 集成了基于 Cortex-M 核心的 ML 島與 Ethos-U。這類 SoC 通常適合運行 Linux 等功能豐富的操作系統,并支持更大、更靈活的內存系統。Cortex-M CPU 擁有 32 位可尋址內存地址空間,能實現直接內存地址映射,而像 Cortex-A320 等更新款的 Cortex-A 處理器則具有 40 位內存可尋址空間,還可以通過內存管理單元 (MMU) 的虛擬內存尋址。
隨著大語言模型 (LLM) 的執行逐漸轉向邊緣 AI 設備,擁有更大和更靈活的內存系統可以簡化較大參數規模(例如大于 10 億參數的 LLM)模型的執行。Cortex-M 和 Ethos-U85 的組合很適合于越來越受到歡迎的小語言模型。Cortex-M 處理器具有 4GB 的尋址空間,并保留了其中一些空間用于系統功能。隨著 LLM 模型規模的增長,具有更大和更靈活內存的 Cortex-A 系統將變得至關重要。
Arm 近期又宣布了另一種配置方式,稱為“直接驅動 (direct drive)”,即 Cortex-A 處理器直接驅動 Ethos-U NPU。這種配置無需專門的 Cortex-M 作為“驅動”處理器。Ethos-U85 的 Linux 驅動程序可在 Cortex-A 主控制器上運行。
利用 Cortex-A320 滿足邊緣設備的生成式 AI 需求
邊緣 AI 系統開發者現在有更多的選擇來優化物聯網中最靠近邊緣側的 AI。無論選擇 Cortex-M、Cortex-A 還是 Ethos-U 加速系統,每種選擇都可滿足不同的需求。Cortex-A320 處理器能夠直接驅動 Ethos-U85,這讓設計人員獲得了更多的靈活性。作為 Arm 最小型、最高能效的 Armv9-A 處理器,Cortex-A320 在提高邊緣側 AI 能效的同時,適應嵌入式系統中生成式 AI 演進的需求。點擊此處,了解 Arm 變革性的邊緣側 AI 解決方案如何塑造物聯網的未來!