NPU开发指南

Quectel Pi H1产品SoC搭载Qualcomm® Hexagon™处理器 (NPU),这是一款专用于推理的硬件加速器。如需使用NPU进行模型推理,需借助QAIRT (Qualcomm® AI Runtime) SDK对预训练模型进行移植。Qualcomm®NPU开发者提供了一系列SDK,便于用户将自有模型部署到NPU上。

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

准备工作

创建Python执行环境

sudo apt install python3-numpy
python3.10 -m venv venv
. venv/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供开发者参考,助力快速构建自有 NPU 应用。

QAI-Hub

Qualcomm® AI HubQAI-Hub)是一站式模型转换在线服务平台,提供在线模型编译、量化、性能分析、推理及下载服务。它能自动处理从预训练模型到设备运行时的模型转换。 其中 Qualcomm® AI Hub Models(QAI-Hub-Models) 是基于QAI-Hub的Python库,便于用户通过AI Hub服务对模型进行量化、编译、推理、分析和下载。