NPU 开发指南

Quectel Pi H1 产品 SoC 搭载 Qualcomm® Hexagon™ 处理器 (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,解压并进入ai-test目录:

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 DirectQualcomm® Neural Processing SDKQualcomm® GenieQAIRT 为开发者提供了在 Qualcomm® 硬件加速器上移植和部署 AI 模型所需的全套工具,以及在 CPUGPUNPU 上运行模型的 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)是一站式模型转换在线服务平台,提供在线模型编译、量化、性能分析、推理及下载服务。它能自动处理从预训练模型到设备运行时的模型转换。 其中 Qualcomm® AI Hub Models(QAI-Hub-Models) 是基于 QAI-Hub 的Python库,便于用户通过AI Hub服务对模型进行量化、编译、推理、分析和下载。