高通AI应用程序开发1:SNPE 概述

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加速计算核心之一执行正向推理过程。

  1. Qualcomm®神经处理SDK的基本工作流程仅由几个步骤组成:

  2. 将网络模型转换为可由Qualcomm®神经处理SDK加载的DLC文件。

  3. 可选地量化DLC文件,以便在Hexagon DSP上运行。

  4. 为模型准备输入数据。

  5. 使用Qualcomm®神经处理SDK运行时加载并执行模型。

重要文件和位置

$SNPE_ROOT 是指安装 SDK 的基目录。

Linux/安卓

文件

类型

位置

envsetup.sh

脚本

设置运行 SDK 工具和二进制文件所需的环境变量

  • $SNPE_ROOT/bin

SNPE-ONNX 到 DLC

脚本

将 ONNX 模型转换为 DLC 文件

  • $SNPE_ROOT/bin/x86_64-linux-clang

SNPE-tensorflow-到 DLC

脚本

将 TensorFlow 模型转换为 DLC 文件

  • $SNPE_ROOT/bin/x86_64-linux-clang

SNPE-TFLITE 到 DLC

脚本

将 TfLite 模型转换为 DLC 文件

  • $SNPE_ROOT/bin/x86_64-linux-clang

snpe-pytorch 到 dlc

脚本

将 Pytorch 模型转换为 DLC 文件

  • $SNPE_ROOT/bin/x86_64-linux-clang

SNPE-DLC-定量

可执行

使用 8/16 位量化量化 DLC 文件

  • $SNPE_ROOT/bin/x86_64-linux-clang

snpe-dlc-graph-prepare

可执行

为主机上的 HTP 准备(脱机)图形

  • $SNPE_ROOT/bin/x86_64-linux-clang

SNPE-DLC-量化

脚本

调用 snpe-dlc-quant 和 snpe-dlc-graph-prepare(用于向后兼容)

  • $SNPE_ROOT/bin/x86_64-linux-clang

SNPE-diagview

可执行

显示神经处理 SDK 计时输出

  • $SNPE_ROOT/bin/x86_64-linux-clang

snpe-dlc-info

脚本

打印 DLC 文件信息

  • $SNPE_ROOT/bin/x86_64-linux-clang

snpe-dlc-查看器

脚本

将 DLC 文件显示为 HTML 文件

  • $SNPE_ROOT/bin/x86_64-linux-clang

snpe-dlc-diff

脚本

比较两个不同的 DLC 文件

  • $SNPE_ROOT/bin/x86_64-linux-clang

snpe-udo-package-generator (snpe-udo-包生成器)

可执行

生成 UDO 包

  • $SNPE_ROOT/bin/x86_64-linux-clang

snpe_bench.py

脚本

在设备上执行 DLC 模型并收集基准测试信息

  • $SNPE_ROOT/基准测试

SNPE-网络运行

可执行

使用 SDK API 执行神经网络

  • $SNPE_ROOT/bin/x86_64-linux-clang

  • $SNPE_ROOT/bin/aarch64-android

  • $SNPE_ROOT/bin/aarch64-ubuntu-gcc7.5

  • $SNPE_ROOT/bin/aarch64-oe-linux-gcc8.2

  • $SNPE_ROOT/bin/aarch64-oe-linux-gcc9.3

libSNPE.so

图书馆

® 用于主机和设备开发的 Qualcomm 神经处理 SDK 运行时

  • $SNPE_ROOT/lib/x86_64-linux-clang

  • $SNPE_ROOT/lib/aarch64-android

  • $SNPE_ROOT/lib/aarch64-ubuntu-gcc7.5

  • $SNPE_ROOT/lib/aarch64-oe-linux-gcc8.2

  • $SNPE_ROOT/lib/aarch64-oe-linux-gcc9.3

libHtpPrepare.so

图书馆

用于 HTP 离线图形准备的库

  • $SNPE_ROOT/lib/x86_64-linux-clang

libSnpeDspV66Skel.so

图书馆

用于 v66 目标的 Hexagon DSP 运行时库

  • $SNPE_ROOT/lib/hexagon-v66/无符号

libSnpeHtpVxxSkel.so

图书馆

用于 v68/69/73/75 目标的 Hexagon DSP 运行时库

  • $SNPE_ROOT/lib/hexagon-v68/unsigned

  • $SNPE_ROOT/lib/hexagon-v69/unsigned

  • $SNPE_ROOT/lib/hexagon-v73/unsigned

  • $SNPE_ROOT/lib/hexagon-v75/unsigned

参考网站:Snapdragon 神经处理引擎 SDK (qualcomm.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值