NPU 开发指南

Quectel Pi H1 产品 SoC 搭载 Qualcomm® Hexagon™ Processor (NPU) 是专门用来做 AI 推理的硬件加速器。 要使用 NPU 进行模型推理需要使用 QAIRT (Qualcomm® AI Runtime) SDK 对预训练好的模型进行模型移植。 Qualcomm®NPU 开发者提供一系列 SDK 方便用户可以对自己的 AI 模型进行 NPU 移植工作。

  • 模型量化库: AIMET
  • 模型移植 SDK: QAIRT
  • 模型应用库: QAI-APP-BUILDER
  • 线上模型转换库: QAI-HUB

准备工作

创建Python执行环境

sudo apt install python3-numpy
python3.10 -m venv venv-quecpi-alpha-ai
. venv-quecpi-alpha-ai/bin/activate

下载测试程序

下载ai-test.zip,解压并切换目录

unzip ai-test.zip
cd ai-test

执行AI推理

执行程序加载模型和测试数据集

./qnn-net-run --backend ./libQnnHtp.so \
     --retrieve_context resnet50_aimet_quantized_6490.bin \
     --input_list test_list.txt --output_dir output_bin

查看结果

执行查看结果的脚本

python3 show_resnet50_classifications.py \
      --input_list test_list.txt -o output_bin/ \
      --labels_file imagenet_classes.txt

脚本输出的结果:

Classification results
./images/ILSVRC2012_val_00003441.raw [acoustic guitar]
./images/ILSVRC2012_val_00008465.raw [trifle]
./images/ILSVRC2012_val_00010218.raw [tabby]
./images/ILSVRC2012_val_00044076.raw [proboscis monkey]

测试图片集

NPU软件栈

QAIRT

QAIRT (Qualcomm® AI Runtime) SDK 是一个集成了 Qualcomm® AI 软件产品的软件包, 包括 Qualcomm® AI Engine Direct、Qualcomm® Neural Processing SDKQualcomm® GenieQAIRT 为开发者提供了在 Qualcomm® 硬件加速器上移植和部署 AI 模型所需的所有工具,以及在 CPU、GPUNPU 上运行模型的 runtime

支持推理后端

  • CPU
  • GPU
  • NPU

SoC 架构对照表

SoC dsp_arch soc_id
QCS6490 v68 35
QCS9075 v73 77

AIMET

AIMETAI Model Efficiency Toolkit)是一款面向深度学习模型(如 PyTorchONNX)的量化工具。AIMET 通过降低模型计算负载和内存占用,提升深度学习模型的运行性能。 借助 AIMET,开发者可以快速迭代,找到最佳量化配置,以在精度和延迟之间达到最优平衡。开发者可以将 AIMET 导出的量化模型使用 QAIRT 编译并部署在 Qualcomm NPU 上,或直接使用 ONNX-Runtime 运行

QAI-APPBUILDER

Quick AI Application Builder (QAI AppBuilder) 可帮助开发者轻松使用基于 Qualcomm® AI Runtime SDK 在搭载 Qualcomm® Hexagon™ Processor (NPU)Qualcomm® SoC 平台上部署 AI 模型和设计 AI 应用。 它将模型部署 API 封装成一组简化的接口,用于将模型加载到 NPU 并执行推理。QAI AppBuilder 大大降低了开发者部署模型的复杂性并且提供多个 demo 让开发者参考设计自己的 AI 应用。

QAI-Hub

Qualcomm® AI HubQAI-Hub)是一站式模型转换云平台,QAI-Hub 平台提供在线模型编译,模型量化,模型性能分析,模型推理与模型下载服务。 Qualcomm® AI Hub 自动处理从于预训练模型到设备运行时的模型转换,系统会自动在云端配置设备,以便在设备上进行性能分析和推理。 其中 Qualcomm® AI Hub Models(QAI-Hub-Models) 基于 QAI-Hub 提供的云服务,支持以命令行方式将模型列表中的模型在云设备上进行在线量化、编译、推理、分析和下载。