作者:Arm 工程部應用機器學習總監 Robert Elliott、Arm 工程部首席工程師 Fredrik Knutsson、Arm 物聯網事業部技術管理總監 Mark Quartermain
在快速發展的機器學習領域,PyTorch 憑借其靈活性和全面的生態系統,已成為模型開發的熱門框架。Arm 與 Meta 合作在 ExecuTorch 中引入了對 Arm 平臺的支持,進一步簡化了模型算法開發過程,實現無縫在邊緣側設備上部署 PyTorch 模型。
ExecuTorch 對 Ethos-U85 的支持
高性能的 Arm Ethos-U85 NPU 可滿足在邊緣側日益增長的運行先進人工智能 (AI) 推理工作負載的需求,包括諸如大語言模型等基于 Transformer 的網絡。Arm 針對 Ethos-U 提供參考設計,如 Arm Corstone-320 物聯網參考設計平臺,以加速和簡化芯片開發周期。參考設計平臺中包含固定虛擬平臺 (FVP) 等許多項目,FVP 可仿真整個系統,為 Ethos-U85 平臺上進行前沿的嵌入式軟件開發和神經網絡部署提供支持。
Arm 通過在 Ethos-U85 上支持 ExecuTorch 測試版,為開發者構建物聯網邊緣側應用提供了更多支持。開發者可以借助 ExecuTorch,高效地部署原生開發的 PyTorch 模型,基于 Arm 平臺構建出智能且響應迅速的物聯網解決方案。
隨著該軟件包的推出,想要創建邊緣側 AI 應用的開發者能夠在平臺上市前數月就開始模型和應用的軟件開發工作。
在 Ethos-U85 上開始使用 ExecuTorch
ExecuTorch GitHub 公共代碼倉庫中提供了完整的開發環境。其中包含一個集成且經過測試的開發流程和所有必要組件。
三個簡單的步驟如下所示:
設置 ExecuTorch
https://pytorch.org/executorch/main/getting-started-setup.html
設置 Arm Build 環境
https://pytorch.org/executorch/main/executorch-arm-delegate-tutorial.html
在 arm_executor_runner 上編譯并運行模型
https://pytorch.org/executorch/main/executorch-arm-delegate-tutorial.html#delegated-quantized-workflow
之后就可以在此流程的基礎上編譯和運行模型,從 Ethos-U85 驅動程序采集周期數信息等運行時行為。
為了讓最終用戶更輕松地完成此過程,Arm 還向 ExecuTorch 代碼倉庫貢獻了腳本:
設置 ExecuTorch
setup.sh:下載必要的軟件
https://github.com/pytorch/executorch/blob/main/examples/arm/setup.sh
run.sh:在 Corstone-320 FVP 上編譯并運行模型
https://github.com/pytorch/executorch/blob/main/examples/arm/run.sh
要構建其他模型,可使用提前編譯器腳本 aot_arm_compiler.py,它能將 PyTorch 項目代碼 (nn.module) 轉換為 ExecuTorch 項目代碼(.pte flatbuffer 文件)。
腳本鏈接:
https://github.com/pytorch/executorch/blob/main/examples/arm/aot_arm_compiler.py
要編寫使用 ExecuTorch 的自定義應用,可以按照示例 executor_runner 應用中的應用流程進行操作。
示例 executor_runner 應用鏈接:
https://github.com/pytorch/executorch/tree/main/examples/arm/executor_runner
隨著陸續支持更多算子,我們將能夠支持更多的 PyTorch 模型。后續添加的更多功能,將通過 pytorch.org 上的 Ethos-U 教程材料進行演示。
Ethos-U 教程:
https://pytorch.org/executorch/main/index.html
部署流程的詳細工作原理
利用 ExecuTorch 的可擴展性和 Arm 的張量算子集架構 (TOSA) 的特性,Arm 在 ExecuTorch 中實現了 Ethos-U 支持。Ethos-U 編譯器 Vela 已通過 TOSA 前端得到增強,可以為 Ethos-U 系列中的所有產品編譯模型。
為了將這些組件整合為一個連貫的工作流程,需要遵循以下步驟:
將 PyTorch 模型轉換為可部署的 ExecuTorch 程序(AOT 流程)
將 ExecuTorch 程序編譯為可執行文件,以便部署在 Corstone-320 上(運行時流程)
ExecuTorch 的 AOT 流程
此過程首先使用 PyTorch 的dynamo export 功能,將 PyTorch 模型轉換為量化的 TOSA 表示。然后,就能利用 Vela 編譯 TOSA 前端生成一組 Ethos-U 機器指令(稱為命令流)。接著,命令流被捆綁到 Executorch 程序中,由 flatbuffer 文件 (.pte) 表示。該文件中包含了 ExecuTorch 運行時使用 Ethos-U 硬件執行推理所需的所有內容。
ExecuTorch 運行時流程
ExecuTorch 運行時以 C/C++ 編寫,可支持多種后端。Arm 對 ExecuTorch 運行時進行了擴展,以包含對 Ethos-U 設備驅動程序的支持。按照此流程操作,將生成一個獨立的經過編譯的可執行文件。在 Corstone-320 FVP 上部署可執行文件非常簡單,只需要在調用 FVP 時使用適當的標志即可。
Ethos-U85 和 Corstone-320
Ethos-U 系列 NPU 為邊緣側 AI 提供高性能、高能效的解決方案。Ethos-U55(同樣受 ExecuTorch 支持)廣泛應用于眾多 Arm Cortex-M 異構系統,而 Ethos-U65 則將 Ethos-U 系列的適用性擴展到基于 Cortex-A 的系統,并提升了性能。
Ethos-U85 進一步擴展了 Ethos-U 產品線,支持當前以及未來更多使用 Transformer 神經網絡架構的邊緣側工作負載。與前代產品相比,Ethos-U85 的性能提升了四倍,能效提高了 20%,在主流神經網絡上的利用率高達 85%。
Ethos-U85 的顯著特性包括:
配置范圍從 128 到 2048 MAC/周期,在 1GHz 下可提供高達 4 TOP/s 的性能。
兼容基于 Cortex-A 和 Cortex-M 的系統。
通過支持 TOSA,對主要的神經網絡提供原生支持。
可對主要的神經網絡進行全面硬件加速。
完整列表請參閱 Ethos-U85 技術概述
https://developer.arm.com/documentation/102684/0000
未來規劃
Arm 會陸續增加新的算子支持,擴展 ExecuTorch 核心 ATen 算子的覆蓋范圍,并支持更多模型在 Ethos-U 上運行。Arm 將持續專注于提高性能,以確保模型在 Ethos-U 上高效運行。
ExecuTorch 委托框架支持將 Ethos-U 不支持的算子回調到 CPU 上運行,使用參考內核執行。Arm 致力于使用 CMSIS-NN 在 Cortex-M CPU 上實現卓越性能,為回調算子提供更好的支持,并確保在沒有 Ethos-U 功能的設備上也能實現良好性能。
上述的軟件包和 Corstone-320 FVP 是 Arm 在簡化應用開發道路上邁出的又一步,歡迎各位開發者繼續探索代碼和構建過程,并向 Arm 提供反饋意見。同時,Arm 也致力于支持更多特性和模型,并盡可能充分發揮硬件性能。
-
ARM
+關注
關注
134文章
9184瀏覽量
369668 -
AI
+關注
關注
87文章
31842瀏覽量
270626 -
開發環境
+關注
關注
1文章
231瀏覽量
16726 -
機器學習
+關注
關注
66文章
8453瀏覽量
133152
原文標題:三步輕松上手!在 Arm Ethos-U85 上使用 ExecuTorch
文章出處:【微信號:Arm社區,微信公眾號:Arm社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
如何在STM32上實現USB主機讀寫U盤文件
![如<b class='flag-5'>何在</b>STM32<b class='flag-5'>上</b>實現USB主機讀寫<b class='flag-5'>U</b>盤文件](https://file.elecfans.com/web2/M00/83/3E/poYBAGOYQ8SAWA3rAALJDivuRzk821.png)
Arm推動生成式AI落地邊緣!全新Ethos-U85 AI加速器支持Transformer 架構,性能提升四倍
![<b class='flag-5'>Arm</b>推動生成式AI落地邊緣!全新<b class='flag-5'>Ethos-U85</b> AI加速器支持Transformer 架構,性能提升四倍](https://file1.elecfans.com/web2/M00/C8/7D/wKgZomYclwuAXCUGAAKIwINsqQs457.png)
介紹一種Arm ML嵌入式評估套件
Arm Ethos-U NPU應用程序開發概述
Arm Ethos-U NPU處理器入門指南
ARM正式發布了針對物聯網設備的AI芯片設計——Cortex-M55
在Vitis中調試ARM可信固件和U-boot
![在Vitis中調試<b class='flag-5'>ARM</b>可信固件和<b class='flag-5'>U</b>-boot](https://file.elecfans.com/web2/M00/1F/6A/pYYBAGGYHxaAA-TBAAKCbyEfraQ148.png)
Arm推出新一代Ethos-U AI加速器及全新物聯網參考設計平臺
![<b class='flag-5'>Arm</b>推出新一代<b class='flag-5'>Ethos-U</b> AI加速器及全新物聯網參考設計平臺](https://file1.elecfans.com/web2/M00/C8/80/wKgaomYVBJeAXRmcAAAPNp2Ii9s948.jpg)
Arm發布第三代NPU,適用于工業自動化等場景,性能提升四倍
Arm推第三代邊緣AI加速器:Arm Ethos-U85
![<b class='flag-5'>Arm</b>推第三代邊緣AI加速器:<b class='flag-5'>Arm</b> <b class='flag-5'>Ethos-U85</b>](https://file1.elecfans.com/web2/M00/C9/8B/wKgaomYd7ESAT4rzAAAjS2rhRDE832.png)
評論