QNN 推理时,如何在 C++ 代码里使用共享内存方式传递 Tensor 数据,减少 CPU 与 Hexagon 之间的数据拷贝开销?

大鲨鱼奥尼尔 2026-10-13 15:40:02

QNN 推理时,如何在 C++ 代码里使用共享内存方式传递 Tensor 数据,减少 CPU 与 Hexagon 之间的数据拷贝开销?
 

...全文
48 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38498942 10-15 17:13
  • 打赏
  • 举报
回复

可以使用 QNN 的 MemHandle 共享内存机制,注册 ION/memfd 内存句柄给 QNN 张量,避免内存复制。核心流程:创建共享内存 fd → 填充输入数据 → 将 memHandle 绑定到 Qnn_Tensor_t 结构体 → 执行推理。 极简参考代码片段:
Qnn_Tensor_t inputTensor;
Qnn_MemDescriptor_t memDescriptor;
memDescriptor.memType = QNN_TENSORMEMTYPE_MEMHANDLE;
memDescriptor.memHandle.fd = memfd; // 共享内存文件描述符
inputTensor.v2.memHandle = &memDescriptor;
注意事项:注册共享内存后,上下文 finalize 完成前不能释放 buffer;VTCM、spill-fill 缓冲区也支持注册共享内存,适合视频流、高分辨率图像这类大数据输入场景,降低推理时延。 参考文档:高通 QNN HTP Shared Buffer 官方教程。

7,845

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、IoT、PC 、XR、Auto等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
物联网人工智能开源 企业社区 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧