TL;DR;
O ollama-cuda no CachyOS vem (neste momento) com suporte apenas para compute >= 7.5.
Se você tem GPUs mais antigas, com compute anterior, você TEM QUE fazer uma de 2 coisas:
- Compilar o
ollama-cudaa partir do código-fonte, com suporte aos targets de compute mais antigos - Instalar o
ollama-vulkan
Eu escolhi o ollama-vulkan e está funcionando perfeitamente!
Hora da história
Hoje tive a inspiração de finalmente desligar minha VM com Windows 11 e migrá-la para o Linux.
Os requisitos eram conseguir rodar:
- Ollama - para a mágica dos modelos locais
- Docker - para desenvolvimento remoto
- Steam - para jogar
- Jellyfin - para o arquivo de vídeos caseiros
Agora vou focar apenas no Ollama, porque foi uma experiência interessante e me fez pensar por que as coisas não são mais óbvias.
A máquina tem 2 GPUs:
- GTX 1070 - 8GB
- GTX 970 - 4GB
Eu queria rodar o Ollama nelas, para brincar com modelos locais e ver como poderia integrá-los em alguns projetos. Por exemplo: anonimizar dados localmente, fazer uma implementação não destrutiva do OpenClaw que sirva para os meus casos de uso, OCR local para documentos que escaneio com o celular, automatizar algumas coisas do gerenciamento cotidiano de uma casa.
Então, naturalmente, instalei o ollama e o ollama-cuda, já que tenho 2 GPUs Nvidia aqui, esperando que funcionasse sem problemas, já que estava funcionando no Windows poucos minutos antes.
Iniciei o Ollama, carreguei o qwen3:8b para um experimento rápido e… estava rodando na CPU 🤔
As GPUs eram perfeitamente capazes de manter o modelo na VRAM, mas por algum motivo o Ollama escolhia rodá-lo na CPU.
Depois de tentar descobrir o motivo pelos logs, pedi ajuda ao Claude, que chegou a uma conclusão bem desanimadora:
The logs tell the story clearly. Both your GPUs are detected but then filtered out because they fail CUDA initialization:
"filtering device which didn't fully initialize" id=GPU-eb132a13-b9f4-40e3-d85d-60f211dfd21e ... library=CUDA
"filtering device which didn't fully initialize" id=GPU-550263c8-37e2-2a25-c0b6-10cc7511ed20 ... library=CUDA
The reason is the CUDA library bundled with Ollama 0.17.4 was compiled for these architectures only:
CUDA.0.ARCHS=750,800,860,870,880,890,900,1000,1030,1100,1200,1210
The minimum supported compute capability is 7.5 (Turing / RTX 20xx series). Your GPUs are older than that:
┌──────────┬────────────────────┬──────────────┐
│ GPU │ Compute Capability │ Architecture │
├──────────┼────────────────────┼──────────────┤
│ GTX 1070 │ 6.1 │ Pascal │
├──────────┼────────────────────┼──────────────┤
│ GTX 970 │ 5.2 │ Maxwell │
└──────────┴────────────────────┴──────────────┘
Neither is in the supported list, so CUDA initialization fails for both, and Ollama falls back to CPU-only inference.
Your options:
1. Downgrade Ollama to an older version that still included Pascal/Maxwell support (pre-0.6.x era had broader arch coverage, but check release notes for specifics).
2. Build Ollama from source with CUDA_ARCHITECTURES="52;61;75;80;86" to include your GPU architectures.
3. Upgrade GPUs to at least an RTX 2060 or newer (compute 7.5+).Isso foi meio decepcionante para mim, porque quero usar as GPUs o máximo possível antes de partir para uma nova.
Eu não queria realmente recompilar o Ollama a partir do código-fonte, já que ele deveria funcionar de cara, e fiquei muito confuso sobre por que não funcionava, sendo que na instalação do Windows ele suportava essas arquiteturas.
Essas placas também apareciam como suportadas no site do Ollama!
Para resumir uma longa história de pesquisas no Google:
Acontece que o ollama-cuda vem apenas com os requisitos listados acima… e a sugestão foi instalar o ollama-vulkan.
Depois de fazer isso, tudo passou a funcionar muito bem!