Как на самом деле работает версия pytorch CUDA и CUDA?Python

Программы на Python
Гость
Как на самом деле работает версия pytorch CUDA и CUDA?

Сообщение Гость »

Вот список пакетов моей среды conda:
Изображение

Как видите, я не установил cudatoolkit и команду nvcc использовать невозможно. Но у меня установлен pytorch в версии CUDA.
Однако, когда я импортирую torch в Python и проверяю torch.cuda.is_available(), он возвращает Ture.
Я даже запускаю этот тестовый скрипт:

Код: Выделить всё

import torch
from torch import nn
from torch.nn import Module
from torch.optim.lr_scheduler import LambdaLR

class TestNet(Module):
def __init__(self) -> None:
super().__init__()
self.linear = nn.Linear(10,10)

def forward(self, x):
return self.linear(x)

if __name__=="__main__":
if torch.cuda.is_available():
device = "cuda"
else:
device = "cpu"
print(f"Using device {device}")
test_samples = torch.rand([32,10]).to(device)
gt_matrix = torch.eye(10).to(device)
target = torch.matmul(test_samples, gt_matrix)

model = TestNet().to(device)

optimizer = torch.optim.SGD(model.parameters(), lr=1)
criterion = nn.MSELoss()
scheduler = LambdaLR(optimizer, lr_lambda=lambda x: min(x, 24)/24)

for epoch in range(128):
logits = model(test_samples)
loss = criterion(logits, target)
learning_rate = optimizer.param_groups[0]["lr"]

optimizer.zero_grad()
loss.backward()
optimizer.step()
scheduler.step()

print(f"Epoch {epoch+1}/{24}, loss {loss.item()}, lr {learning_rate}")

print("Learned matrix:")
print(model.state_dict()["linear.weight"])
И он работает успешно.
Итак, мне интересно, как на самом деле работает версия pytorch CUDA? Нужен ли предустановленный набор инструментов CUDA или нет? Кроме того, в чем разница между установкой CUDA с помощью conda install cudatoolkit, conda install cuda и даже установкой с помощью графического установщика?

Подробнее здесь: https://stackoverflow.com/questions/781 ... ally-works

Вернуться в «Python»