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,如果您不使用,它当然会减少。