【问题标题】:How to verify and allocate GPU allocation in Tensorflow?如何在 Tensorflow 中验证和分配 GPU 分配?
【发布时间】:2019-04-30 17:20:53
【问题描述】:

我的笔记本电脑是 Thinkpad T470P,它似乎有双 GPU——一个是集成英特尔高清显卡 630,另一个是 GeForce 940MX。

我安装了 CUDA 版本。 10.1 在这台机器上成功了,现在我想在 Tensorflow 中运行一个培训。我想知道训练使用的是哪个 GPU,所以我尝试了这个:

from tensorflow.python.client import device_lib

device_lib.list_local_devices()

这就是我得到的:

[name: "/device:CPU:0"
 device_type: "CPU"
 memory_limit: 268435456
 locality {
 }
 incarnation: 17770480900406893487, name: "/device:GPU:0"
 device_type: "GPU"
 memory_limit: 1462163865
 locality {
   bus_id: 1
   links {
   }
 }
 incarnation: 5306128727345722238
 physical_device_desc: "device: 0, name: GeForce 940MX, pci bus id: 0000:02:00.0, compute capability: 5.0"]

我只是好奇为什么会有两个化身?一个名称为/device:GPU:0,另一个名称为GeForce 940MX

据我所知,CUDA 和 tensorflow 是否真的只能在 GeForce 上运行,因为 CUDA 甚至不支持集成 GPU?

在这种情况下,如何指定要在 GeForce 940MX 上运行的 tensorflow?由于有两个名称,我不确定它们是否指的是不同的 GPU。非常感谢您的意见!

【问题讨论】:

    标签: tensorflow keras gpu


    【解决方案1】:

    首先,CUDA 仅与 NVIDIA 显卡兼容,因此您的 Integrated Intel HD graphics 630 不会被 TensorFlow 使用或使用device_lib.list_local_devices() 列出。

    唯一使用的 GPU 设备是带有 device_type: "GPU" 的项目,它代表您的 GeForce 940MX 卡。我相信列出的其他项目 指的是同一张GPU卡——我通常只关注设备类型=GPU的项目。要专门打印这些项目,您可以使用https://stackoverflow.com/a/38580201/9672143 中的此脚本:

    from tensorflow.python.client import device_lib
    
    local_device_protos = device_lib.list_local_devices()
    print([x.name for x in local_device_protos if x.device_type == 'GPU'])
    

    一个有用的工具是命令行上的nvidia-smi。这列出了可用的 NVIDIA GPU,以及使用每个 GPU 的进程。当您启动 TensorFlow/Keras 程序时,您应该会看到 python 进程出现在nvidia-smi 输出的底部。

    要回答您的最后一个问题,您可以在导入 TF/Keras 之前使用以下代码强制 TensorFlow 使用特定 GPU:

    import os
    os.environ['CUDA_VISIBLE_DEVICES'] = '0'  # gpu ID
    

    GPU ID 可以从nvidia-smi 的输出中找到,它显示了每个 GPU 及其关联的 ID。

    【讨论】:

    • 感谢您的清晰解释!你的回答证实了我的问题。我曾尝试使用 nvidia-smi 来监控我的训练过程,你是对的,它是正在运行的 GeForce 940MX。非常感谢!
    猜你喜欢
    • 2017-11-13
    • 1970-01-01
    • 2020-04-30
    • 2016-03-15
    • 2019-08-29
    • 2020-03-23
    • 1970-01-01
    相关资源
    最近更新 更多