7,968
社区成员
发帖
与我相关
我的任务
分享QNN 运行时出现 “mem alloc fail”,但系统内存看起来还够,可能是什么原因?
系统内存充足但 QNN 报内存分配失败,通常不是 DDR 总量问题,而是特定内存区域、对齐、权限或设备内存问题。常见原因包括:
VTCM 不足,模型或算子临时缓冲区超出 HTP 可用 VTCM;
ION 或共享内存分配失败,设备侧没有连续物理页;
内存对齐不符合 HTP 要求;
设备节点权限不足,无法访问 CDSP 或相关内存驱动;
运行时同时加载过多模型,导致虚拟地址或内存池耗尽。 建议先开启详细日志:
export QNN_LOG_LEVEL=4
然后搜索 “VTCM” “ION” “align” “permission” “fd” 等关键词。如果是 VTCM 问题,可以减少单个模型临时 buffer 或拆分大模型;如果是 ION 问题,检查共享内存配置和设备驱动状态。参考文档:高通 QNN 内存分配与 VTCM 调优说明。