Tensorflow:将CUDA_VISIBLE_DIVICES设置为不同的值时,GPU的利用率有很大差异



Linux: Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-38-generic x86_64)

Tensorflow:从源代码编译,1.4

显卡:4xP100

我正在尝试新发布的对象检测教程培训程序。我注意到当我将CUDA_VISIBLE_DEVICES设置为不同的值时有很大的不同。具体来说,当它设置为"gpu:0"时,gpu util 是相当高,比如 80%-90%,但是当我将其设置为其他 GPU 设备时,例如显卡:1、显卡:2 等GPU 利用率非常低,介于 10%-30% 之间。

至于训练速度,似乎大致相同,比仅使用 CPU 时快得多。

我只是好奇这是怎么发生的。

正如这个答案所提到的,GPU-Util 是衡量每个 GPU 计算的使用/业务的指标。

不是专家,但根据我的经验,GPU 0 通常是默认情况下运行大多数进程的地方。CUDA_VISIBLE_DEVICES设置您在该 bash 上运行的进程看到的 GPU。因此,通过将CUDA_VISIBLE_DEVICES设置为 gpu:1/2,您可以使其在不太繁忙的 GPU 上运行。

此外,您只报告了 1 个值,理论上每个 GPU 应该有一个值;有可能您只查看 GPU-0 的 GPU-util,如果您不使用,它当然会减少。

最新更新