在 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