为什么在深度模型推理期间 GPU-Util 为零且 GPU 内存使用率高?

Why GPU-Util is zero with high GPU memory-usage during deep model inference?

提问人:SupernoobBran 提问时间:11/25/2021 更新时间:11/25/2021 访问量:62

问:

背景

我目前正在从事一项需要深度学习模型推理(或预测)而不是训练任务的工作。我想在 GPU 上加速推理过程。

问题

我正在使用 tensorflow 中的 keras 模块为 MNIST 数字分类任务加载一个训练有素的 DNN 模型。基本上,我需要的是:将一批图像输入到 DNN 模型中,模型输出相应的一批分数。由于我需要多次重复这样的过程,因此我想利用 GPU 加速。所以我在代码中指定了

with tf.device('/gpu:1'):

,理想情况下,它应该使用第二个 GPU。

但是,当我运行我的 python 程序时,我发现它非常非常慢。 我的 CPU 信息给出:CPU 信息其中 python3 进程应该是我的 python 程序。

我的 GPU 信息给出: GPU 信息,可以总结为

  • 第二个 GPU (GPU 1) 的内存全部占用
  • 第二个 GPU 没有 GPU-Util
  • 我的容器中没有 GPU 上的进程在运行

从上面的信息来看,我怀疑我的程序完全在CPU上运行。

设置

我的服务器的基本硬件和软件设置如下:

  1. 操作系统:
Linux e46efe9289d3 5.4.0-72-generic #80~18.04.1-Ubuntu SMP Mon Apr 12 23:26:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
  1. 中央处理器:
128  AMD Ryzen Threadripper 3990X 64-Core Processor
  1. 显卡:
GPU 0: NVIDIA GeForce RTX 3090 (UUID: )
GPU 1: NVIDIA GeForce RTX 3090 (UUID: )
GPU 2: NVIDIA GeForce RTX 3090 (UUID: )
GPU 3: NVIDIA GeForce RTX 3090 (UUID: )
  1. CUDA:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Aug_15_21:14:11_PDT_2021
Cuda compilation tools, release 11.4, V11.4.120
Build cuda_11.4.r11.4/compiler.30300941_0
  1. 库德恩:
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 2
#define CUDNN_PATCHLEVEL 4
  1. tensorflow(GPU 版本):
>>> tf.__version__
'2.5.0'

帮助

你能帮我在 GPU 上部署 DNN 推理任务吗?

Python TensorFlow Keras GPU

评论

0赞 Dr. Snoopy 11/25/2021
究竟什么是“非常非常慢”,就像数字一样?此外,您不需要 4 个 GPU 来训练或对 MNIST 模型进行推理,因为它们是非常小的模型。
0赞 Dr. Snoopy 11/25/2021
而且你得出了错误的结论,使用了三个 GPU,所以你不能断定你的代码在 CPU 上运行。
0赞 SupernoobBran 11/25/2021
1. “非常非常慢”是指 100 次推理大约需要 30 秒,批量大小 = 2;2.由于我在容器中,因此还有其他用户在其余的GPU上运行程序,我无法通过命令看到他们的进程,所以我相信我有正确的结论nvidia-smi
0赞 Dr. Snoopy 11/25/2021
tensorflow 日志实际上会告诉您是否检测到 GPU,以及它是否正在使用,您无法通过查看利用率来推断是否正在使用 GPU。此外,为了提高性能,增加批处理大小,2 的批处理大小低得离谱,尝试至少 128 甚至更高,直到 1024,GPU 是大规模并行处理器,因此它们需要大量的并行性。
0赞 Dr. Snoopy 11/25/2021
为了更详细地了解利用率,GPU 是大型处理器,如果您有一个很小的 MNIST 模型,批量大小较小,则很容易获得 0.0 到 1.0 之间的利用率,如果利用率低于 1.0%,它将报告为零,因此您不能使用利用率来确定是否正在使用 GPU。

答: 暂无答案