(14)关于PyTorch训练深度学习模型CPU/GPU使用率低,训练速度慢这一问题的总结 您所在的位置:网站首页 cpugpu占用率不高但是剪视频卡 (14)关于PyTorch训练深度学习模型CPU/GPU使用率低,训练速度慢这一问题的总结

(14)关于PyTorch训练深度学习模型CPU/GPU使用率低,训练速度慢这一问题的总结

2023-12-19 11:44| 来源: 网络整理| 查看: 265

电脑配置双2080Ti+i7-10700K,使用mobilenet-yolov4-lite训练VOC数据集时,训练100epochs要五六个小时,检测cpu和gpu的使用发现利用率都很低,说明没有充分使用电脑优秀的性能,两个显卡的使用率都分别只有20%-50%,查阅一些资料总结如下:

1、参考:【深度学习】踩坑日记:模型训练速度过慢,GPU利用率低

上面作者指出四个提速技巧:

减少日志IO操作频率使用pin_memory和num_workers使用半精度训练更好的显卡,更轻的模型

其中,第四个无力改变,前两个均进行尝试,首先在train.py文件中改变了日志输出的间隔,但由于本来程序中就没有输出太多训练日志,只输出了模型结构和loss曲线,因此没有发现明显变化;第2点在训练时也使用了pin_memory和num_workers,但无论怎么调整num_workers,显卡利用率仍没有变化。

2、参考:深度学习PyTorch,TensorFlow中GPU利用率较低,CPU利用率很低,且模型训练速度很慢的问题总结与分析

上文作者进行了比较全面的总结,并且评论区也信息量较大,遇到这种情况可以自行查看。

 在调试过程中,命令:top     实时查看你的CPU的进程利用率,这个参数对应num_workers的设置; 命令:   watch -n 0.5 nvidia-smi    每0.5秒刷新并显示显卡设置。 实时查看GPU的使用情况,这是GPU的设置相关。这两个配合好。包括batch_size的设置。

主要指出batchsize要和num_workers配合使用,num_workers为cpu工作的线程数,一般来说不要超过cpu的核心数(本机cpu为8核心16线程)。

程序中遇到的问题为:将batchsize设为128,num_workers设为4,出现以下情况:gpu使用率在0%-60%之间变化。

分析问题:可能是cpu对数据的预处理速度供不上gpu的使用,因此gpu要等待cpu进行数据预处理,待处理好的数据传回来之后gpu再继续工作。

存在的问题:按照博客指出的方法进行调试,batchsize和num_workers配合使用,然而无论如何改变这两个数值,gpu使用率一直上不去,并且本机两个2080Ti允许最大batchsize为128,最终没有提高gpu使用率。

猜测可能存在的问题是:

(1)对于主板存在多个卡槽的情况,有网友指出由于电脑内存插入卡槽不对导致gpu使用率低。

(2)cpu进行数据预处理耗费时间太长。根据以下时间计算方法确定是程序哪一部分耗时太长,以进行优化。

并未将gpu利用率低的问题解决掉,由于个人时间精力有限,猜测可能的两个解决方法尚未进行尝试,有各位同行知道如何解决该问题,还请指导一二。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有