高效能的Arm Ethos-U85 NPU可滿足在邊緣端日益成長的運行先進人工智慧(AI)推論工作負載的需求,包括諸如大型語言模型等基於Transformer的網路。Arm針對Ethos-U提供參考設計,如 Arm Corstone-320物聯網參考設計平台,以加速和簡化晶片開發週期。參考設計平台中包含固定虛擬平台(Fixed Virtual Platform,FVP)等許多項目,FVP可模擬整個系統,為在Ethos-U85平台上進行尖端的嵌入式軟體發展和類神經網路部署提供支援。
Arm透過在Ethos-U85上支援ExecuTorch測試版,為開發人員建構物聯網邊緣端應用提供了更多支援。開發人員可以借助ExecuTorch,高效率地部署原生開發的PyTorch模型,基於Arm平台建構出智慧且回應迅速的物聯網(IoT)解決方案。
隨著該套裝軟體的推出,想要創建邊緣端AI應用的開發人員,能夠在平台上市前數月就開始模型和應用的軟體發展工作。
在Ethos-U85上開始使用ExecuTorch
ExecuTorch GitHub公共程式碼資源庫中提供了完整的開發環境。其中包含一個整合且經過測試的開發流程和所有必要元件。
三個簡單的步驟如下所示:
之後就可以在此流程基礎上編譯和執行模型,從Ethos-U85驅動程式採集週期數目資訊等runtime狀態。
為了讓終端使用者更輕鬆地完成此過程,Arm還在ExecuTorch資源庫添加了腳本(scripts):
- 設置 ExecuTorch
- setup.sh: 下載必要的軟體
- run.sh: 在Corstone-320 FVP上編譯並執行模型
要建構其他模型,可使用提前編譯器(ahead of time compiler)腳本aot_arm_compiler.py,它能將 PyTorch項目程式碼(nn.module)轉換為 ExecuTorch 項目程式碼(.pte flatbuffer 文件)。要編寫使用ExecuTorch 的自訂應用,可以按照 executor_runner 範例應用中的應用流程進行操作。
我們支援大約40個核心ATen運算子,並且支援Mobilenetv2等模型的端對端部署。隨著陸續支援更多運算子,我們將能夠支援更多的PyTorch 模型。後續添加的更多功能,將透過 pytorch.org 上的Ethos-U教學材料進行示範。
部署流程運作原理細節
利用ExecuTorch的可擴展性和Arm的張量運算子集架構(Tensor Operator Set Architecture,TOSA)的特性,Arm在ExecuTorch中實現了Ethos-U支援。Ethos-U編譯器Vela已透過 TOSA前端獲得強化,可以為Ethos-U系列中的所有產品編譯模型。
為了將這些元件整合為一個連貫的工作流程,需要遵循以下步驟:
- 將 PyTorch 模型轉換為可部署的 ExecuTorch 程式(AOT 流程)
- 將ExecuTorch 程式編譯為可執行檔,以便部署在 Corstone-320 上(runtime流程)
ExecuTorch 的 AOT (ahead of time)流程
此過程首先使用PyTorch 的dynamo export功能,將PyTorch模型轉換為已量化的TOSA描述。然後,就能利用Vela編譯TOSA前端生成一組Ethos-U 機器指令,即指令流(command stream)。接著,指令流包裹到Executorch程式中,由 flatbuffer 檔(.pte)表示。該檔案中包含了ExecuTorch runtime 使用Ethos-U硬體執行推論所需的所有內容。
ExecuTorch runtime 流程
ExecuTorch runtime以 C/C++ 編寫,可支援多種後端。Arm對ExecuTorch runtime進行了擴展,以包含對Ethos-U裝置驅動程式的支援。按照此流程操作,將生成一個獨立的、經過編譯的可執行檔。在 Corstone-320 FVP上部署可執行檔非常簡單,只需要在呼叫FVP時使用適當的旗標即可。
只需不到短短一分鐘...
輸入您的信箱與ID註冊即可享有一切福利!
會員福利
1
免費電子報
2
會員搶先看
3
主題訂閱
4
好文收藏
只需不到短短一分鐘...
輸入您的信箱與ID註冊即可享有一切福利!
會員福利
免費電子報
會員搶先看
主題訂閱
好文收藏