7,994
社区成员
发帖
与我相关
我的任务
分享平台:Qualcomm QCS6490(瑞莎 Dragon Q6A)
定位:一个开发者的学习记录,不是官方教程
一句话:这些名称分属同一条流水线的不同层级,层级判断错误会导致优化方向偏离。
接触高通 NPU 时,最先遇到的障碍往往不是命令,而是术语:QAIRT、AI Engine Direct、Neural Processing SDK、Genie、AIMET、QAI AppBuilder、AI Hub、GenieX。它们都能“跑模型”,但所处的层级完全不同。
按各层解决的问题排列如下:
模型来源 AI Hub Models(预优化) Hugging Face(社区 GGUF)
│ │
量化 AIMET(PyTorch / ONNX → 量化)
│
编译/转换 qairt-converter → qairt-quantizer → qnn-context-binary-generator
│
推理 runtime QAIRT SDK
├─ Qualcomm AI Engine Direct
├─ Qualcomm Neural Processing SDK
└─ Qualcomm Genie
│
应用封装 QAI AppBuilder
│
GenAI 上层 GenieX —— 同时挂 llama.cpp 与 QAIRT 两条后端
各环节职责如下:AIMET 决定量化精度,QAIRT 决定模型能否运行,QAI AppBuilder 决定应用侧代码量,AI Hub 决定是否需要在本地搭建完整环境,GenieX 则是面向生成式模型的上一层封装。
官方定义为:QAIRT(Qualcomm AI Runtime)SDK 是一个集成了多个 Qualcomm AI 软件产品的软件包,包含:
| 组件 | 职责 |
|---|---|
| Qualcomm AI Engine Direct | 面向硬件后端的推理接口 |
| Qualcomm Neural Processing SDK | 神经网络推理框架层 |
| Qualcomm Genie | 生成式模型 runtime(名称易与 GenieX 混淆,区别见第 7 节) |

图 1:框架层(TensorFlow / LiteRT / ONNX / PyTorch)→ Qualcomm Neural Processing SDK → Backend libraries(AI Engine Direct API)→ 硬件 IP(NPU / GPU / CPU)。三条后端库并列,对应三类硬件
它提供的是“把模型移植到 Qualcomm 硬件上并在 CPU / GPU / NPU 上跑起来”所需的工具和 runtime。后端共三个:CPU、GPU、NPU 均可运行,其中 NPU 性能最高。
官方入口有两个,用途不同:
2.42.0.251225 是当时页面上的版本号,实际下载以页面当前版本为准。模型格式上,QAIRT 支持三种:
| 格式 | 支持后端 | 特点 |
|---|---|---|
| Library | CPU / GPU / NPU | 通用 |
| DLC | CPU / GPU / NPU | 可编译 |
| Context Binary | 仅 NPU | 内存与性能最优,运行期不可改 |
瑞莎的文档只讲 Context Binary 的转换与推理,因为它在该平台上综合收益最高。代价是精度与上下文长度在编译期即已固定,变更需重新生成。
QAIRT SDK 在模型移植链路上的命令行工具,正好对应五个动作:
| CLI | 用途 |
|---|---|
qairt-converter | 把模型转成 DLC |
qairt-quantizer | 量化 DLC |
qnn-context-binary-generator | DLC → Context Binary |
qnn-net-run | 推理 DLC / Context Binary |
qnn-context-binary-utility | 检查 Context Binary |
按顺序执行即为完整流程:convert → quantize → context-binary → net-run;qnn-context-binary-utility 用于校验与排障,推理失败时应先用它检查模型产物。
AIMET(AI Model Efficiency Toolkit)面向 PyTorch / ONNX 做量化,通过降低计算负载与内存占用提升性能。其价值不止于“能够量化”,更在于支持量化配置的反复迭代,在精度与延迟之间寻找平衡点。
仓库地址:https://github.com/Qualcomm/aimet
官方仓库的定义是:一个面向已训练模型提供进阶量化与压缩技术的库(advanced quantization and compression techniques for trained neural network models)。注意“压缩”这一半:AIMET 的能力不止量化,还包含压缩类技术,只是本系列用到的主要是量化这条路径。
AIMET 导出的量化模型,后续要么交给 QAIRT 编译部署到 NPU,要么直接用 ONNX Runtime 运行。因此它位于流水线上游:它决定精度与性能上限,QAIRT 负责将该上限落地。
QAI AppBuilder(Quick AI Application Builder)将模型部署 API 封装为一组简化接口,用于“将模型加载至 NPU 并执行推理”。其价值不在性能,而在于减少部署侧样板代码,并附带可直接修改的示例工程。
仓库地址:https://github.com/qualcomm/qai-appbuilder
官方仓库的描述值得留意:它把 QAIRT SDK 的 API 封装成一组简化接口,用于在 NPU / HTP 上运行模型,面向 WoS(Windows on Snapdragon)与 Linux 两类平台——定位从一开始就是跨平台的模型调用层,而非某块板子的专用工具。
QAIRT 提供底层推理能力,QAI AppBuilder 提供上层调用接口与示例工程。
AI Hub(QAI-Hub)是一站式模型转换云平台,提供在线编译、量化、性能分析、推理和模型下载。平台会自动在云端配置设备,使模型可直接在云设备上完成 profile。
配套的 AI Hub Models(QAI-Hub-Models)是命令行入口,可针对模型列表批量执行量化、编译、推理、分析与下载。
AI Hub 的模型列表支持按芯片筛选,QCS6490 对应的筛选入口是:
https://aihub.qualcomm.com/models?chipsets=qualcomm-qcs6490
这个链接在实际工作里有两个用途:一是确认目标模型有没有面向 qualcomm-qcs6490 的产物,二是判断该走 AI Hub 云端路径还是自己用 QAIRT CLI 从头编译。
对个人开发者的实际意义在于:在没有第二块板、也不愿在本机安装完整 SDK 时,云端 profile 可先给出模型在该芯片上的大致性能水平。
GenieX 是本组概念中最易与 QAIRT 混淆的一项,先给出定位:
GenieX 是面向 Qualcomm 平台的端侧生成式 AI 推理 runtime,面向 LLM / VLM 这类生成式模型;它不是 QAIRT 的替代品,而是架在 QAIRT 之上的封装。
其架构图显示两条并行后端:
| 通道 | 适用模型 | 硬件路径 |
|---|---|---|
| llama.cpp 插件 | Hugging Face 上任意 GGUF | GGML Runtime:CPU 内核 / GPU 内核 / HTP 内核 |
| QAIRT 插件 | AI Hub 上针对 NPU 优化过的模型 | QAIRT SDK → CPU / GPU / NPU |

图 2:GenieX 的两条并行后端——左侧 llama.cpp 插件走 GGML Runtime(CPU / GPU / HTP 三种内核),右侧 QAIRT 插件直接落到 QAIRT SDK;上层共用 CLI / Python / Java / Docker / OpenAI 兼容服务五种接入
结论是:GenieX 将 QAIRT 作为两条后端之一,另一条为 llama.cpp。选择依据是模型来源——社区 GGUF 走 llama.cpp,AI Hub 模型走 QAIRT,后者 NPU 性能最优。
三个名称相近但层级不同的对象,对照如下:
| 名字 | 是什么 | 层级 |
|---|---|---|
| QAIRT | SDK,含 AI Engine Direct / Neural Processing SDK / Genie | 底层 runtime + 工具链 |
| Genie | QAIRT 这个 SDK 里的一个组件(生成式 runtime) | SDK 内部组件 |
| GenieX | 独立开源工具包,GenAI 专用入口,带 CLI / Python / Java / Docker / OpenAI 兼容服务 | 最上层 |
接入方式同样印证这一定位:GenieX 提供 CLI、Python API、Java API、Docker 镜像,以及 OpenAI 兼容的本地服务——它面向应用层调用,而非模型编译。
两项必要前提:
QCS9075(Dragonwing IQ-9075)和 QCS8275(IQ-8275),另外是 X Elite / X2 Elite 与 8 Elite 系列。文档对清单外芯片的措辞是"may run on other Snapdragon parts",这是"可能",不是"支持"。选择依据应是任务目标,而不是工具名称:
| 任务目标 | 推荐路径 |
|---|---|
| 验证 AI Hub 已有模型在该芯片上的性能 | AI Hub 云端 profile → 下载 Context Binary → qnn-net-run |
| 将自训练 PyTorch / ONNX 模型部署到板端 | AIMET 量化 → qairt-converter → qairt-quantizer → qnn-context-binary-generator |
| 在应用中调用模型,避免直接操作底层 API | QAI AppBuilder |
| 在板端运行 LLM / VLM | GenieX(Q6A 不在官方验证清单内,需先实测确认) |
软件栈再完整,NPU 通路未建立时仍无法运行推理。官方给出的验证方法很短:
sudo apt update
sudo apt install fastrpc libcdsprpc1
sudo apt install fastrpc-test
fastrpc_test -a v68
-a v68 中的 v68 是 QCS6490 的架构号(QCS9075 对应 v73),参数错误会直接导致测试失败。通过时的关键输出为 Total tests run: 3 / Passed: 3 与 RESULT: All applicable tests PASSED。
另需注意:R2 或更高版本的系统镜像已预装 NPU 运行环境,这种情况下无需重复安装。
https://www.qualcomm.com/developer/software/qualcomm-ai-runtime-sdk-qairt
在这里的产品介绍中有句话,For developers familiar with the Qualcomm® AI Stack, QAIRT combines features previously available on the Snapdragon Neural Processing Engine (SNPE) SDK and the Qualcomm AI Engine Direct (QNN) SDK into a single, comprehensive solution.
QAIRT(Qualcomm® AI Runtime)SDK 是一个集成包,包含三个主要产品:QNN(Qualcomm AI Engine Direct),SNPE(Qualcomm Neural Processing SDK),Genie。
这里为啥不只集成QNN,Genie,因为感觉QNN使用的更多,留下个问题在这。