一、介绍

在进行深度学习模型训练和推理过程中,我们常常需要借助GPU的强大计算能力。但是,GPU的使用率往往会受到各种因素的影响,例如:代码实现、数据集大小、GPU性能等等。因此,了解如何查看GPU使用率能够更好地帮助我们调试优化模型。

二、查看GPU使用率

下面我们将介绍多种方法查看GPU使用率:

1. nvidia-smi命令

在Linux和Windows操作系统下,我们可以通过使用nvidia-smi命令来查看GPU的使用情况。

 nvidia-smi 

该命令会输出以下信息:

+------------------------------------------------------+                       
| NVIDIA-SMI 470.63.01    Driver Version: 470.63.01    |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
| 30%   30C    P8     2W /  40W |    406MiB /  4040MiB |      2%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

从上述信息中我们可以看到以下内容:

  • GPU序号:本例中是0号GPU;
  • GPU名称:本例中是NVIDIA GeForce …;
  • 运行状态:本例中是Off,表示GPU没有进行计算任务;
  • 温度:本例中是30℃;
  • 性能:本例中是P8;
  • 功率:本例中是2W / 40W;
  • 显存使用情况:本例中使用了406MiB,总计4040MiB;
  • GPU使用率:本例中是2%。

2. nvtop命令

如果你想查看GPU使用日志,可以考虑使用nvtop工具。

 nvtop 

该命令会输出一个以文字和图表形式显示的GPU使用情况的实时监控窗口。

从nvtop窗口中,我们可以看到以下信息:

  • GPU名称:本例中是Tesla M40;
  • 温度:本例中是49℃;
  • 风扇转速:本例中是36%;
  • GPU使用率:本例中是100%;
  • 显存使用情况:本例中使用了6665MiB;
  • 进程:本例中正在运行python。

3. 使用Python代码

除了使用命令行工具,我们还可以在Python代码中实现查看GPU使用率的功能。以下代码展示了如何利用NVIDIA官方提供的python库nvidia-ml-py来查询GPU使用率。

 
import nvidia_smi

nvidia_smi.nvmlInit()
handle = nvidia_smi.nvmlDeviceGetHandleByIndex(0)

res = nvidia_smi.nvmlDeviceGetUtilizationRates(handle)
print(f'GPU utilizaiton: {res.gpu}%')

该代码会输出以下信息:

GPU utilization: 34%

三、结论

通过上述方法,我们可以了解GPU的使用情况,有助于我们更好地掌控模型优化和调整。