使用MediaTek后端构建和运行ExecuTorch¶
MediaTek 后端赋能 ExecuTorch,可加速在搭载 MediaTek 神经网络处理单元(NPU)的边缘设备上运行的 PyTorch 模型。本文档提供了一个逐步指南,用于设置 MediaTek ExecuTorch 库的构建环境。
如何使用 ExecuTorch 为联发科设备提前导出和优化 PyTorch 模型。
如何构建MediaTek后端和示例。
如何在搭载 ExecuTorch 运行时的设备上部署导出的模型。
前提条件(硬件和软件)¶
主机操作系统¶
Linux 操作系统
支持的芯片:¶
MediaTek Dimensity 9300 (D9300)
Software:¶
NeuroPilot Express SDK 是一个轻量级SDK,用于在MediaTek SOC设备上部署AI应用。
设置您的开发环境¶
按照以下步骤设置您的构建环境:
设置ExecuTorch环境:请参阅设置ExecuTorch指南以获取有关设置ExecuTorch环境的详细说明。
设置 MediaTek 后端环境
安装依赖库。确保您在
backends/mediatek/目录中pip3 install -r requirements.txt
安装从 NeuroPilot 门户下载的两个 .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>
构建¶
提前说明:¶
将PyTorch模型导出至MediaTek后端:
本地化并导出
.pte文件以供设备端执行。导出脚本示例位于example/mediatek/下。例如,以下命令使用提供的脚本导出.pte。
cd executorch
./examples/mediatek/shell_scripts/export_oss.sh mobilenetv3
在名为与模型相同的目录下找到
.pte个文件。
Runtime:¶
构建MediaTek后端以支持ExecuTorch运行时
跳转到
backends/mediatek/scripts/目录。构建MediaTek后端: 一旦满足前提条件,运行
mtk_build.sh脚本以开始构建过程:./mtk_build.sh
MediaTek后端将在
cmake-android-out/backends/下构建为libneuron_backend.so。
构建一个运行器在设备上执行模型:
通过执行脚本构建运行器和后端:
./mtk_build_examples.sh
The runners will be built under
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