Thundercomm EBX AI应用开发工具合集(一)

创通联达推出了EdgeBox产品阵列, 包括 EB2,EB5, EB3G2, EB5G2, EB6等不同型号的Edgebox, 以满足不同场景不同算力下的客户需求, 本文的宗旨在于为给EBX的AI应用开发者找到一个入手点, 在Thundercomm EBX的平台上开发AI的应用.

SNPE SDK

介绍

SNPE SDK是高通公司开发的一款能利用高通Snapdragon芯片底层硬件(如Hexagon DSP、Adreno GPU等)加速深度学习网络推理的运行时SDK。通过SNPE SDK用户可以先将自己训练出来的AI模型转换和量化成适合在高通Snapdragon芯片上运行的深度学习容器(.dlc),再将其集成到自己的应用程序中,以充分挖掘使用高通Snapdragon芯片底层硬件的加速能力。
SNPE SDK支持TensorFlow、TensorFlow Lite、PyTorch等常用训练框架训练出来的AI模型文件(.pb,.tflite, .pt,.onnx)。另外,SNPE(Snapdragon Neural Processing Engine)在文档或源码中也称为Qualcomm Neural Processing。
在这里插入图片描述
SNPE SDK软件包由三部分组成:工具包,支持库以及示例程序。其中工具包包括模型转换工具(snpe-xxx-dlc)、模型量化工具(snpe-dlc-quantize、snpe-dlc-quant、snpe-dlc-graph-prepare)、自定义算子包生成工具(snpe-op-package-generator)、深度学习容器运行工具(snpe-net-run、snpe-parallel-run、snp-throughput-net-run)以及配套的调试和分析工具(snpe-diagview、snpe-dlc-diff、snpe-dlc-info、snpe-dlc-viewer、snpe-platform-validator等),它们主要用户转换和量化用户的AI模型,生成适合指定硬件加载运行的dlc文件。
在这里插入图片描述
支持库包括统一的后端库libSNPE.so/SNPE.dll,以及针对不同的加速硬件的动态库,譬如DSP硬件相关的库就包括SnpeDspV##Stub、libSnpeDspV##Skel.so组成,它们的先后顺序也表示了它们之间的层次关系,其中前者运行在CPU侧,后者运行在DSP侧,QnnDspV##Stub和libQnnDspV##Skel.so还负责CPU和DSP之间的通信。
示例程序主要是指QNN SDK安装目录Qualcomm\AIStack\SNPE\2.18.0.240101\examples\SNPE\NativeCpp中的程序。该程序一方面向我们展示了如何使用SNPE SDK的接口完成后dlc模型文件的加载、目标加速硬件运行时的构建、输入/输出张量的内存管理等。

下载地址:

https://qpm.qualcomm.com/#/main/tools/details/qualcomm_ai_engine_direct

EBX可以使用的SNPE版本说明:

在这里插入图片描述

不同版本的SNPE SDK对高通Snapdragon器件的支持情况详见安装后自带的文档,该文档的相对路径为: Qualcomm/AIStack/SNPE/2.18.0.240101/docs/SNPE/html/general/overview.html#supported-snapdragon-devices

QNN SDK

介绍

QNN SDK是高通公司开发的一款能利用高通Snapdragon芯片底层硬件(如Hexagon DSP、Adreno GPU等)加速深度学习网络推理的运行时SDK。通过QNN SDK用户可以先将自己训练出来的AI模型转换成适合在高通Snapdragon芯片上运行的模型库(.so/.dll,操作系统相关)或二进制程序包(.bin,芯片相关)、再将其集成到自己的应用程序中,以充分挖掘使用高通Snapdragon芯片底层硬件的加速能力。
QNN SDK支持TensorFlow、TensorFlow Lite、PyTorch、PaddlePaddle等常用训练框架训练出来的AI模型文件(.pb,.tflite,.pt,.onnx)。另外,QNN(Qualcomm Neural Network)在文档或源码中也称为Qualcomm AI Engine Direct。
在这里插入图片描述
QNN SDK软件包由三部分组成:工具包,支持库以及示例程序。其中工具包包括模型转换工具(含量化,qnn-xxx-converter)、适配了硬件的AI模型生成工具(qnn-model-lib-generator、qnn-context-binary-generator)、自定义算子包生成工具(qnn-op-package-generator)、适配了硬件的AI模型的运行工具(qnn-throughput-net-run、qnn-net-run)以及配套的调试和分析工具(qnn-context-binary-utility、qnn-platform-validator、qnn-profile-viever、qnn-profile-viewer等),它们主要用户转换和优化用户的AI模型,生成适合指定硬件加载运行的库文件或二进制程序。
在这里插入图片描述
支持库包括CPU后端库、DSP后端库、GPU后端库、HTP后端库、HTA后端库、LPAI后端库等,每个后端库通常也由多个库组成,譬如DSP后端库就由QnnDsp、QnnDspV##Stub、libQnnDspV##Skel.so、libQnnDspV##.so组成,它们的先后顺序也表示了它们之间的层次关系,其中前两者运行在CPU侧,后两者运行在DSP侧,QnnDspV##Stub和libQnnDspV##Skel.so负责CPU和DSP之间的通信。
示例程序主要是指QNN SDK安装目录Qualcomm/AIStack/QAIRT/2.22.0.240425/examples/QNN/SampleApp中的程序。该程序一方面向我们展示了如何使用QNN SDK的接口完成后端库、模型库的加载,输入/输出张量的内存管理以及Context二进制程序的生成等;另一方面还可以直接替代qnn-net-run来跑工具包生成的适配了硬件的AI模型,但需要编写python脚本进行图像的预处理以及推理结果的后处理。

QNN SDK和SNPE SDK是相互独立的,都是用来解决AI模型在高通器件上部署(加速)问题的。但是后面release的几个版本的QNN SDK中也都包括了SNPE,可以直接使用。

下载链接

https://qpm.qualcomm.com/#/main/tools/details/qualcomm_ai_engine_direct

适用版本

在这里插入图片描述
不同版本的QNN SDK对高通Snapdragon器件的支持情况详见安装后自带的文档,该文档的相对路径为:Qualcomm/AIStack/QAIRT/2.22.0.240425/docs/QNN/general/overview.html#supported-snapdragon-devices

  • 27
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值