7,645
社区成员
发帖
与我相关
我的任务
分享高通 AI Edge Box 同时运行目标检测与 OCR 双模型,两套推理会话互相抢占内存导致随机崩溃,如何优化?
两套模型同时申请大块连续物理内存,边缘 Box 内存资源不足,内存分配失败直接导致进程崩溃;同时共享预处理缓冲区造成内存读写冲突。
内存池隔离分配(QNN C++ 开发参考逻辑)
// 为检测、OCR分别创建独立内存池
Qnn_MemoryPool_Handle det_pool, ocr_pool;
create_memory_pool(&det_pool, det_model_mem_size);
create_memory_pool(&ocr_pool, ocr_model_mem_size);
// 各自会话绑定专属内存池,互不抢占
session_det.bind_memory_pool(det_pool);
session_ocr.bind_memory_pool(ocr_pool);
串行调度机制:单帧先执行目标检测,裁剪目标区域后再送入 OCR,取消并行推理,错开内存峰值;
预处理缓存复用:全局统一图像缓存,完成推理后立即释放纹理、张量临时内存;
限制最大并发推理帧数,避免多帧堆积占用内存。