【TVM 教程】在 Adreno™ 上部署预训练模型

💡 原文中文,约8900字,阅读约需22分钟。
📝

内容提要

本文是一个逐步教程,演示如何在 Adreno 上部署预训练的 PyTorch ResNet-18 模型。首先,安装 PyTorch 与 TorchVision。然后,在 Adreno GPU 上部署模型。接下来,准备运行 TVM RPC 服务器,并设置相关环境变量。获取 PyTorch 模型,并处理图片。将 PyTorch 模型转换为 Relay 模块。准备 TVM 目标,并进行自动调优。最后,通过 RPC 部署模型,并进行推理。

🎯

关键要点

  • 本文是一个逐步教程,演示如何在 Adreno 上部署预训练的 PyTorch ResNet-18 模型。
  • 首先,需要安装 PyTorch 与 TorchVision,可以通过 pip 快速安装。
  • 在 Adreno GPU 上部署模型,推送必要的文件到设备上并运行 TVM RPC 服务器。
  • 设置 Android 设备的哈希值,并上传所需的库文件。
  • 启动 rpc_tracker 和 tvm_rpc 服务器,并设置相关环境变量。
  • 检查 tracker 是否正在运行,并确认设备可用。
  • 获取 PyTorch 模型并处理输入图片,使用 torchvision 进行预处理。
  • 将 PyTorch 模型转换为 Relay 模块,支持混合精度计算。
  • 准备 TVM 目标,设置自动调优参数以优化模型性能。
  • 启用 OpenCLML 加速运算符库以提高计算效率。
  • 通过 RPC 将模型部署到远程 Adreno 设备,并进行推理。
  • 设置输入并获取模型的输出预测,展示模型的性能信息。

延伸问答

如何在 Adreno 上安装 PyTorch 和 TorchVision?

可以通过 pip 快速安装,使用命令:pip install torch 和 pip install torchvision。

如何将 PyTorch 模型转换为 Relay 模块?

使用 relay.frontend.from_pytorch API,将模型和输入形状传入即可。

在 Adreno GPU 上部署模型需要哪些步骤?

需要推送必要的文件到设备上,运行 TVM RPC 服务器,并设置相关环境变量。

如何启用 OpenCLML 加速运算符库?

在配置部分将 enable_clml 设置为 True,以启用 OpenCLML 卸载。

如何检查 TVM RPC 服务器是否正在运行?

可以使用命令 python -m tvm.exec.query_rpc_tracker --port 9190 来检查。

如何进行模型的自动调优?

提取可调优任务,定义调优配置,并使用 XGBoost 作为调优算法进行调优。

🏷️

标签

➡️

继续阅读