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