目录

使用MediaTek后端构建和运行ExecuTorch

MediaTek 后端赋能 ExecuTorch,可加速在搭载 MediaTek 神经网络处理单元(NPU)的边缘设备上运行的 PyTorch 模型。本文档提供了一个逐步指南,用于设置 MediaTek ExecuTorch 库的构建环境。

你将在本教程中学习到:
  • 如何使用 ExecuTorch 为联发科设备提前导出和优化 PyTorch 模型。

  • 如何构建MediaTek后端和示例。

  • 如何在搭载 ExecuTorch 运行时的设备上部署导出的模型。

推荐在本内容之前完成的教程:

前提条件(硬件和软件)

主机操作系统

  • Linux 操作系统

支持的芯片:

  • MediaTek Dimensity 9300 (D9300)

Software:

设置您的开发环境

按照以下步骤设置您的构建环境:

  1. 设置ExecuTorch环境:请参阅设置ExecuTorch指南以获取有关设置ExecuTorch环境的详细说明。

  2. 设置 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后端:

  1. 本地化并导出 .pte 文件以供设备端执行。导出脚本示例位于 example/mediatek/ 下。例如,以下命令使用提供的脚本导出 .pte

cd executorch

./examples/mediatek/shell_scripts/export_oss.sh mobilenetv3
  1. 在名为与模型相同的目录下找到 .pte 个文件。

Runtime:

构建MediaTek后端以支持ExecuTorch运行时

  1. 跳转到 backends/mediatek/scripts/ 目录。

  2. 构建MediaTek后端: 一旦满足前提条件,运行 mtk_build.sh 脚本以开始构建过程:

    ./mtk_build.sh
    
  3. MediaTek后端将在cmake-android-out/backends/下构建为libneuron_backend.so

构建一个运行器在设备上执行模型:

  1. 通过执行脚本构建运行器和后端:

./mtk_build_examples.sh
  1. The runners will be built under cmake-android-out/examples/

部署和运行在设备上

  1. 将MediaTek通用SDK和MediaTek后端推送到设备: 将 libneuronusdk_adapter.mtk.solibneuron_backend.so 推送到手机,并在执行使用MediaTek后端的ExecuTorch之前,将其导出到 $LD_LIBRARY_PATH 环境变量。

    export LD_LIBRARY_PATH=<path_to_usdk>:<path_to_neuron_backend>:$LD_LIBRARY_PATH
    

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源