Faza 00 · lecția 03

Configurarea GPU-ului și serviciile cloud

Scopul lecției: Antrenarea pe CPU este suficientă pentru învățare. Pentru antrenarea în practică, la scară utilă, aveți nevoie de un GPU.

Versiunea curentă AlexBred.com: primele 100 de lecții ale programului în limba română.

Curs
AI Engineering from Scratch
Fază
Configurare și instrumente
Lectură
4 min.
Verificat
Cuprinsul lecției
  1. Obiective de învățare
  2. Problema
  3. Conceptul
  4. Configurare
  5. Opțiunea 1: GPU NVIDIA local
  6. Opțiunea 2: Google Colab
  7. Opțiunea 3: GPU în cloud
  8. Nu aveți GPU? Nicio problemă.
  9. Test de performanță: GPU comparativ cu CPU
  10. Exerciții
  11. Termeni-cheie

Antrenarea pe CPU este suficientă pentru învățare. Pentru antrenarea în practică, la scară utilă, aveți nevoie de un GPU.

Tip: Construire Limbaje: Python Cerințe preliminare: Faza 0, lecția 01 Durată: aproximativ 45 de minute

Obiective de învățare

  • Verificați disponibilitatea unui GPU local folosind nvidia-smi și API-ul CUDA din PyTorch.
  • Configurați Google Colab cu un GPU T4 pentru experimente gratuite în cloud.
  • Evaluați performanța înmulțirii matricelor pe CPU și GPU și măsurați factorul de accelerare.
  • Estimați cel mai mare model care încape în VRAM folosind regula empirică pentru fp16.

Problema

Majoritatea lecțiilor din fazele 1–3 rulează fără probleme pe CPU. Însă, când începeți să antrenați rețele neuronale convoluționale (CNN), arhitecturi Transformer sau modele lingvistice mari (LLM), începând cu faza 4, aveți nevoie de accelerare pe GPU. O sesiune de antrenare care durează 8 ore pe CPU durează 10 minute pe GPU.

Aveți trei opțiuni: un GPU local, un GPU în cloud sau Google Colab (gratuit).

Conceptul

Opțiunile disponibile:

1. GPU NVIDIA local
   Cost: $0 (îl aveți deja)
   Configurare: instalează CUDA + cuDNN
   Recomandat pentru: utilizare regulată, seturi mari de date

2. Google Colab (nivelul gratuit)
   Cost: $0
   Configurare: niciuna
   Recomandat pentru: experimente rapide, când nu aveți un GPU acasă

3. GPU în cloud (Lambda, RunPod, Vast.ai)
   Cost: $0.20-2.00/oră
   Configurare: SSH + instalare
   Recomandat pentru: antrenări serioase, modele mari

Configurare

Opțiunea 1: GPU NVIDIA local

Verificați dacă aveți unul:

nvidia-smi

Instalați PyTorch cu suport CUDA:

import torch

print(f"CUDA available: {torch.cuda.is_available()}")
print(f"CUDA version: {torch.version.cuda}")
if torch.cuda.is_available():
    print(f"GPU: {torch.cuda.get_device_name(0)}")
    print(f"Memory: {torch.cuda.get_device_properties(0).total_memory / 1e9:.1f} GB")

Opțiunea 2: Google Colab

  1. Accesați colab.research.google.com.
  2. Selectați Runtime > Change runtime type > T4 GPU.
  3. Rulați !nvidia-smi pentru verificare.

Încărcați notebook-urile din acest curs direct în Colab.

Opțiunea 3: GPU în cloud

Pentru Lambda Labs, RunPod sau Vast.ai:

ssh user@your-gpu-instance

pip install torch torchvision torchaudio
python -c "import torch; print(torch.cuda.get_device_name(0))"

Nu aveți GPU? Nicio problemă.

Majoritatea lecțiilor funcționează pe CPU. Cele care necesită un GPU vor preciza acest lucru și vor include linkuri către Colab.

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using: {device}")

Test de performanță: GPU comparativ cu CPU

import torch
import time

size = 5000

a_cpu = torch.randn(size, size)
b_cpu = torch.randn(size, size)

start = time.time()
c_cpu = a_cpu @ b_cpu
cpu_time = time.time() - start
print(f"CPU: {cpu_time:.3f}s")

if torch.cuda.is_available():
    a_gpu = a_cpu.to("cuda")
    b_gpu = b_cpu.to("cuda")

    torch.cuda.synchronize()
    start = time.time()
    c_gpu = a_gpu @ b_gpu
    torch.cuda.synchronize()
    gpu_time = time.time() - start
    print(f"GPU: {gpu_time:.3f}s")
    print(f"Speedup: {cpu_time / gpu_time:.0f}x")

Exerciții

  1. Rulați testul de performanță de mai sus și comparați timpii obținuți pe CPU și GPU.
  2. Dacă nu aveți un GPU, rulați-l în Google Colab și comparați rezultatele.
  3. Verificați de câtă memorie GPU dispuneți și estimați cel mai mare model care încape în aceasta (regulă empirică: 2 octeți pentru fiecare parametru în fp16).

Termeni-cheie

Termen Cum i se spune în mod obișnuit Ce înseamnă de fapt
CUDA „Programare pe GPU” Platforma NVIDIA de calcul paralel care vă permite să rulați cod pe GPU
VRAM „Memorie GPU” Memoria video a GPU-ului, separată de memoria RAM a sistemului. Limitează dimensiunea modelului.
fp16 „Precizie pe 16 biți (half precision)” Format în virgulă mobilă pe 16 biți, care folosește jumătate din memoria necesară pentru fp32, cu o pierdere minimă de acuratețe
Tensor Core „Hardware rapid pentru operații matriciale” Nuclee GPU specializate în înmulțirea matricelor, de 4–8 ori mai rapide decât nucleele obișnuite

Sursă: GPU Setup & Cloud — originalul Navigare: înapoi: 00.02 — Git și colaborare · Faza 0 — Configurare și instrumente · Catalog complet · înainte: 00.04 — API-uri și chei.