如何在tensorflow中获取当前可用的GPU?
- 论坛
- 如何在tensorflow中获取当前可用的GPU?
5 浏览
如何在tensorflow中获取当前可用的GPU?
我计划使用分布式TensorFlow,并且我知道TensorFlow可以使用GPU进行训练和测试。在集群环境中,每台机器可以有0个或1个或多个GPU,我希望尽可能多地将我的TensorFlow图运行在尽可能多的机器的GPU上。
我发现当运行tf.Session()
时,TensorFlow会在日志信息中提供有关GPU的信息,如下所示:
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0 I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: Y I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
我的问题是如何从TensorFlow中获取当前可用的GPU信息?我可以从日志中获取已加载的GPU信息,但我想以更复杂、程序化的方式实现。
我还可以使用CUDA_VISIBLE_DEVICES环境变量有意地限制GPU,所以我不想从操作系统内核中获取GPU信息的方法。
简而言之,我希望有一个类似于tf.get_available_gpus()
的函数,如果机器上有两个可用的GPU,它将返回['/gpu:0', '/gpu:1']
。我该如何实现这个?