pytorch深度学习框架-训练模型时GPU占用率太低怎么办?如何尽量榨干我们的GPU性能?

零、参考来源

torch | gpu 利用率低怎么办 | 犀牛的博客

一、怎么正确地查看GPU运行状态(比如占用率)?

1.1 任务管理器

Windows系统自带的任务管理器显示默认的copy、3D、video引擎下的占用率,不代表训练时需要的CUDA引擎占用率。

pytorch深度学习框架-训练模型时GPU占用率太低怎么办?如何尽量榨干我们的GPU性能?_第1张图片

将某一个小窗口的引擎设置为CUDA,才会真正显示训练模型的实际占用率。

 pytorch深度学习框架-训练模型时GPU占用率太低怎么办?如何尽量榨干我们的GPU性能?_第2张图片

1.2 nvidia-smi

在CMD窗口中输入nvidia-smi后,回车,就会显示GPU占用率、温度、占用内存大小等信息。注意,如果此命令回车后提示错误,可能是因为显卡驱动程序未安装。

下图的Memory-usage是内存使用情况,GPU-Util是Gpu利用率;注意内存占用高不代表利用率高,详见下面的链接。

GPU显存占满利用率GPU-util为0_吨吨不打野的博客-CSDN博客_gpu util

pytorch深度学习框架-训练模型时GPU占用率太低怎么办?如何尽量榨干我们的GPU性能?_第3张图片

 如果想要每隔1秒刷新一次GPU使用情况,可以使用命令【watch -n 1 -d nvidia-smi】。

二、如何尽量榨干我们的GPU性能?

2.1 更改batch-size的大小

batch-size的大小和GPU memory占用大小成线性关系。比如下面用batch size=2时占了1.15Gb,而我的显卡GTX 1650显存有4GB,我还能把batch size定义为4。

pytorch深度学习框架-训练模型时GPU占用率太低怎么办?如何尽量榨干我们的GPU性能?_第4张图片

batch size调成4后,gpu_mem变成了 2.42gb,已经榨得差不多了。

这里有一个疑惑,我把batch size调成1和调成4,在任务管理器中cuda占用率都是70%左右。

pytorch深度学习框架-训练模型时GPU占用率太低怎么办?如何尽量榨干我们的GPU性能?_第5张图片

 

2.2 神经网络深度

你可能感兴趣的:(机器学习,python)