当前位置: 首页 > news >正文

在NVIDIA Orin上用TensorRT对YOLO12进行多路加速并行推理时内存泄漏 (中)

接上篇

在NVIDIA Orin上用TensorRT对YOLO12进行多路加速并行推理时内存泄漏(上)

通过上篇的分析,发现问题在采集数据到传入GPU之前的阶段。但随着新一轮长时间测试发现,问题依然存在。

在这里插入图片描述
如上图,在运行20多分钟内存开始增长,这个增长只要一开始就会持续直到程序直接卡掉。于是又开启新一轮的排查。

首先,控制变量,使用YOLO12s-DET的engine模型进行推理测试,内存增长情况如下图:在7000s(近两个小时的测试中),内存都在平稳无变化。
在这里插入图片描述
于是,继续摸排问题,发现同样的前处理,YOLO12-DET是没有问题,再加上上图的内存无变化情况,便排除前处理部分。

再次来到后处理及检测结果转换部分的内容,😓,饶了一圈再次回来。只能说抓住本质才是解决问题的唯一方法。

由于有之前的经验,没有再使用memory_profiler这个工具进行后处理各个部分的内存异常监测。这次我采用比较原始的方法,因为经过多次测试发现了一个内存开始增长的现象,就是只要程序一旦卡顿,内存就开始增长。

在这么做之前,把所有可能的结果都是尝试了,结果无一解决这个问题。包括及时释放变量内存、定时强制清理内存等等。

然后,把问题范围缩小到当前的后处理代码部分,以及避开内存监测工具。

现在就采用打断电的方式,再次测试等到程序卡顿现象出现。打断点就是在可以代码前面加一行输出。

print("this is fun1.")
def fun1print("this is fun2.")
def fun2

等到程序停到这里不动的时候就可定定位到程序卡在哪一步了。

很快,程序很快就卡在bbox_iou这里了。程序在这里停住了,然后内存开始持续增长。
在这里插入图片描述

进一步打断点,发现程序在bbox_iou的while循环里面空转。
在这里插入图片描述
随即对该死循环进行特殊处理,最新测试如下,5000s内无异常。至此该问题得到解决。
在这里插入图片描述

http://www.lryc.cn/news/613528.html

相关文章:

  • PoE延长器——突破网络距离限制
  • 数据赋能(386)——数据挖掘——迭代过程
  • PyCharm 图标 c、m、f、F、v、p 的含义
  • 科技云报到:热链路革命:阿卡 CRM 的 GTM 定位突围
  • 健永科技工位RFID读卡器实现生产流水线物料跟踪与柔性化升级
  • 美食广场: 城市胃的便利店
  • MySQL UNION 操作符详细说明
  • 如何在GPU上安装使用Docker
  • SupChains团队:订单生产型供应链销量预测建模案例分享(六)
  • 容器之王--Docker的部署及基本操作演练
  • vLLM:彻底改变大型语言模型推理延迟和吞吐量
  • Aurora MySQL 8.0 性能分析账号创建完整指南
  • 神经网络入门指南:从零理解 PyTorch 的核心思想
  • 跨境电商增长突围:多维变局下的战略重构与技术赋能
  • 从“数字网格”到“空中交警” :星图低空云如何重构低空管理?
  • 鸿蒙 - 分享功能
  • MySql MVCC的原理总结
  • 软件加密工具-DSProtector使用说明
  • 2025年华数杯C题超详细解题思路
  • 旅游mcp配置(1)
  • 多场景两阶段分布式鲁棒优化模型、数据驱动的综合能源系统
  • pybind11 的应用
  • C语言feof函数详解:文件末尾检测的实用工具
  • 【华为机试】113. 路径总和 II
  • 计算机网络1-5:计算机网络的性能指标
  • CSS--:root指定变量,其他元素引用
  • [安卓按键精灵开发工具]本地数据库的初步学习
  • 剑指offer第2版——面试题1:赋值运算符函数
  • CPTS Remote 复现
  • react-router/react-router-dom