# 【簡報導讀-001】 利用 ExecuTorch 和 Arm Ethos U NPU 優化邊緣 AI  **為了方便大家快速理解,以下內容使用 Google NotebookLM 產生相關文字及語音解說,如想深入了解的朋友可參考原始來源。** **原始Youtube影片: "[LIS25 321 Optimizing Edge AI with Executorch and Ethos U](https://www.youtube.com/watch?v=ADWKQeS_NdY)"** 影片上傳日期: 2025/5/31 主要講者: Erik Lundell 主題: 利用 ExecuTorch 和 Arm Ethos U NPU 優化邊緣 AI {%youtube ADWKQeS_NdY%} ## Podcast 雙人對話式 Podcast 重點摘要: {%youtube vBufon_Tp2Q%} ## 核心概念與要點: 1. PyTorch 與 Executorch 概覽: * PyTorch 是 Meta 的開源機器學習框架,強調「能駭、可塑、靈活」(able, hackable, flexible)。 * PyTorch 是一個大型專案,包含 8 到 11 個子儲存庫,並且在 2024 年有 3500 名貢獻者。 * Executorch 是 PyTorch 的一個子儲存庫,旨在為各種不同的邊緣設備提供完整的部署解決方案。 * Executorch 的一個關鍵優勢是在運行時無需 Python 環境,並且支援裸機環境,即無需操作系統。 * Executorch 提供一個簡單的解決方案,可以使用相同的高級框架,同時透過優化的後端實現在不同平台上獲得優化的性能。 2. ARM Ethos NPU 系列: * Ethos 是 ARM 設計的高度低功耗 MPU (機器處理單元),專為 IoT 使用案例設計。 * 目前有三個主要世代:Ethos-U55、Ethos-U65 (已在市場上大量產品中使用) 和最新一代 Ethos-U85。 * Ethos-U55 和 U65 具有靈活的 CPU 集成,可以與 Cortex-M 或 Cortex-A 處理器配對。 * Ethos-U85 是最新一代,在 1 GHz 時鐘頻率下可達到高達 4 TOPS 的性能。 * Ethos NPU 系列針對記憶體限制的系統進行了優化,包含 sparsity (稀疏性) 等機制,支援在設備上運行整個推理過程。 * Ethos NPU 原生支援常見的架構,如 Transformer 和 CNN 網路,避免了 CPU 和 NPU 之間的上下文切換。 3. Executorch 針對 Ethos NPU 的後端開發: * ARM 團隊與 Executorch 專案已合作約一年半。 * 在 2023 年 10 月 Executorch Alpha 版本發布時,就已經有一個針對 Ethos-U 的概念驗證後端。 * 目前 (截至演講時間) 該後端處於 Beta 0.6 版本,並已進行了大幅改進。 * 目標是在今年 10 月達到 Ethos-U 的完整支援,並在框架中全面支援 Ethos-U。 4. 在 Ethos NPU 上部署模型的流程: * 目標是在嵌入式平台上執行推理,並利用 Ethos-U 進行加速。 * 流程分為提前編譯 (Ahead-of-Time, AOT) 和運行時 (Runtime) 兩個主要階段。 * 提前編譯流程: * 從 PyTorch 模型開始 (Python class)。 * 使用 torch.export 將模型匯出 (export) 為可由框架處理的表示形式。 * 與 torch.compile 不同的是,export 需要捕獲整個模型到一個單一圖形中,因為運行時沒有 Python 環境。 * 進行量化 (quantization):由於 Ethos-U 是整數處理器,量化是必需的。可以利用 torch.export 中的量化功能,並有針對 Ethos-U 的專門量化器來確保正確性。 * 進行分區 (partitioning):決定模型的哪些部分由 NPU 加速執行,哪些部分可能回退到 CPU。ARM 的分區策略目標是分區整個圖形以在 NPU 上執行。 * 進行降低 (lowering):將中間表示圖形轉換為可由運行時使用的格式。這包括創建委託 (delegates) (在運行時加載到 NPU 的工作負載)、記憶體規劃以及將整個程序序列化 (serialization) 到一個單一的 PTE (PyTorch ExecuTorch) 文件中。 * 使用 Ethos-U 後端進行編譯:針對每個分區,將 IR 轉換為 TOSA IR (ARM 的機器學習應用標準) 後,送入 Vela 編譯器,生成 Ethos-U 的位元流,並烘焙到 PTE 文件中。 * PTE 文件: 是一個單一的巨石文件 (monolith file),包含運行時所需的一切。 * 運行時流程: * 運行時消耗 PTE 文件,該文件包含一系列的調用,其中 NPU 部分是一個大的委托調用。 * 當 Executorch 框架遇到委托調用時,會調用 ARM Ethos-U 後端來執行工作負載。 * 可以在實際硬體上運行,也可以在模擬器 (simulators) 上運行。 * 應用程式會包含一個小型 (約 50 KB) 的 Executorch 運行時,負責遍歷指令列表、處理記憶體和調用操作符核心。 * 框架中有一個簡單的運行器範例,可用於測試和作為應用程式開發的起點。 5. 模擬執行與虛擬平台 (FVP): * ARM 提供稱為虛擬平台 (Virtual Platforms, FVPs) 的模擬器,模仿 CoreStone 參考系統。 * Executorch 已集成了 Corestone 300 (Cortex M55 + Ethos U55) 和 Corestone 320 (Cortex M85 + Ethos U85) 這兩個 FVP。 * 這些 FVP 可供免費下載使用。 * 使用 FVP 可以在沒有開發板的情況下驗證功能,並估計推理性能。 * 可以使用後端提供的實用腳本在 FVP 上運行 PTE 文件。 * 在 FVP 上運行是裸機 (bare metal) 環境。 6. 後端狀態與未來發展: * 後端已取得很大進展,目前已可供使用,並提供範例。 * 團隊樂於接收回饋,對問題反應迅速。 * 可以透過在 GitHub 上使用 "partner ARM" 標籤提出 issues,或加入 Executorch 的 Discord 頻道與團隊聯繫。 7. Q&A 環節補充要點: * 關於 PTE 文件內容:原本講者表示 PTE 文件包含核心二進位檔,但後來更正說明核心是包含在構建的運行時中,而不是在 PTE 文件中。構建 ARM 後端時需要將其編譯到框架中。 * 討論到與其他嵌入式 ML 工作的潛在結合,例如針對 Corestone 320 運行的 FreeRTOS 參考實現中開發的部分模型更新功能。 ## 總結: 本次演講詳細介紹了如何利用 PyTorch 的 Executorch 框架與 ARM Ethos NPU 系列協同工作,實現邊緣 AI 模型的優化部署。Executorch 提供了一個無 Python、可支援裸機的統一框架,而 Ethos NPU 提供高效能、低功耗的硬體加速。通過提前編譯流程 (匯出、量化、分區、降低和編譯) 生成一個單一的 PTE 文件,並在輕量級的 Executorch 運行時中執行。ARM 團隊在 Ethos-U 後端上的工作已接近成熟,並提供了方便的虛擬平台模擬器,極大地簡化了開發和測試流程。這為在資源受限的邊緣設備上實現高效的 AI 推理提供了強大的解決方案。 請注意: 由於來源是演講摘錄,部分語句可能不完整或非標準格式,此簡報已盡量提煉核心信息。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.