NVIDIA-Tensorrt 之 前向推理耗时不稳定的解决方法

文章讨论了在Windows10环境下,使用Nvidia3060/3070/3070Ti驱动和CUDA11.x进行Halcon和PaddlePaddle任务时,推理耗时的不稳定问题。尝试了多种硬件组合、CUDA设置及内存优化,最终发现锁定GPU时钟频率并设置低延时模式可显著提高稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用场景:

系统:Windows 10 x64
硬件:分别使用Nvidia 3060 laptop、Nvidia 3070、Nvidia 3070 Ti
驱动:5xx
cuda:11.x
平台:Halcon、PaddlePaddle
任务:随机执行一次推理,但要求耗时稳定


问题描述

  • 在上述应用场景下,随机执行推理的耗时很不稳定,30ms 至 100ms+不定;
  • 如果保持连续间隔40ms的推理频率,时间又比较稳定30ms+;
  • 规律就是,间隔时间长去进行推理,那么这次的推理耗时特别长,耗时会是连续推理的三、四倍;

尝试解决:

  • 各种更换硬件的组合方式,没有能够解决这个问题;

  • 各种更换CUDA组合方式,没有能够解决这个问题;

  • 分页内存设置,没有能够解决这个问题;

  • 单独开启一个线程,以很小的固定间隔时间推理一张固定的图片,在这个基础上再去推理我们想要处理的任务。该方法有一定的效果,但是不理想,还是不够稳定,单张图片的推理时间还是波动一倍左右。

  • 根据同事反馈使用1080Ti显卡,同样的程序却没有这个问题存在;


原因分析:

官方的人员回复:
1 间隔推理可能会导致显卡降频并且会持续一些时间,建议开一个空内核跑着可以维持高频率,Samples中有,但是我没有找到;
2 建议设定固定频率,这个应该简单一些;
3 多久降?降多少?为什么?…不得而知


解决方案:

锁定GPU时钟频率(实测有效):

  • 第一步 使用 nvidia-smi -q -d SUPPORTED_CLOCKS 查询GPU支持的最高频率,如下图所示为 7001 MHz
nvidia-smi -q -d SUPPORTED_CLOCKS

 
  • 1

查询主频

  • 第二步 设置锁定评率 nvidia-smi -lgc 7001 设置成功后的结果如下图所示:
nvidia-smi -lgc 7001

 
  • 1

设置主频

  • 第三步 NVIDIA 显卡设置
低延时模式,设置为 超高

 
  • 1

在这里插入图片描述

- 电源管理模式,设置为 最高性能优先

 
  • 1

在这里插入图片描述


  • 第四步 Batchsize=1 随机间隔时间进行推理,测试推理耗时,此时应该就很稳定了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值