• 如果觉得本站的内容有帮助,可以考虑打赏博主哦!

  • 问题反馈可发送邮件到stubbornhuang@qq.com

  • 工资「喂饱肚子」,副业「养活灵魂」!

  • 欢迎大家交换友链,可在https://www.stubbornhuang.com/申请友情链接进行友链交换申请!

  • 在本站开通年度VIP,无限制下载本站资源和阅读本站文章

  • 本站会放置Google广告用于维持域名以及网站服务器费用。

  • 本站由于前段时间遭受到大量临时和国外邮箱注册,所以对可注册的邮箱类型进行了限制!

  • 感谢大家访问本站,希望本站的内容可以帮助到大家!

  • 计算机图形学与计算几何经典必备书单整理,下载链接可参考:https://www.stubbornhuang.com/1256/

TensorRT – 使用TensorRT C++ SDK部署模型时推理时间波动不稳定或者推理速度越来越慢的问题

TensorRT 发布于2023-07-07 阅读 5,061次 0次评论 0次点赞 本文共1182个字,阅读需要3分钟。

1 使用TensorRT C++ SDK部署模型推理时间不稳定或者推理速度越来越慢的问题

最近今天在使用TensorRT C++ SDK部署PaddleSeg的PPMattingV2-512模型,如果只是对单张图片进行推理的话,推理一张图片在8-10ms左右。如果对摄像头或者是视频文件进行推理,前面几十帧的推理速度还是比较正常的,但是越到后面推理速度越来越慢,并且推理时间非常不稳定,在8-25ms波动,这对后续项目实际使用影响非常大。

2 相应的解决方案

2.1 修改显卡NVIDIA设置

进入NVIDIA控制面板 ,全局设置,修改低延时模式为超高,修改电源管理模式为最高性能优先

TensorRT - 使用TensorRT C++ SDK部署模型时推理时间波动不稳定或者推理速度越来越慢的问题-第0张图片

2.2 修改显卡最大时钟频率

使用管理员模式打开cmd,不使用管理员模式打开,之后在设置时钟频率会会出现权限错误,错误如下

TensorRT - 使用TensorRT C++ SDK部署模型时推理时间波动不稳定或者推理速度越来越慢的问题-第1张图片
The current user does not have permission to change clocks for GPU 00000000:01:00.0.
Terminating early due to previous errors.

使用管理员权限打开cmd工具之后,先使用

nvidia-smi -q -d SUPPORTED_CLOCKS

命令查询当前显卡的最大频率,比如我显卡的最大时钟频率为2130MHz,

TensorRT - 使用TensorRT C++ SDK部署模型时推理时间波动不稳定或者推理速度越来越慢的问题-第2张图片

然后使用以下命令将显卡的时钟频率设置为最大的2130MHz

nvidia-smi -lgc 2130

在设置完成之后,如果要恢复原来的设置,可使用

nvidia-smi -rgc

命令进行恢复。

经过这两个步骤的设置,TensorRT的推理时间变得非常稳定,一帧图片基本上维持在8-9ms的范围内,不再出现推理时间波动以及推理速度越来越慢的问题。

2.3 Windows系统设置无分页内存

还有网上的博文介绍了一种方式是在Windows上对系统设置无分页内存,进入高级系统设置页面,就是设置系统环境变量那个页面

然后选择高级-设置

TensorRT - 使用TensorRT C++ SDK部署模型时推理时间波动不稳定或者推理速度越来越慢的问题-第3张图片

在性能选项中再选择高级-虚拟内存-更改

TensorRT - 使用TensorRT C++ SDK部署模型时推理时间波动不稳定或者推理速度越来越慢的问题-第4张图片

设置选择系统盘,选择无分页文件,点击确定,然后重启电脑。

TensorRT - 使用TensorRT C++ SDK部署模型时推理时间波动不稳定或者推理速度越来越慢的问题-第5张图片

这个方法我没有测试,不过想一下这样设置的原因是,虚拟内存是Windows上从硬盘划一块控件当做内存使用,其读写速度就只是硬盘的读写速度。如果在TensorRT推理的过程中,内存与显卡交互时使用到了虚拟内存,那么显卡和内存之间的数据拷贝将会以硬盘的速度进行传输,所以会极大的增大推理时间。如果设置成无分页内存也就是说不使用虚拟内存,所以就不会出现上述情况,使得数据只会在内存与显存之间进行传输,从而不会影响推理时间。

参考链接

欢迎扫码关注我的微信公众号,及时获取文章更新

微信公众号二维码

本文作者:StubbornHuang

版权声明:本文为站长原创文章,如果转载请注明原文链接!

原文标题:TensorRT – 使用TensorRT C++ SDK部署模型时推理时间波动不稳定或者推理速度越来越慢的问题

原文链接:https://www.stubbornhuang.com/2721/

发布于:2023年07月07日 9:13:49

修改于:2023年07月07日 9:13:49

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章末尾
上一篇
CMake - Windows系统设置CMake网络代理
C++
下一篇
OpenCV - 图片增加透明通道,图片合并透明通道
OpenCV
当前分类随机文章推荐

发表评论

您必须 [ 登录 ] 才能发表留言!

关注我们的公众号

微信公众号