使用 MediaTek 后端构建和运行 ExecuTorch¶
MediaTek 后端使 ExecuTorch 能够在配备 MediaTek 神经处理单元 (NPU) 的边缘设备上加速 PyTorch 模型。本文档提供了设置 MediaTek ExecuTorch 库构建环境的逐步指南。
如何使用 ExecuTorch 为 MediaTek 设备提前导出和降低 PyTorch 模型。
如何构建 MediaTek 后端和示例。
如何在设备上使用 ExecuTorch 运行时部署导出的模型。
先决条件(硬件和软件)¶
主机操作系统¶
Linux 操作系统
支持的芯片:¶
MediaTek 天玑 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>
构建¶
提前:¶
为 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
。
构建运行器以在设备上执行模型:
通过执行脚本来构建运行器和后端
./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