使用聯發科後端建置與執行 ExecuTorch¶
聯發科後端讓 ExecuTorch 能夠加速配備聯發科 Neuron 處理單元 (NPU) 的邊緣裝置上的 PyTorch 模型。本文檔提供逐步指南,用於設定聯發科 ExecuTorch 程式庫的建置環境。
如何使用 ExecuTorch 為聯發科裝置提前匯出和降低 PyTorch 模型。
如何建置聯發科後端和範例。
如何使用 ExecuTorch 執行階段將匯出的模型部署在裝置上。
先決條件 (硬體和軟體)¶
主機作業系統¶
Linux 作業系統
支援的晶片:¶
MediaTek Dimensity 9300 (D9300)
軟體:¶
NeuroPilot Express SDK 是一個輕量級的 SDK,用於在 MediaTek SOC 裝置上部署 AI 應用程式。
設定您的開發者環境¶
請依照以下步驟設定您的建置環境
設定 ExecuTorch 環境: 請參考 設定 ExecuTorch 指南,以取得設定 ExecuTorch 環境的詳細說明。
設定 MediaTek 後端環境
安裝相依的程式庫。請確認您位於
backends/mediatek/
目錄中pip3 install -r requirements.txt
安裝從 NeuroPilot Portal 下載的兩個 .whl 檔案
pip3 install mtk_neuron-8.2.13-py3-none-linux_x86_64.whl pip3 install mtk_converter-8.9.1+public-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
設定用於建置後端的環境變數
export NEURON_BUFFER_ALLOCATOR_LIB=<path_to_buffer_allocator.so>
建置¶
預先 (Ahead of time):¶
匯出用於 MediaTek 後端的 PyTorch 模型:
降低並匯出用於裝置上執行的
.pte
檔案。匯出腳本範例位於example/mediatek/
下。 例如,以下命令使用提供的腳本匯出.pte
。
cd executorch
./examples/mediatek/shell_scripts/export_oss.sh mobilenetv3
在與模型名稱相同的目錄下找到
.pte
檔案。
執行階段:¶
建置用於 ExecuTorch 執行階段的 MediaTek 後端
導覽至
backends/mediatek/scripts/
目錄。建置 MediaTek 後端: 一旦具備了先決條件,請執行
mtk_build.sh
腳本以啟動建置過程./mtk_build.sh
MediaTek 後端將建置在
cmake-android-out/backends/
下,名稱為libneuron_backend.so
。
建置一個執行器 (runner) 以在裝置上執行模型:
透過執行指令碼來建置執行器和後端
./mtk_build_examples.sh
執行器將建置在
cmake-android-out/examples/
下
在裝置上部署和執行¶
將 MediaTek 通用 SDK 和 MediaTek 後端推送到裝置: 將
libneuronusdk_adapter.mtk.so
和libneuron_backend.so
推送到手機,並在執行具有 MediaTek 後端的 ExecuTorch 之前,將其匯出到$LD_LIBRARY_PATH
環境變數。export LD_LIBRARY_PATH=<path_to_usdk>:<path_to_neuron_backend>:$LD_LIBRARY_PATH