快捷方式

MediaTek 后端

MediaTek 后端使 ExecuTorch 能够在配备 MediaTek 神经处理单元 (NPU) 的边缘设备上加速 PyTorch 模型。本文档提供了设置 MediaTek ExecuTorch 库构建环境的分步指南。

本教程您将学到什么
  • 如何使用 ExecuTorch 提前导出和 Lowering 适用于 MediaTek 设备的 PyTorch 模型。

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

  • 如何使用 ExecuTorch 运行时将导出的模型部署到设备上。

推荐您在此之前完成的教程

前提条件(硬件和软件)

主机操作系统

  • Linux 操作系统

支持的芯片:

  • MediaTek Dimensity 9300 (D9300)

软件:

设置开发者环境

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

  1. 设置 ExecuTorch 环境:参考入门指南,获取关于设置 ExecuTorch 环境的详细说明。

  2. 设置 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 模型:

  1. Lowering 并导出用于设备上执行的 .pte 文件。导出脚本示例位于 example/mediatek/ 目录下。例如,以下 commnad 使用提供的脚本导出 .pte

cd executorch

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

运行时:

构建适用于 ExecuTorch 运行时的 MediaTek 后端

  1. 导航到 backends/mediatek/scripts/ 目录。

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

    ./mtk_build.sh
    
  3. MediaTek 后端将构建到 cmake-android-out/backends/ 目录下,生成 libneuron_backend.so 文件。

构建一个 runner 用于在设备上执行模型:

  1. 通过运行脚本构建 runners 和后端

./mtk_build_examples.sh
  1. runners 将构建到 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 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题解答

查看资源