Linux系统上常用软件集锦
[TOC]
概述概述使用QNN的时候,Clientst通过后端与QNN进行通信。一般来说,QNN后端是一个实现QNN API的软件实体,并通常以共享库的形式进行编译。 “QNN后端 “和 “QNN后端库 “这两个术语经常被互换使用。
*Available QNN SDK Backend libraries*
后端库名称
后端库介绍
目标库和依赖库
Library Description
CPU
使用骁龙™CPU硬件内核的后端
aarch64-androidarm-androidx86_64-linux-clanglibQnnCpu.so
libQnnCpu.so : CPU backend library, same name used across all targets.
DSP
Backend for Hexagon™ DSP hardware accelerator
hexagon-v65libQnnDspV65Skel.sohexagon-v66libQnnDspV66Skel.soaarch64-androidarm-androidlibQnnDspV65S ...
Linux系统上常用软件集锦
[TOC]
概述QNN SDK提供了几个后端库。这些库可以在/target//lib文件夹中找到。QNN后端库名称以libQnn作为前缀。
本节包含与DSP后端API专门化相关的信息。所有QNN DSP后端专门化都可以在/include/DSP/目录下使用。
QNN量化qnn-onnx-converter进行ONNX模型转换成QNN模型,并进行量化的过程
1234567# --disable_batchnorm_folding # 该参数为禁止优化 batchnorm 网络结构echo -e "\n>>>> Step 2 : 执行 qnn-onnx-converter"${QNN_SDK_BIN}/qnn-onnx-converter \ --input_network ${MODEL_DIR}/${MODEL_ONNX} \ --input_list ${INPUT_LIST_QU ...
QNN开发之QNN调试工具
[TOC]
概述本文主要介绍QNN各种SDK工具和功能。
qnn-onnx-converterqnn-onnx-converter 工具将模型从 ONNX 框架转换为 CPP 文件,该文件将模型表示为一系列 QNN API 调用。此外,还会生成包含模型静态权重的二进制文件。
123456789101112131415161718192021222324252627usage: qnn-onnx-converter [--out_node OUT_NAMES] [--input_type INPUT_NAME INPUT_TYPE] [--input_dtype INPUT_NAME INPUT_DTYPE] [--input_encoding INPUT_NAME INPUT_ENCODING] [--input_layout INPUT_NAME INPUT_LAYOUT] ...
QNN模型网络精度对齐指南
[TOC]
概述文章参考:https://ecloud.baidu.com/index.html#/team/572907534
文章参考:https://ecloud.baidu.com/index.html#/team/572907534
会议讨论
x_scale y_scale 其实高通没有回答
Weight (量化反量化)
Activation
激活层两种量化损失:位置 Weight量化(8比特量化)
节点输出 Activation
余弦相似值 最好是
怎么去锁定Activation。
CPU FP32
SQNR是什么公式??量化手段:
量化和反量化
确认是什么损失导致:
perchannel
如果是Activatiion导致。设置成16bit.
训练更稳定。
1.建议去掉BN层
中段加速器,对weight的要求比较高。
对齐32通道 nach
10通道的
fill成一个的卷积
HMX的高速硬件算了。不管拆开还是不拆开
问题:
怎么去做参考:
1.
QNN 模型量化的转换问题去掉SE block1.算法模型结构中的SE block 算法结构对Q ...
QNN开发之模型转化步骤详解
[TOC]
概述qnn-onnx-converter执行脚本转化输出如下:
123456789101112>>>> Step 1 : 执行 qnn-onnx-converter2023-08-09 20:17:11,886 - 219 - WARNING - Couldn't import onnx-simplifier. (<class 'ModuleNotFoundError'>: No module named 'onnxsim')2023-08-09 20:17:11,886 - 219 - WARNING - Install the onnx-simplifier for better model compatibility: "pip3 install onnx-simplifier"2023-08-09 20:17:11,901 - 219 - WARNING - WARNING_OP_VERSION_NOT_SUPPORTED: Operation Constant ...
Linux系统上常用软件集锦
[TOC]
概述QNN框架量化文档在量化或非量化模型之间进行选择:
CPU - 选择非量化模型。量化模型目前与 CPU 后端不兼容。
DSP - 选择一个量化模型。在 DSP 后端运行时需要量化模型。
GPU - 选择非量化模型。量化模型目前与 GPU 后端不兼容。
HTP - 选择一个量化模型。在 HTP 后端运行时需要量化模型。
HTA - 选择一个量化模型。在 HTA 后端运行时需要量化模型。
QNN 支持多种量化模式。此处描述了量化的基础知识,无论模式如何。
量化使用提供的位宽将浮点数据转换为 Tensorflow 风格的定点格式。
满足以下要求:
涵盖了所有输入值。
强制执行最小范围 0.01。
浮点零是完全可表示的。
量化算法输入:
要量化的浮点值集。
量化算法输出:
一组 8 位定点值。
编码参数:
encoding-min - 可表示的最小浮点值(通过定点值 0)
encoding-max - 可表示的最大浮点值(定点值 255)
scale - 给定范围的步长 (max - min) / (2^bw-1)
offset - 精确表 ...
Linux系统上常用软件集锦
[TOC]
概述本文主要介绍描述了一般的量化过程以及支持的算法和功能。
非量化模型文件使用32位浮点表示网络参数。量化模型文件使用网络参数的定点表示,通常是8bit或者32bit biases。这个量化的定点表示是和Tensorflow量化模型相同。
QNN可以支持在量化模型或非量化模型之间进行选择
CPU - 选择非量化模型。量化模型目前与 CPU 后端不兼容。
DSP - 选择量化模型。在 DSP 后端运行时需要量化模型。
GPU - 选择非量化模型。量化模型目前与 GPU 后端不兼容。
HTP - 选择量化模型。在 HTP 后端运行时需要量化模型。
HTA - 选择量化模型。在 HTA 后端运行时需要量化模型。
本节介绍 QNN 中使用的量化算法背后的概念。当开发人员决定量化图形时,转换器会使用这些概念。
量化QNN支持多种量化模式。我们这里讲解一下量化的基础知识。
量化使用提供的位宽将浮点数据转换为Tensorflow风格的定点格式,需要满足以下要求:
满足以下要求:
涵盖了整个输入值范围。
量化置最小范围 0.01。
浮点零是可以精确表示的。
量化的算法输入
...
QNN之设置HTP2进行推理的方法
[TOC]
概述QNN SDK提供了几个后端库。这些库可以在/target//lib文件夹中找到。QNN后端库名称以libQnn作为前缀。
本节包含与DSP后端API专门化相关的信息。所有QNN DSP后端专门化都可以在/include/DSP/目录下使用。
模型转化问题汇总问题一
https://blog.csdn.net/weixin_46133643/article/details/125373031
1ModuleNotFoundError: No module named 'packaging'
解决方案:
1pip install packaging
问题二:
1ModuleNotFoundError: No module named 'yaml'
1sudo pip3 install pyyaml
问题三:
1ModuleNotFoundErr ...
QNN之设置HTP2进行推理的方法
[TOC]
概述文章参考:
使用指南123456789101112131415161718192021222324252627282930313233343536你可以参考 SDK 中这部分的文档docs\general\api2_migration_guide.htmlOffline 生成cache 的代码可以不用指定 device 相关的信息,只需要在device 跑的时候再指定。你也可以在生成cache的时候就指定。下面是我再QNN 2.2 上可以跑到htp1 的例子 deviceID = 1u 如果是1就指定context 绑定的context 运行在HTP1 上,如果是0 就指定到HTP0 上。或者你在设备上也可以通过deviceGetPlatformInfo去查询硬件信息uint32_t desiredDeviceType = 0u;uint32_t desiredCoreType = 0u;uint32_t deviceID = 1u;QnnDevice_CoreInfo_t coreSpec = QNN_DEVICE_CORE_INFO_INIT;coreSpec.v1 ...
QNN之设置HTP2进行推理的方法
[TOC]
概述QNN初始化失败 在使用QNN1.15的时候出现模型初始化失败的问题。
1234567891011121314# push default.cfg to /var/log/# start to capture DSP LogsDiagPortChangeTest --mode=ondevice --logfilesize=15mb --logdir=/var/log/analyzer --config=/var/log/default.cfg --maxdiskspace=1gb# Run the code to reproduce the issue# Stop to capture logs after reproducesDiagPortChangeTest --mode=null# pull the log from device/var/log/analyzer/ondevice_logging/the folder xxxxx#
排查程序:https://ecloud.baidu.com/index.html#/person/652353762
12 ...