1. 功能
The Qualcomm® Neural Processing SDK(SNPE) 是 Qualcomm Snapdragon 软件加速运行时,用于执行深度神经网络。使用 SNPE,用户可以:
-
执行任意深度的神经网络
-
在 Snapdragon CPU、Adreno GPU 或 Hexagon DSP 上执行网络。
-
在 x86 Ubuntu Linux 上调试网络执行
-
将 PyTorch、TFLite、ONNX 和 TensorFlow 模型转换为 Qualcomm® 神经处理 SDK 深度学习容器 (DLC) 文件
-
将 DLC 文件量化为 8 位或 16 位定点,以便在 Hexagon DSP 上运行
-
使用 Qualcomm® 神经处理 SDK 工具调试和分析网络性能
-
通过 C++ 或 Java 将网络集成到应用程序和其他代码中
2. 模型工作流程
模型训练是在流行的深度学习框架上进行的(高通®神经处理SDK支持PyTorch、TFLite、ONNX和TensorFlow模型。)训练完成后,训练后的模型被转换为DLC文件,可以加载到高通®神经加工SDK运行时中。然后,此DLC文件可用于使用Snapdragon加速计算核心之一执行正向推理过程。
-
Qualcomm®神经处理SDK的基本工作流程仅由几个步骤组成:
-
将网络模型转换为可由Qualcomm®神经处理SDK加载的DLC文件。
-
可选地量化DLC文件,以便在Hexagon DSP上运行。
-
为模型准备输入数据。
-
使用Qualcomm®神经处理SDK运行时加载并执行模型。
重要文件和位置
$SNPE_ROOT 是指安装 SDK 的基目录。
Linux/安卓
文件 | 类型 | 详 | 位置 |
---|---|---|---|
envsetup.sh | 脚本 | 设置运行 SDK 工具和二进制文件所需的环境变量 |
|
SNPE-ONNX 到 DLC | 脚本 | 将 ONNX 模型转换为 DLC 文件 |
|
SNPE-tensorflow-到 DLC | 脚本 | 将 TensorFlow 模型转换为 DLC 文件 |
|
SNPE-TFLITE 到 DLC | 脚本 | 将 TfLite 模型转换为 DLC 文件 |
|
snpe-pytorch 到 dlc | 脚本 | 将 Pytorch 模型转换为 DLC 文件 |
|
SNPE-DLC-定量 | 可执行 | 使用 8/16 位量化量化 DLC 文件 |
|
snpe-dlc-graph-prepare | 可执行 | 为主机上的 HTP 准备(脱机)图形 |
|
SNPE-DLC-量化 | 脚本 | 调用 snpe-dlc-quant 和 snpe-dlc-graph-prepare(用于向后兼容) |
|
SNPE-diagview | 可执行 | 显示神经处理 SDK 计时输出 |
|
snpe-dlc-info | 脚本 | 打印 DLC 文件信息 |
|
snpe-dlc-查看器 | 脚本 | 将 DLC 文件显示为 HTML 文件 |
|
snpe-dlc-diff | 脚本 | 比较两个不同的 DLC 文件 |
|
snpe-udo-package-generator (snpe-udo-包生成器) | 可执行 | 生成 UDO 包 |
|
snpe_bench.py | 脚本 | 在设备上执行 DLC 模型并收集基准测试信息 |
|
SNPE-网络运行 | 可执行 | 使用 SDK API 执行神经网络 |
|
libSNPE.so | 图书馆 | ® 用于主机和设备开发的 Qualcomm 神经处理 SDK 运行时 |
|
libHtpPrepare.so | 图书馆 | 用于 HTP 离线图形准备的库 |
|
libSnpeDspV66Skel.so | 图书馆 | 用于 v66 目标的 Hexagon DSP 运行时库 |
|
libSnpeHtpVxxSkel.so | 图书馆 | 用于 v68/69/73/75 目标的 Hexagon DSP 运行时库 |
|
参考网站:Snapdragon 神经处理引擎 SDK (qualcomm.com)