当前位置:   article > 正文

GPU推理耗时不稳定的解决方法_onnxruntime gpu 推理时间 不稳定

onnxruntime gpu 推理时间 不稳定

应用场景:

系统: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 随机间隔时间进行推理,测试推理耗时,此时应该就很稳定了!
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/423935
推荐阅读
相关标签
  

闽ICP备14008679号