如何使用 pytorch 列出所有当前可用的 GPU?

Posted

技术标签:

【中文标题】如何使用 pytorch 列出所有当前可用的 GPU?【英文标题】:How do I list all currently available GPUs with pytorch? 【发布时间】:2021-02-22 20:36:40 【问题描述】:

我知道我可以使用torch.cuda.current_device() 访问当前的 GPU,但是如何获取所有当前可用的 GPU 的列表?

【问题讨论】:

【参考方案1】:

检查 PyTorch 有多少 GPU 可用

import torch

num_of_gpus = torch.cuda.device_count()
print(num_of_gpus)

如果您想使用其中的第一个 GPU。

device = 'cuda:0' if cuda.is_available() else 'cpu'

如果您想使用另一个 GPU,请将上述命令中的 0 替换为另一个数字。

【讨论】:

【参考方案2】:

您可以通过以下方式列出所有可用的 GPU:

>>> import torch
>>> available_gpus = [torch.cuda.device(i) for i in range(torch.cuda.device_count())]
>>> available_gpus
[<torch.cuda.device object at 0x7f2585882b50>]

【讨论】:

这不是一个正确的答案。 torch.cuda.device(i) 返回一个上下文管理器,它会导致未来的命令使用该设备。将它们全部放在这样的列表中是没有意义的。你真正需要的是torch.cuda.device_count(),你的cuda设备是cuda:0cuda:1等,直到device_count() - 1

以上是关于如何使用 pytorch 列出所有当前可用的 GPU?的主要内容,如果未能解决你的问题,请参考以下文章

如何列出所有可用的上下文变量?

如何列出远程站点上可用的所有版本的 gem?

如何列出集群中所有可用的 Kafka 代理?

WGAN-GP 的 Pytorch Autograd 中的内存泄漏

如何在 Linux 架构上即时列出 C 代码中可用的所有函数/符号?

如何获取 iOS 系统设置中列出的所有可用声音文件