繁体   English   中英

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

[英]How do I list all currently available GPUs with pytorch?

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

您可以通过执行以下操作列出所有可用的 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>]

检查 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替换为另一个数字。

使用设备属性扩展先前的回复

$ python3 -c "import torch; print([(i, torch.cuda.get_device_properties(i)) for i in range(torch.cuda.device_count())])"
[(0, _CudaDeviceProperties(name='NVIDIA GeForce RTX 3060', major=8, minor=6, total_memory=12044MB, multi_processor_count=28))]

我知道这个答案有点晚了。 我以为问题的作者问的是 Pytorch 实际可用的设备不是:

  • 有多少可用(可通过 device_count() 获得)或
  • 设备管理器句柄(可通过 torch.cuda.device(i) 获得)这是其他一些答案给出的。

如果您想知道实际的 GPU 名称是什么(例如:NVIDIA 2070 GTI 等),请尝试以下操作:

import torch
for i in range(torch.cuda.device_count()):
   print(torch.cuda.get_device_properties(i).name)

请注意“get_device_properties(i)”function 的使用。这会返回一个 object,如下所示:

_CudaDeviceProperties(name='NVIDIA GeForce RTX 2070', major=8, minor=6, total_memory=12044MB, multi_processor_count=28))

这个 object 包含一个名为“name”的属性。 您可以选择直接向下钻取到名称属性,以获取与所讨论的 GPU 关联的人类可读名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM