Nvidia
O Ollama é compatível com GPUs Nvidia com capacidade de computação 5.0 ou superior e versão de driver 550 ou mais recente. GPUs Nvidia com capacidade de computação de 5.0 a 6.2 exigem a versão de driver 570 ou mais recente.
Verifique a compatibilidade de computação da sua placa para ver se ela é suportada: https://developer.nvidia.com/cuda-gpus
| Capacidade de Computação | Família | Placas |
|---|---|---|
| 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 |
Para compilar localmente com suporte a GPUs mais antigas, consulte desenvolvedor
Seleção de GPU
Se você tem várias GPUs NVIDIA no seu sistema e deseja limitar o Ollama a usar um subconjunto, você pode definir a variável CUDA_VISIBLE_DEVICES com uma lista de GPUs separada por vírgulas. IDs numéricos podem ser usados, no entanto a ordem pode variar, então UUIDs são mais confiáveis. Você pode descobrir o UUID das suas GPUs executando o comando nvidia-smi -L. Se você deseja ignorar as GPUs e forçar o uso da CPU, use um ID de GPU inválido (por exemplo, "-1")
Suspensão e Retomada no Linux
No Linux, após um ciclo de suspensão/retomada, às vezes o Ollama não consegue detectar a sua GPU NVIDIA e recai para a execução na CPU. Você pode contornar esse bug de driver recarregando o driver NVIDIA UVM com o comando sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm
AMD Radeon
O Ollama é compatível com as seguintes GPUs AMD por meio da biblioteca ROCm:
NOTA: Suporte adicional a GPUs AMD é fornecido pela biblioteca Vulkan - consulte abaixo.
Suporte no Linux
O Ollama exige o driver AMD ROCm v7 no Linux. Você pode instalar ou atualizar usando o utilitário amdgpu-install a partir da documentação do ROCm da AMD.
| Família | Placas e aceleradores |
|---|---|
| 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 |
Suporte no Windows
O Ollama exige uma pilha de drivers compatível com AMD ROCm v7 / HIP7 no Windows.
| Família | Placas e aceleradores |
|---|---|
| AMD Radeon RX | 7900 XTX 7900 XT 7900 GRE 7800 XT 7700 XT 7600 XT 7600 |
| AMD Radeon PRO | W7900 W7800 W7700 W7600 W7500 |
Sobrescrições no Linux
O Ollama utiliza a biblioteca AMD ROCm, que não é compatível com todas as GPUs AMD. Em alguns casos, você pode forçar o sistema a tentar usar um alvo LLVM semelhante que seja próximo. Por exemplo, a Radeon RX 5400 usa o alvo gfx1034 (também conhecido como 10.3.4), no entanto o ROCm não é compatível com esse alvo atualmente. O suporte mais próximo é o gfx1030. Você pode usar a variável de ambiente HSA_OVERRIDE_GFX_VERSION com a sintaxe x.y.z. Por exemplo, para forçar o sistema a executar na RX 5400, você deve definir HSA_OVERRIDE_GFX_VERSION="10.3.0" como uma variável de ambiente para o servidor. Se você tem uma GPU AMD não suportada, você pode testar usando a lista de tipos suportados abaixo.
Se você tem várias GPUs com versões GFX diferentes, adicione o índice numérico do dispositivo ao final da variável de ambiente para defini-las individualmente. Por exemplo, HSA_OVERRIDE_GFX_VERSION_0=10.3.0 e HSA_OVERRIDE_GFX_VERSION_1=11.0.0
No momento, os tipos de GPU suportados conhecidos no Linux são os seguintes Alvos LLVM. Esta tabela mostra alguns exemplos de GPUs que correspondem a esses alvos LLVM:
| Alvo LLVM | Exemplo de GPU |
|---|---|
| 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 |
Entre em contato pelo Discord ou abra uma issue para obter ajuda adicional.
Seleção de GPU
Se você tem várias GPUs AMD no seu sistema e deseja limitar o Ollama a usar um subconjunto, você pode definir a variável ROCR_VISIBLE_DEVICES com uma lista de GPUs separada por vírgulas. Você pode ver a lista de dispositivos executando o comando rocminfo. Se você deseja ignorar as GPUs e forçar o uso da CPU, use um ID de GPU inválido (por exemplo, "-1"). Quando disponível, use o Uuid para identificar o dispositivo de forma exclusiva em vez de um valor numérico.
Permissão de Contêiner
Em algumas distribuições Linux, o SELinux pode impedir que contêineres acessem os dispositivos de GPU AMD. No sistema host, você pode executar o comando sudo setsebool container_use_devices=1 para permitir que contêineres usem dispositivos.
Metal (GPUs da Apple)
O Ollama é compatível com aceleração de GPU em dispositivos Apple por meio da API Metal.
Suporte a GPUs Vulkan
Suporte adicional a GPUs no Windows e no Linux é fornecido por meio do Vulkan. O Vulkan é habilitado por padrão quando o backend está instalado. No Windows, a maioria dos drivers de fornecedores de GPU vem com suporte a Vulkan embutido e não exige etapas de configuração adicionais. A maioria das distribuições Linux exige a instalação de componentes adicionais, e você pode ter várias opções de drivers Vulkan entre pacotes do Mesa e pacotes específicos de fornecedores de GPU
- Instruções para GPUs Intel no Linux - https://dgpu-docs.intel.com/driver/client/overview.html
- Instruções para GPUs AMD no Linux - https://amdgpu-install.readthedocs.io/en/latest/install-script.html#specifying-a-vulkan-implementation
Para GPUs AMD em algumas distribuições Linux, você pode precisar adicionar o usuário ollama ao grupo render.
O agendador do Ollama utiliza os dados de VRAM disponíveis informados pelas bibliotecas de GPU para tomar decisões de agendamento ideais. O Vulkan exige capacidades adicionais ou execução como root para expor esses dados de VRAM disponíveis. Se nem o acesso root nem essa capacidade forem concedidos, o Ollama usará tamanhos aproximados dos modelos para tomar decisões de agendamento com o melhor esforço possível.
bash
sudo setcap cap_perfmon+ep /usr/local/bin/ollamaSeleção de GPU
Para selecionar GPU(s) Vulkan específicas, você pode definir a variável de ambiente GGML_VK_VISIBLE_DEVICES com um ou mais IDs numéricos no servidor Ollama, conforme descrito no FAQ. Se você encontrar algum problema com GPUs baseadas em Vulkan, você pode desativar todas as GPUs Vulkan definindo OLLAMA_VULKAN=0 ou GGML_VK_VISIBLE_DEVICES=-1.
Em sistemas com iGPU/dGPU mistos onde a iGPU Vulkan é instável, mantenha o Vulkan habilitado e defina GGML_VK_VISIBLE_DEVICES para o índice da GPU discreta. Por exemplo, use GGML_VK_VISIBLE_DEVICES=1 quando Vulkan1 for a GPU discreta.