(14)关于PyTorch训练深度学习模型CPU/GPU使用率低,训练速度慢这一问题的总结 | 您所在的位置:网站首页 › cpugpu占用率不高但是剪视频卡 › (14)关于PyTorch训练深度学习模型CPU/GPU使用率低,训练速度慢这一问题的总结 |
电脑配置双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 实验室设备网 版权所有 |