Ce face Alocarea pe GPU și împărțirea CPU/GPU
Ollama folosește GPU-ul prin CUDA (NVIDIA, compute capability 5.0+ și driver 550+), ROCm (AMD), Metal (Apple) și Vulkan (suport suplimentar pe Windows și Linux). Unde s-a încărcat un model vezi în coloana PROCESSOR din ollama ps: 100% GPU, 100% CPU sau o împărțire ca 48%/52% CPU/GPU. Pentru performanță, documentația recomandă evitarea descărcării pe CPU.
Cu mai multe GPU-uri, dacă modelul încape integral pe unul, Ollama îl încarcă pe acela, ca să reducă transferurile pe magistrala PCI. Altfel îl împarte pe toate GPU-urile disponibile; OLLAMA_SCHED_SPREAD forțează mereu distribuirea. Ce GPU-uri sunt folosite alegi cu CUDA_VISIBLE_DEVICES, ROCR_VISIBLE_DEVICES sau GGML_VK_VISIBLE_DEVICES.
Memoria ocupată crește cu lungimea contextului și cu numărul de cereri paralele. Ca să încapă mai mult pe GPU poți reduce num_ctx, poți cuantiza cache-ul K/V (OLLAMA_KV_CACHE_TYPE=q8_0 folosește aproximativ jumătate din memoria f16, cu Flash Attention activ) sau poți alege un model mai mic. În sesiune, /set parameter num_gpu stabilește numărul de straturi trimise pe GPU.
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
CUDA_VISIBLE_DEVICES |
GPU-urile NVIDIA folosite; UUID-urile (din nvidia-smi -L) sunt mai sigure decât ID-urile numerice. Un ID invalid (-1) forțează CPU. |
ROCR_VISIBLE_DEVICES |
GPU-urile AMD folosite. |
GGML_VK_VISIBLE_DEVICES |
GPU-urile Vulkan; -1 sau OLLAMA_VULKAN=0 dezactivează Vulkan. |
OLLAMA_SCHED_SPREAD |
Distribuie mereu modelul pe toate GPU-urile. |
OLLAMA_GPU_OVERHEAD |
Rezervă VRAM per GPU (bytes). |
OLLAMA_FLASH_ATTENTION / OLLAMA_KV_CACHE_TYPE |
Flash Attention și cuantizarea cache-ului K/V (f16, q8_0, q4_0). |
num_gpu |
Numărul de straturi trimise pe GPU (/set parameter num_gpu). |
Exemple practice
Exemplul 1: Verificarea împărțirii
Ieșirea de exemplu din FAQ.
ollama ps
Rezultat
NAME ID SIZE PROCESSOR UNTIL
llama3:70b bcfb190ca3a7 42 GB 100% GPU 4 minutes from now
Exemplul 2: Forțarea rulării pe CPU (NVIDIA)
CUDA_VISIBLE_DEVICES=-1 ollama serve
Exemplul 3: Cache K/V cuantizat
OLLAMA_FLASH_ATTENTION=1 OLLAMA_KV_CACHE_TYPE=q8_0 ollama serve
Greșeli frecvente și bune practici
- Mărești contextul și nu observi că modelul a trecut parțial pe CPU. Verifică
PROCESSORdupă fiecare schimbare. - Folosești ID-uri numerice pentru GPU-uri NVIDIA. Ordinea poate varia; UUID-urile sunt mai sigure.
- Pe Linux, după suspendare, Ollama poate să nu mai găsească GPU-ul NVIDIA și să ruleze pe CPU. Documentația recomandă reîncărcarea driverului:
sudo rmmod nvidia_uvmurmat desudo modprobe nvidia_uvm.