Метод cuda
Метод cuda позволяет перенести тензор с центрального процессора (CPU) на графический процессор (GPU) для ускорения вычислений. Метод не изменяет исходный тензор, а возвращает новую копию тензора, размещенную в памяти видеокарты. Если тензор уже находится на GPU, метод вернет его же. Метод принимает необязательный параметр device, который указывает идентификатор устройства GPU, и параметр non_blocking, управляющий асинхронным копированием.
Синтаксис
t.cuda([device, [non_blocking]])
Пример
Давайте создадим тензор на CPU и перенесем его на GPU по умолчанию:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
t_gpu = t.cuda()
print(t_gpu)
Результат выполнения кода:
tensor([1, 2, 3, 4, 5], device='cuda:0')
Пример
Давайте перенесем тензор на конкретное устройство GPU с индексом 1:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
t_gpu_1 = t.cuda(device=1)
print(t_gpu_1)
Результат выполнения кода:
tensor([1, 2, 3, 4, 5], device='cuda:1')
Пример
Давайте выполним асинхронное копирование тензора на GPU с помощью параметра non_blocking:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
t_gpu = t.cuda(non_blocking=True)
print(t_gpu)
Результат выполнения кода:
tensor([1, 2, 3, 4, 5], device='cuda:0')