7,646
社区成员
发帖
与我相关
我的任务
分享AI Edge Box 上长时间运行推理任务时,如何降低内存占用和显存碎片?
在 AI Edge Box 上长时间运行推理任务时,建议复用模型上下文和 Tensor 资源,避免循环重复创建模型实例;同时可以使用固定尺寸的输入输出缓冲区,减少频繁内存分配和释放。
例如,推理上下文可以全局复用:
cpp
运行
QnnContext* g_context = nullptr;void init_model() {QnnContext_createFromBinary("model.context.bin", &g_context);}void run_inference() {QnnContext_execute(g_context);QnnTensor_flushCache(QnnContext_getInputTensor(g_context, 0));QnnTensor_flushCache(QnnContext_getOutputTensor(g_context, 0));}
此外,模型转换时可以开启内存分段、权重复用等策略,降低长时间运行后的内存碎片风险。