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ă.
Cuprinsul lecției
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
- Accesați colab.research.google.com.
- Selectați Runtime > Change runtime type > T4 GPU.
- Rulați
!nvidia-smipentru 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
- Rulați testul de performanță de mai sus și comparați timpii obținuți pe CPU și GPU.
- Dacă nu aveți un GPU, rulați-l în Google Colab și comparați rezultatele.
- 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.