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

mfpqipee  于 2023-01-17  发布在  其他
关注(0)|答案(4)|浏览(126)

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

fzsnzjdm

fzsnzjdm1#

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

tpgth1q72#

查看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替换为其他数字。

o7jaxewo

o7jaxewo3#

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

$ 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))]
p4rjhz4m

p4rjhz4m4#

我知道这个答案有点晚了,我以为问题的作者问的是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)”函数的用法,它返回一个如下所示的对象:

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

此对象包含名为“name”的属性。您可以选择直接深入到name属性以获取与相关GPU关联的可读名称。

相关问题