news 2026/8/13 4:16:14

高通跃龙IQ-9100工业平台的开发经验分享(1): 部署 LLM 的差异与常见问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
高通跃龙IQ-9100工业平台的开发经验分享(1): 部署 LLM 的差异与常见问题

设备: 高通跃龙IQ-9100 (Thundercomm Ride, SA8775P, Hexagon v73)
系统: Ubuntu 24.04 LTS with Qualcomm PPA
SDK: QAIRT 2.42 (手动部署) / PPA 提供 QAIRT 2.40
模型: Qwen2.5-7B-Instruct + Qwen3-4B

一、概述

高通跃龙IQ-9100 (SA8775P) 是高通的工业级平台,与消费级手机平台(如 Snapdragon 8 Gen 3)共享相同的 Hexagon v73 DSP 架构,但在软件栈、库路径、SDK 版本管理等方面存在显著差异。这些差异导致了一系列在手机端不会遇到的部署问题。

本文记录在 IQ-9100 上部署 LLM 时遇到的 7 个具体问题及解决方案。

二、平台差异对照

维度消费级平台 (Snapdragon)工业平台 (IQ-9100 PPA)
QNN 库来源QAIRT SDK 手动部署libqnn1PPA 包
库路径用户自定义/usr/lib/(ARM) +/usr/lib/rfsa/adsp/(DSP)
genie 路径用户自定义/usr/local/bin/
DSP skel 管理手动拷贝udev 规则 + symlink
SDK 版本用户决定PPA 版本固定(如 2.40)
soc_id 支持广泛udev 规则可能未覆盖

三、问题分享

3.1 问题:genie-t2t-run: No such file or directory

现象:执行genie-t2t-run提示找不到文件。

原因:PPA 将 Genie 二进制安装到/usr/local/bin/,而非/usr/bin/。默认 PATH 可能未包含该路径。

解决方案

# 确认实际路径whichgenie-t2t-run||find/usr-name"genie-t2t-run"2>/dev/null# 如果在 /usr/local/bin/,确保 PATH 包含它exportPATH="/usr/local/bin:$PATH"

3.2 问题:Failed to create device: 14001

现象genie-t2t-run加载模型时报Failed to create device错误码 14001。

原因:CDSP 守护进程(cdsprpcd)未运行,或libcdsprpc.so符号链接缺失。

解决方案

# 重启 CDSP 守护进程sudosystemctl restart cdsprpcd# 检查状态systemctl status cdsprpcd --no-pager# 如果 libcdsprpc.so 符号链接缺失sudoln-sf/usr/lib/aarch64-linux-gnu/libcdsprpc.so.1.0.0\/usr/lib/aarch64-linux-gnu/libcdsprpc.so

3.3 问题:Unable to load system library ... libatomic.so.1

现象:运行genie-t2t-run时报动态库加载失败。

原因libatomic1在 Ubuntu 24.04 上默认未安装。Genie 二进制依赖它来支持原子操作。

解决方案

sudoaptinstall-ylibatomic1

3.4 问题:DSP skel 库找不到(udev 规则未覆盖 soc_id 667)

现象:推理时报 DSP 相关错误,HTP 后端无法初始化。

原因:PPA 提供的 udev 规则文件(/usr/lib/udev/rules.d/60-libqnn1.rules)通过soc_id来决定创建哪些 DSP 库的符号链接。IQ-9100 的soc_id667,但该值未被包含在 udev 规则中。

结果是:安装libqnn1包后,/usr/lib/rfsa/adsp/目录下没有创建 Hexagon v73 skel 库的符号链接,DSP 端找不到需要的.so文件。

解决方案:手动创建符号链接。

sudoln-sf/usr/lib/rfsa/adsp/hexagon-v73/* /usr/lib/rfsa/adsp/

这会将hexagon-v73/子目录下的所有库(包括libQnnHtpV73Skel.solibQnnHtpV73.so等)链接到 DSP 库搜索路径。

3.5 问题:Stub lib id mismatch

现象

Stub lib id mismatch: stub=v2.42.0 skel=v2.40.0

原因:QNN HTP 的 ARM 侧 stub 库和 DSP 侧 skel 库在 FastRPC 初始化时会校验版本号。两端的 QAIRT 版本必须精确匹配(major.minor.patch)。

PPA 提供的 skel 库是 QAIRT 2.40,而如果你从 QAIRT 2.42 SDK 部署了 ARM 侧库,就会出现版本不匹配。

解决方案:确保 ARM 侧和 DSP 侧使用相同版本的库。

# 从 QAIRT 2.42 SDK 拷贝 ARM 侧库sudocplibGenie.so libQnnHtp.so libQnnHtpPrepare.so libQnnSystem.so\libQnnHtpV73Stub.so libQnnHtpNetRunExtensions.so /usr/lib/# 从 QAIRT 2.42 SDK 拷贝 DSP 侧库sudocplibQnnHtpV73Skel.so libQnnHtpV73.so libqnnhtpv73.cat /usr/lib/rfsa/adsp/# 更新链接器缓存sudoldconfig

需要拷贝的文件分两类:

  • ARM 侧/usr/lib/):libGenie.solibQnnHtp.solibQnnHtpPrepare.solibQnnSystem.solibQnnHtpV73Stub.solibQnnHtpNetRunExtensions.so
  • DSP 侧/usr/lib/rfsa/adsp/):libQnnHtpV73Skel.solibQnnHtpV73.solibqnnhtpv73.cat

3.6 问题:模型编译版本与设备 firmware 不匹配

现象:context binary 加载失败,或加载成功但推理输出异常。

原因:context binary 在编译时绑定了特定的 QAIRT 版本。如果设备端 DSP firmware 对应的 QAIRT 版本与编译版本不同,可能出现不兼容。

解决方案

  1. 确认设备 firmware 版本
strings /usr/lib/rfsa/adsp/libQnnHtpV73Skel.so|grep-E"^v[0-9]+\.[0-9]+\.[0-9]+"
  1. 使用匹配版本的 SDK 编译
设备 skel 版本需要的 QAIRT SDK
v2.35.0.xxxQAIRT 2.35
v2.40.0.xxxQAIRT 2.40
v2.42.0.xxxQAIRT 2.42
  1. 或者升级设备端库:将编译使用的 QAIRT 版本的 ARM 侧和 DSP 侧库全部部署到设备(见问题 5 的解决方案)。

3.7 问题:Error 6001 / DSP busy

现象:运行genie-t2t-run报错 6001,或 HTP 后端初始化失败。

原因:上一次推理进程没有正常退出,仍持有 DSP 资源。FastRPC 的 DSP 会话是独占的。

解决方案

pkill-fgenie-t2t-runsleep2# 重试推理

如果仍然失败,重启 CDSP 守护进程:

sudosystemctl restart cdsprpcd

四、版本确认速查

在 IQ-9100 设备上执行以下命令可以快速确认环境状态:

# 操作系统cat/etc/os-release|head-2# 内核uname-r# QNN PPA 版本dpkg-l|greplibqnn# ARM 侧 QNN 库版本strings /usr/lib/libQnnHtp.so|grep-E"^v[0-9]+\.[0-9]+\.[0-9]+"# DSP 侧 skel 版本strings /usr/lib/rfsa/adsp/libQnnHtpV73Skel.so|grep-E"^v[0-9]+\.[0-9]+\.[0-9]+"# Genie 版本genie-t2t-run--help2>&1|head-1# DSP 守护进程状态systemctl status cdsprpcd --no-pager|head-3# DSP 库符号链接ls-la/usr/lib/rfsa/adsp/libQnnHtpV73Skel.so

五、总结

#问题根因解决方案
1genie-t2t-run找不到安装在/usr/local/bin/更新 PATH
2Failed to create device: 14001CDSP 守护进程未运行重启cdsprpcd
3libatomic.so.1缺失Ubuntu 24.04 未默认安装apt install libatomic1
4DSP skel 找不到udev 规则未覆盖 soc_id 667手动 symlink hexagon-v73
5Stub/skel 版本不匹配PPA 版本 ≠ 编译 SDK 版本部署匹配版本的库文件
6编译版本 vs 设备 firmwarecontext binary 绑定 SDK 版本用匹配版本编译或升级设备库
7Error 6001 / DSP busy前一进程未释放 DSP 资源pkill后重试

IQ-9100 作为工业级平台,使用 PPA 包管理 QNN 运行时,与标准 QAIRT SDK 的手动部署方式在路径规范、版本管理和 udev 配置上均有差异。部署前需要逐一确认这些环境要素,避免在推理阶段才发现基础环境问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/13 4:12:19

晋中城市建设招标网站深度解析与实用指南助力企业获取优质项目信息

说到咱们晋中的城市建设,那可是这两年变化日新月异,从老城区的改造到新城区的拓展,到处都充满了生机与活力。对于在这个领域打拼的建筑工程企业、材料供应商,或者是刚入行的年轻朋友来说,信息的获取渠道显得尤为重要。今天咱们不聊那些晦涩难懂的理论,就聊聊大家最关心、…

作者头像 李华
网站建设 2026/8/13 4:09:54

建站前先别急,这份网站建设准备资料清单让你少走三年弯路

很多老板或者项目负责人在决定要做网站的时候,心情往往是很复杂的。一方面觉得现在的互联网时代,没个官网就像是在商业社会里裸奔,缺乏信任感;另一方面又怕被外包公司坑,不知道该怎么配合,最后做出来的东西不是丑就是贵,还不好用。今天我不讲那些高大上的技术架构,也不…

作者头像 李华
网站建设 2026/8/13 4:09:15

自迭代技能在团队协作中的演进:从碰撞到共生的实战指南

1. 项目概述:当“自迭代”技能遇上团队协作的暗礁在软件开发和团队协作的领域里,我们常常追求一种理想状态:流程自动化、知识可复用、团队能像一台精密的机器一样高效运转。于是,“自迭代”(Self-iterating&#xff09…

作者头像 李华
网站建设 2026/8/13 4:08:01

从“龙虾”到“悟空”:深度体验阿里AI助手如何重塑工作流与效率

1. 项目概述:从“龙虾”到“悟空”的体验跃迁最近在圈子里,阿里新出的“悟空”成了高频词。作为一个常年和各种生产力工具打交道的从业者,我对这类新玩意儿向来抱着“让子弹飞一会儿”的态度。但架不住身边朋友和社区里一波接一波的“真香”反…

作者头像 李华
网站建设 2026/8/13 4:07:55

海康WEB3.0多画面视频监控:无插件化架构与flv.js实战

1. 项目概述:从单画面到多画面的业务跃迁在安防监控、智慧园区、生产巡检等众多场景中,我们常常遇到一个核心需求:在一个Web页面上,同时、流畅地展示来自多个海康威视摄像头的实时视频流。这听起来简单,但背后涉及的技…

作者头像 李华