MediaTek 後端¶
MediaTek 後端使 ExecuTorch 能夠在配備 MediaTek 神經處理單元 (NPU) 的邊緣裝置上加速 PyTorch 模型。本文件提供了設定 MediaTek ExecuTorch 庫構建環境的分步指南。
如何使用 ExecuTorch 提前匯出和 Lowering 適用於 MediaTek 裝置的 PyTorch 模型。
如何構建 MediaTek 後端和示例。
如何使用 ExecuTorch 執行時將匯出的模型部署到裝置上。
前提條件(硬體和軟體)¶
主機作業系統¶
Linux 作業系統
支援的晶片:¶
MediaTek Dimensity 9300 (D9300)
軟體:¶
NeuroPilot Express SDK 是一個輕量級 SDK,用於在 MediaTek SOC 裝置上部署 AI 應用。
設定開發者環境¶
按照以下步驟設定您的構建環境
設定 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>
構建¶
提前準備:¶
匯出適用於 MediaTek 後端的 PyTorch 模型:
Lowering 並匯出用於裝置上執行的
.pte檔案。匯出指令碼示例位於example/mediatek/目錄下。例如,以下 commnad 使用提供的指令碼匯出.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 用於在裝置上執行模型:
透過執行指令碼構建 runners 和後端
./mtk_build_examples.sh
runners 將構建到
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