使用GPU训练tensorflow/keras模型,Memory-Usage占用高,GPU-Util利用率低。提升GPU-Util利用率,提升模型训练速度

目录

如何使用 gpu 训练模型

win11 系统,已安装 CUDA-11.2、cuDNN-8.1、tensorflow-gpu-2.6.0 以及 keras-2.6.0。但我在运行如下代码训练模型时,通过任务管理器看到 cpu 占用 20%左右,gpu 占用为0%。我以为此时仍是 cpu 在训练模型(其实安装好相互兼容的 CUDA、cuDNN、tensorflow-gpu、keras,代码会自动调用 gpu 训练模型,必须对任务管理器进行修改才能看到实际的 gpu 利用率)。

history = model.fit(
    train_generator,
    steps_per_epoch=100,
    epochs=30,
    validation_data=validation_generator,
    validation_steps=50)

我以为需要通过特殊设置才能让 gpu 训练模型,看到网上说要加上这两行代码,加上以后,cpu 和 gpu 利用率还是没变化(其实在只有一张显卡的机器上完全不用加下面的代码来指定gpu,多显卡机器才需要)。

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

使用 nvidia-smi 指令查看 gpu 利用率

接着,我在命令行使用 nvidia-smi 指令发现在程序未运行时,GPU-Util 为 0%,但在训练模型时,GPU-Util 为 26%,并且显存占用了 6800MB。 所以就是 gpu 在训练模型呀,我以为又是这垃圾 win11 的 bug,导致任务管理器显示异常。

使用GPU训练tensorflow/keras模型,Memory-Usage占用高,GPU-Util利用率低。提升GPU-Util利用率,提升模型训练速度

; 提升 GPU-Util 利用率以及模型训练速度

不过,我还是不满意,显存占用那么高,为什么 gpu 利用率才 26% 呢?继续查询得知:

1. 可能是 gpu 很快就算完了,在等待 cpu 传输新的数据
2. 可以通过设置 workers(线程数)来增加数据预处理和数据传输的 cpu 个数,如下:

history = model.fit(
    train_generator,
    steps_per_epoch=100,
    epochs=30,
    validation_data=validation_generator,
    validation_steps=50,
    workers=4)

经过测试,gpu 利用率果然大幅提升,模型训练速度也大幅提升:

workers训练时间未设置2分48秒21分44秒41分11秒61分06秒81分03秒

将任务管理器的 Copy 改为 Cuda

查询过程中意外发现了训练模型时,任务管理器始终显示 gpu 利用率很低的原因:

如果你已经正确安装了 CUDA/cuDNN,那么你需要做的就是在任务管理器的下拉菜单中更改副本 –> cuda,它将显示活动 cuda 核心的数量。GPU 的其他指标在运行 tf/keras 时不会激活,因为没有视频编码/解码等工作要做;它只是在 GPU 上使用 cuda 内核,因此跟踪 GPU 使用情况的唯一方法是查看 cuda 利用率(考虑从任务管理器进行监控时)

使用GPU训练tensorflow/keras模型,Memory-Usage占用高,GPU-Util利用率低。提升GPU-Util利用率,提升模型训练速度

参考:https://stackoverflow.com/questions/58289983/low-nvidia-gpu-usage-with-keras-and-tensorflow

如果你发现下拉菜单中没有 Cuda 选项,你需要在设置中把” 硬件加速 GPU 计划“关掉并重启电脑。

使用GPU训练tensorflow/keras模型,Memory-Usage占用高,GPU-Util利用率低。提升GPU-Util利用率,提升模型训练速度

Original: https://blog.csdn.net/Glfsir/article/details/123604474
Author: 大厨儿
Title: 使用GPU训练tensorflow/keras模型,Memory-Usage占用高,GPU-Util利用率低。提升GPU-Util利用率,提升模型训练速度

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/496899/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球