Nvidia
Ollama supporta le GPU Nvidia con capacità di calcolo 5.0+ e versione del driver 550 o successive. Le GPU Nvidia con capacità di calcolo da 5.0 a 6.2 richiedono la versione del driver 570 o successive.
Controlla la compatibilità di calcolo per verificare se la tua scheda è supportata: https://developer.nvidia.com/cuda-gpus
| Capacità di calcolo | Famiglia | Schede |
|---|---|---|
| 12.1 | NVIDIA | GB10 (DGX Spark) |
| 12.0 | GeForce RTX 50xx | RTX 5060 RTX 5060 Ti RTX 5070 RTX 5070 Ti RTX 5080 RTX 5090 |
| NVIDIA Professional | RTX PRO 4000 Blackwell RTX PRO 4500 Blackwell RTX PRO 5000 Blackwell RTX PRO 6000 Blackwell | |
| 9.0 | NVIDIA | H200 H100 |
| 8.9 | GeForce RTX 40xx | RTX 4090 RTX 4080 SUPER RTX 4080 RTX 4070 Ti SUPER RTX 4070 Ti RTX 4070 SUPER RTX 4070 RTX 4060 Ti RTX 4060 |
| NVIDIA Professional | L4 L40 RTX 6000 | |
| 8.6 | GeForce RTX 30xx | RTX 3090 Ti RTX 3090 RTX 3080 Ti RTX 3080 RTX 3070 Ti RTX 3070 RTX 3060 Ti RTX 3060 RTX 3050 Ti RTX 3050 |
| NVIDIA Professional | A40 RTX A6000 RTX A5000 RTX A4000 RTX A3000 RTX A2000 A10 A16 A2 | |
| 8.0 | NVIDIA | A100 A30 |
| 7.5 | GeForce GTX/RTX | GTX 1650 Ti TITAN RTX RTX 2080 Ti RTX 2080 RTX 2070 RTX 2060 |
| NVIDIA Professional | T4 RTX 5000 RTX 4000 RTX 3000 T2000 T1200 T1000 T600 T500 | |
| Quadro | RTX 8000 RTX 6000 RTX 5000 RTX 4000 | |
| 7.0 | NVIDIA | TITAN V V100 Quadro GV100 |
| 6.1 | NVIDIA TITAN | TITAN Xp TITAN X |
| GeForce GTX | GTX 1080 Ti GTX 1080 GTX 1070 Ti GTX 1070 GTX 1060 GTX 1050 Ti GTX 1050 | |
| Quadro | P6000 P5200 P4200 P3200 P5000 P4000 P3000 P2200 P2000 P1000 P620 P600 P500 P520 | |
| Tesla | P40 P4 | |
| 6.0 | NVIDIA | Tesla P100 Quadro GP100 |
| 5.2 | GeForce GTX | GTX TITAN X GTX 980 Ti GTX 980 GTX 970 GTX 960 GTX 950 |
| Quadro | M6000 24GB M6000 M5000 M5500M M4000 M2200 M2000 M620 | |
| Tesla | M60 M40 | |
| 5.0 | GeForce GTX | GTX 750 Ti GTX 750 NVS 810 |
| Quadro | K2200 K1200 K620 M1200 M520 M5000M M4000M M3000M M2000M M1000M K620M M600M M500M |
Per compilare localmente per supportare GPU più vecchie, consulta sviluppatore
Selezione GPU
Se hai più GPU NVIDIA nel sistema e vuoi limitare Ollama all'uso di un sottoinsieme, puoi impostare CUDA_VISIBLE_DEVICES su un elenco di GPU separato da virgole. È possibile utilizzare ID numerici, tuttavia l'ordine può variare, quindi gli UUID sono più affidabili. Puoi scoprire l'UUID delle tue GPU eseguendo nvidia-smi -L. Se vuoi ignorare le GPU e forzare l'uso della CPU, utilizza un ID GPU non valido (ad esempio "-1")
Sospensione e ripresa su Linux
Su Linux, dopo un ciclo di sospensione/ripresa, a volte Ollama non riesce a rilevare la tua GPU NVIDIA e passa all'esecuzione sulla CPU. Puoi aggirare questo bug del driver ricaricando il driver NVIDIA UVM con sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm
AMD Radeon
Ollama supporta le seguenti GPU AMD tramite la libreria ROCm:
NOTA: Il supporto aggiuntivo per le GPU AMD è fornito dalla libreria Vulkan - consulta la sezione seguente.
Supporto su Linux
Ollama richiede il driver AMD ROCm v7 su Linux. Puoi installarlo o aggiornarlo utilizzando l'utility amdgpu-install dalla documentazione ROCm di AMD.
| Famiglia | Schede e acceleratori |
|---|---|
| AMD Radeon RX | 9070 XT 9070 GRE 9070 9060 XT 9060 XT LP 9060 7900 XTX 7900 XT 7900 GRE 7800 XT 7700 XT 7700 7600 XT 7600 6950 XT 6900 XTX 6900XT 6800 XT 6800 |
| AMD Radeon AI PRO | R9700 R9600D |
| AMD Radeon PRO | W7900 W7800 W7700 W7600 W7500 W6900X W6800X Duo W6800X W6800 V620 |
| AMD Ryzen AI | Ryzen AI Max+ 395 Ryzen AI Max 390 Ryzen AI Max 385 Ryzen AI 9 HX 475 Ryzen AI 9 HX 470 Ryzen AI 9 465 Ryzen AI 9 HX 375 Ryzen AI 9 HX 370 Ryzen AI 9 365 |
| AMD Instinct | MI350X MI300X MI300A MI250X MI250 MI210 MI100 |
Supporto su Windows
Ollama richiede uno stack di driver compatibile con AMD ROCm v7 / HIP7 su Windows.
| Famiglia | Schede e acceleratori |
|---|---|
| AMD Radeon RX | 7900 XTX 7900 XT 7900 GRE 7800 XT 7700 XT 7600 XT 7600 |
| AMD Radeon PRO | W7900 W7800 W7700 W7600 W7500 |
Override su Linux
Ollama sfrutta la libreria AMD ROCm, che non supporta tutte le GPU AMD. In alcuni casi puoi forzare il sistema a provare a utilizzare un target LLVM simile e compatibile. Ad esempio, la Radeon RX 5400 ha come target gfx1034 (noto anche come 10.3.4), tuttavia ROCm non supporta attualmente questo target. Il supporto più vicino è gfx1030. Puoi utilizzare la variabile d'ambiente HSA_OVERRIDE_GFX_VERSION con la sintassi x.y.z. Quindi, ad esempio, per forzare il sistema a eseguire sulla RX 5400, imposta HSA_OVERRIDE_GFX_VERSION="10.3.0" come variabile d'ambiente per il server. Se hai una GPU AMD non supportata, puoi fare esperimenti utilizzando l'elenco di tipi supportati di seguito.
Se hai più GPU con versioni GFX diverse, aggiungi il numero numerico del dispositivo alla variabile d'ambiente per impostarle singolarmente. Ad esempio, HSA_OVERRIDE_GFX_VERSION_0=10.3.0 e HSA_OVERRIDE_GFX_VERSION_1=11.0.0
Al momento, i tipi di GPU supportati noti su Linux sono i seguenti target LLVM. Questa tabella mostra alcuni esempi di GPU che corrispondono a questi target LLVM:
| Target LLVM | Una GPU di esempio |
|---|---|
| gfx908 | Radeon Instinct MI100 |
| gfx90a | Radeon Instinct MI210/MI250 |
| gfx942 | Radeon Instinct MI300X/MI300A |
| gfx950 | Radeon Instinct MI350X |
| gfx1030 | Radeon PRO V620 |
| gfx1100 | Radeon PRO W7900 |
| gfx1101 | Radeon PRO W7700 |
| gfx1102 | Radeon RX 7600 |
| gfx1150 | Ryzen AI 9 HX 375 |
| gfx1151 | Ryzen AI Max+ 395 |
| gfx1200 | Radeon RX 9070 |
| gfx1201 | Radeon RX 9070 XT |
Contatta il supporto su Discord o apri una segnalazione per ulteriore assistenza.
Selezione GPU
Se hai più GPU AMD nel sistema e vuoi limitare Ollama all'uso di un sottoinsieme, puoi impostare ROCR_VISIBLE_DEVICES su un elenco di GPU separato da virgole. Puoi visualizzare l'elenco dei dispositivi con rocminfo. Se vuoi ignorare le GPU e forzare l'uso della CPU, utilizza un ID GPU non valido (ad esempio "-1"). Quando disponibile, utilizza Uuid per identificare univocamente il dispositivo invece del valore numerico.
Permessi dei container
In alcune distribuzioni Linux, SELinux può impedire ai container di accedere ai dispositivi GPU AMD. Sul sistema host puoi eseguire sudo setsebool container_use_devices=1 per consentire ai container di utilizzare i dispositivi.
Metal (GPU Apple)
Ollama supporta l'accelerazione GPU sui dispositivi Apple tramite l'API Metal.
Supporto GPU Vulkan
Il supporto aggiuntivo per GPU su Windows e Linux è fornito tramite Vulkan. Vulkan è abilitato per impostazione predefinita quando il backend è installato. Su Windows, la maggior parte dei driver dei produttori di GPU include il supporto Vulkan e non richiede passaggi di configurazione aggiuntivi. La maggior parte delle distribuzioni Linux richiede l'installazione di componenti aggiuntivi e potresti avere più opzioni per i driver Vulkan tra Mesa e i pacchetti specifici del produttore di GPU
- Istruzioni per GPU Intel su Linux - https://dgpu-docs.intel.com/driver/client/overview.html
- Istruzioni per GPU AMD su Linux - https://amdgpu-install.readthedocs.io/en/latest/install-script.html#specifying-a-vulkan-implementation
Per le GPU AMD su alcune distribuzioni Linux, potrebbe essere necessario aggiungere l'utente ollama al gruppo render.
Lo scheduler di Ollama sfrutta i dati di VRAM disponibili riportati dalle librerie GPU per prendere decisioni di scheduling ottimali. Vulkan richiede capacità aggiuntive o l'esecuzione come root per esporre questi dati di VRAM disponibili. Se non viene concesso né l'accesso root né questa capacità, Ollama utilizzerà le dimensioni approssimative dei modelli per prendere decisioni di scheduling del miglior livello possibile.
bash
sudo setcap cap_perfmon+ep /usr/local/bin/ollamaSelezione GPU
Per selezionare GPU Vulkan specifiche, puoi impostare la variabile d'ambiente GGML_VK_VISIBLE_DEVICES su uno o più ID numerici sul server Ollama come descritto nelle FAQ. Se riscontri problemi con le GPU basate su Vulkan, puoi disabilitare tutte le GPU Vulkan impostando OLLAMA_VULKAN=0 o GGML_VK_VISIBLE_DEVICES=-1.
Su sistemi misti iGPU/dGPU in cui la iGPU Vulkan è instabile, mantieni Vulkan abilitato e imposta GGML_VK_VISIBLE_DEVICES sull'indice della GPU discreta. Ad esempio, utilizza GGML_VK_VISIBLE_DEVICES=1 quando Vulkan1 è la GPU discreta.