CodeBlanks Logo Icon CodeBlanks

GPU desteği

PyTorch, tensor'ları GPU'ya taşıyarak hızlı hesaplama sağlar.

GPU desteği

Derin öğrenmenin hızı, matris çarpımlarının GPU'da paralel yapılmasından gelir. PyTorch'ta bir tensör ya da model .to(cihaz) ile GPU'ya taşınır. Kod, GPU yoksa CPU'ya düşecek biçimde yazılır:

cihaz = "cuda" if torch.cuda.is_available() else "cpu"
x = torch.randn(1000, 1000).to(cihaz)
model = model.to(cihaz)
y = model(x)          # hesap seçilen cihazda

Apple çiplerinde "mps" cihazı kullanılır: torch.backends.mps.is_available().

Cihaz kalıpları

Eğitim döngüsünde her toplu veri modele verilmeden önce aynı cihaza taşınır. Sonuçları NumPy'a çevirmek için önce CPU'ya dönmek gerekir:

for xb, yb in yukleyici:
    xb, yb = xb.to(cihaz), yb.to(cihaz)
    cikti = model(xb)
tahmin = cikti.argmax(dim=1).cpu().numpy()   # GPU -> CPU -> NumPy

GPU ile CPU arasındaki kopyalama yavaştır; döngü içinde gereksiz .cpu() çağrılarından kaçınılır.

Uygulama Cihazdan bağımsız kod

Cihazı "cuda" if torch.cuda.is_available() else "cpu" ile seç. x = torch.ones(2, 3)'ü cihaza taşı, 3 ile çarp ve sonucu .cpu() ile geri alıp tolist() ile yazdır. Ardından sonucun device.type değerinin "cpu" olduğunu yazdır.

Başlangıç kodu

model.py
import torch

# buraya yaz

Örnek çözüm

model.py
import torch

cihaz = "cuda" if torch.cuda.is_available() else "cpu"
x = torch.ones(2, 3).to(cihaz)
sonuc = (x * 3).cpu()
print(sonuc.tolist())
print(sonuc.device.type == "cpu")

Beklenen çıktı

[[3.0, 3.0, 3.0], [3.0, 3.0, 3.0]]
True

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Biri CPU'da biri GPU'da olan iki tensörü toplarsan ne olur?

  • Otomatik taşınır
  • Sonuç CPU'da olur
  • Sorunsuz çalışır
  • Hata verir; ikisi aynı cihazda olmalı Doğru cevap

Açıklama: İşlemdeki tüm tensörler ve model aynı cihazda bulunmalıdır.

2 Tensörü seçilen cihaza taşı.

Soru
x = x.____(cihaz)
Cevap
x = x.to(cihaz)

Açıklama: .to() hem cihaz hem tür değiştirebilir.

3 İfadeleri eşleştir.

Kavram Anlamı
torch.cuda.is_available() GPU var mı?
.to(cihaz) Cihaza taşı
.cpu() CPU'ya dön
"mps" Apple GPU'su

İleri seviye bölümündeki tüm dersler