在 windows 上使用 tensorflow 时,GPU 大部分时间都处于空闲状态

Posted

技术标签:

【中文标题】在 windows 上使用 tensorflow 时,GPU 大部分时间都处于空闲状态【英文标题】:GPU is idle most of the time when using tensorflow on windows 【发布时间】:2021-11-06 19:37:34 【问题描述】:

我正在尝试在我的 Windows PC 上使用 DeepLabV2 网络。我有 GTX 1080Ti (8GB)、32 GB RAM 和核心 i7。我正在用城市景观数据集训练网络。

我正在使用 conda/pip 安装包,包括 tensorflow gpu。我的 NVIDIA 驱动程序和 CUDA/cuDNN 版本都是最新的。我还从 conda 将 CUDNN 文件从 include 和 lib 文件夹复制到了我的 virtualenv。

以下是它们的一些详细信息:

我的问题是我看到 CPU 在训练期间被 100% 使用,但 GPU 几乎一直处于空闲状态。当我运行网络时,它可以检测到 GPU。见下文:

我已将 GPU 内存限制为 6GB,因为数据集太重并导致崩溃。

第一个循环之后:

CPU和GPU利用率如下图:

我在互联网上阅读了有关性能分析的信息,但与 CPU 相比,数据造成的瓶颈通常会导致 GPU 空闲时间更多。但是,这里只使用 CPU,GPU 一直处于空闲状态。

我在这里缺少什么?据我所见,GPU 配置正确并被 conda env 和 tensorflow 识别。

谢谢!

编辑:numpy mkl 输出

【问题讨论】:

相同的代码是否在 Linux 上运行并正确利用 GPU?可能是代码写得不好,像 NMS 抑制这样的事情是在 CPU 中完成的。 或者你使用的 numpy 没有 MKL? 我还没有在 linux 上尝试过。代码只是从这个 repo github.com/google-research/deeplab2 中克隆出来的。我添加了屏幕截图以列出 numpy 版本。我认为 mkl 包括在内,但不确定。 【参考方案1】:

我发现了问题。我没有在训练脚本中提供以下参数´--num_gpus=1´

因此,从未使用过 gpu。我用了之后,GPU就用上了,训练正常。

【讨论】:

以上是关于在 windows 上使用 tensorflow 时,GPU 大部分时间都处于空闲状态的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow gpu 在“windows”上没有 docker 服务

Python spyder + tensorflow 交叉验证在 Windows 10 上冻结

如何在 Windows 上降级 keras 和 tensorflow 版本?

Tensorflow找不到GPU:tensorflow 2.11.0版本开始,在windows上不再支持GPU

在 windows 上使用 tensorflow 时,GPU 大部分时间都处于空闲状态

在windows 7上安装TensorFlow