0x13 - SNPE 的安装和简单使用
SNPE 是什么
Snapdragon Neural Processing Engine (SNPE)
专为高通骁龙系列设计的 DNN 深度学习加速运行库
https://developer.qualcomm.com/sites/default/files/docs/snpe/overview.html
可以理解为一个在骁龙环境下可执行的机器学习后端,类比于 TensoRT 或 ONNX。
本文将简单介绍下 SNPE 的使用
Step.0 环境准备
为了避免影响外部环境,这里使用 docker 环境来进行搭建。
考虑到我手头的模型大多都是用 GPU 导出的,不推荐直接用非 CUDA 环境进行以下工作,仅作参考。
1 | docker pull nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 |
安装系统包依赖
1 | apt-get update \ |
Step.1 安装 QPM
SNPE 现在的安装需要骁龙官方的包管理工具,因此首先需要安装 QPM。
到这个网址找对应的 QPM 包进行下载
https://qpm.qualcomm.com/#/main/tools/details/QPM3
安装 QPM
1 | dpkg -i QualcommPackageManager3.3.0.88.3.Linux-x86.deb |
Step.2 安装 SNPE
相关步骤可以参照官网链接
https://qpm.qualcomm.com/#/main/tools/details/qualcomm_neural_processing_sdk
按上述链接的下载会给予一个.qik文件,将其放置到环境内。
按照官方的说明需要 –login 和 –licence 操作,但我这边测试下来跳过这步也不会有什么影响。
执行下面的命令。
1 | # 具体的 qik 文件名可能会有些许异同,请根据具体情况进行更改 |
SNPE 大部分的环境以及默认的安装位置可以参考运行过程中的 log
1 | Accept and continue with installation [y/n] : y |
Step.4 SNPE 运行方法以及相关环境依赖
我们不仅需要安装 SNPE,还需要让 python 或者本地的包管理工具找到 SNPE 库的位置。
首先需要找到上文记录下来的 SNPE 的安装目录并执行下面的命令。
1 | apt-get install -y wget curl |
如果需要使用 python 环境,需要准备好 python 3.8 + torch 的环境
1 | # 以 torch 1.11.0 为例 |
最后,在执行 binary
前,需要引入环境变量
1 | source /opt/qcom/aistack/snpe/2.16.0.231029/bin/envsetup.sh |
Step.5 导出模型以及测试
这部分的详细信息最好参考官方的使用说明或使用 --help
选项来获取完整的帮助
这里只附上一个我自己的使用 jit 导出的例子。
1 | # 模型必须是 trace 的静态图 |