当前位置: 首页 > 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.dtcms.com/a/320348.html

相关文章:

  • linux系统编程
  • 使用winsw把SpringBoot项目注册成window服务
  • javaweb开发之会话_过滤器_监听器
  • 【感知机】感知机(perceptron)学习算法的收敛性
  • 【Unity3D实例-功能-镜头】第三人称视觉-镜头优化
  • 基于深度学习的污水新冠RNA测序数据分析系统
  • Linux机器可直接使用的自动化编译文件
  • AGV_ads通讯exe的创建
  • Java日志技术:从基础到实战
  • 蒙文OCR识别技术难点实现及应用场景剖析
  • Transformer:Attention is all you need
  • HCIP | BGP综合实验报告册
  • PMP项目管理:理解PMP、PMP学什么 / 适合谁学 / Project Management Professional / 项目管理专业人士
  • uat是什么
  • Day32--动态规划--509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯
  • 华为服务器如何部署Mindie镜像
  • 俄文识别技术,高精度识别,支持多场景多平台
  • 天猫商品评论API技术指南
  • 如何在NVIDIA H100 GPU上用Ollama以最高性能运行大语言模型
  • 2025数字马力一面面经(社)
  • 【2025最新版】火狐浏览器(官方版)安装-附教程
  • Ubuntu 22 下脚本登录MFA堡垒机
  • 一个自动定位并查询天气的工具(c语言)
  • 八股文智力题
  • 目标检测数据集 - 高架视角道路车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」
  • 为什么会有反射
  • js中的设计模式
  • UnivNet论文分析(20210615)
  • Flutter报错...Unsupported class file major version 65
  • 接口测试-mock测试