Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo

Aprenda a configurar o Ollama para reconhecer e utilizar placas de vídeo AMD da família Navi 10 (como RX 5700 XT e RX 5600) no Gentoo Linux com systemd, para resolver problemas de lentidão e alto uso de CPU em Inteligência Artificial local.

[ Hits: 63 ]

Por: Xerxes em 26/02/2026


Introdução



Rodar Inteligência Artificial localmente com o Ollama tornou-se popular. No entanto, o ecossistema de IA foi historicamente construído ao redor da NVIDIA (arquitetura CUDA). Quem possui placas de vídeo da AMD precisa utilizar o ROCm (Radeon Open Compute), que é a resposta da AMD ao CUDA.

O grande problema é que o suporte oficial do ROCm no Linux foca em placas voltadas para servidores ou nas gerações mais recentes. Se você possui uma placa da arquitetura RDNA 1 (Família Navi 10) — que inclui guerreiras como a Radeon RX 5700 XT, RX 5700 e RX 5600 XT —, o Ollama frequentemente falha ao tentar detectar a sua GPU.

Os sintomas são clássicos:
  1. Você envia um prompt e a resposta demora uma eternidade (muitas vezes causando timeout em scripts que esperam a resposta em até 60 segundos).
  2. O uso da sua memória RAM vai às alturas (um modelo de 7 bilhões de parâmetros, como o Qwen 2.5 ou Llama 3, pode engolir mais de 8 GB da sua RAM física).
  3. O uso do seu processador (CPU) crava em 100%.

Isso acontece porque o Ollama tenta descobrir a GPU, sofre um timeout na comunicação com o driver e, silenciosamente, desiste, jogando todo o cálculo matemático brutal para as costas do seu processador.

Neste artigo, veremos como forçar o Ollama a reconhecer a sua Navi 10 em um ambiente Gentoo Linux com systemd, acabando com a lentidão de uma vez por todas.

Passo 1: Permissões de Acesso ao Hardware

O Ollama cria seu próprio usuário no sistema (geralmente chamado ollama), e esse usuário precisa fazer parte dos grupos que controlam a placa de vídeo.

Abra seu terminal e execute o comando abaixo para adicionar o usuário ollama aos grupos video e render:

sudo usermod -aG video,render ollama

Se o usuário do serviço não estiver no grupo render, a biblioteca ROCm será bloqueada pelo kernel ao tentar enviar instruções para a GPU, resultando na falha silenciosa de detecção.

Passo 2: Garantindo as Bibliotecas Matemáticas (rocBLAS)

Para que a placa de vídeo saiba como calcular as matrizes complexas das redes neurais, ela precisa de bibliotecas específicas. No Gentoo, você deve compilar o suporte matemático do ROCm.

Verifique se você possui os pacotes básicos instalados. O principal deles é o rocBLAS:

sudo emerge -av sci-libs/rocBLAS sci-libs/rocSOLVER

Nota para usuários de outras distros: No Ubuntu/Debian, isso geralmente é resolvido instalando o pacote rocm-hip-libraries ou os drivers proprietários amdgpu-pro.

Passo 3: Configurando o Systemd Override

O Ollama é gerenciado pelo systemd. Se você alterar o arquivo original do serviço, suas configurações serão apagadas na próxima atualização do pacote. O jeito certo é criar um arquivo de override (sobreposição).

Execute o comando para editar o serviço:

sudo systemctl edit ollama

Isso abrirá um editor de texto no terminal. Insira exatamente o bloco abaixo:

[Service]
# Permite que interfaces web em contêineres Docker (como o Open WebUI) acessem a API
Environment="OLLAMA_HOST=0.0.0.0"

# O coração da dica: Força o reconhecimento da placa Navi 10
Environment="HSA_OVERRIDE_GFX_VERSION=10.1.0"

# Diz ao sistema onde encontrar as bibliotecas do ROCm no Gentoo
Environment="LD_LIBRARY_PATH=/usr/lib64:/usr/lib64/rocm"

Dissecando as variáveis (Para você entender o que está fazendo):

  • OLLAMA_HOST=0.0.0.0: Por padrão, o Ollama só escuta a própria máquina (localhost / 127.0.0.1). Se você usa interfaces gráficas como o Open WebUI via Docker, o contêiner tem uma rede isolada e não conseguirá falar com o Ollama. Essa linha abre as portas para a rede local.
  • HSA_OVERRIDE_GFX_VERSION=10.1.0: Esta é a variável mais importante. Ela "engana" a biblioteca ROCm. A arquitetura Navi 10 (RDNA 1) muitas vezes não está na "lista VIP" das versões habilitadas por padrão. Definindo como 10.1.0, nós forçamos o driver a compilar e executar o código para esta GPU, pois o silício dela é perfeitamente capaz de lidar com a tarefa.
  • LD_LIBRARY_PATH: No Gentoo, as bibliotecas do ROCm costumam ficar em /usr/lib64/rocm. Se não dissermos isso explicitamente, o Ollama pode se perder procurando no diretório /opt/ (padrão de outras distros) e desistir da GPU por não encontrar os arquivos.

Passo 4: Reiniciando

Salve o arquivo e feche o editor. Agora, precisamos reiniciar o serviço do Ollama para que ele leia as novas variáveis de ambiente.

sudo systemctl restart ollama

Vamos olhar os logs do serviço em tempo real para ver se ele encontrou a sua placa de vídeo. Execute:

sudo journalctl -u ollama -f

(O parâmetro -f faz o log rolar a tela em tempo real).

O que você deve procurar:

Se a configuração funcionou, nas últimas linhas do log você verá uma mensagem muito parecida com esta:

msg="inference compute" id=0 filter_id=0 library=ROCm compute=gfx1010 name=ROCm0 description="AMD Radeon Graphics" ... total="8.0 GiB" available="6.6 GiB"

Tradução do log: O Ollama identificou a biblioteca ROCm, reconheceu o chip como gfx1010 (graças ao override) e encontrou os 8.0 GiB de VRAM.

Se você vir id=cpu no lugar disso, algo deu errado no caminho das bibliotecas ou nas permissões do Passo 1.

Passo 5: O Impacto em Scripts e APIs

Se você tem o costume de usar scripts em Bash para interagir com o Ollama via terminal (usando comandos como curl para a API), você provavelmente já lidou com limites de tempo (timeout).

Quando o Ollama roda pela CPU, carregar um modelo na RAM e processar a resposta pode levar mais de um minuto. Com a GPU ativada, esse tempo despenca dramaticamente. Um script que antes falhava por exceder 60 segundos agora retornará a resposta quase instantaneamente, pois o processamento massivo paralelo da sua placa de vídeo assumiu as rédeas.

Sua CPU agradecerá, seu sistema ficará responsivo durante as conversas com a IA, e sua memória RAM ficará livre para o que realmente importa.

Conclusão

Sei que o artigo é muito específico (meu caso), mas resolvi deixar o registro. As informações foram obtidas com ajuda da IA Gemini. De certa forma este artigo é complemento de dois outros:
   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Xubuntu Retrô (ao estilo Space Invaders)

Curiosidade sobre DOOM Guy e Isabelle de Animal Crossing

LAMP no Funtoo Linux em 15 minutos

Porque o XFCE é tão bom

Conkyzando e atalhando o Lubuntu 12.10

Leitura recomendada

Como instalar o Open WebUI para Ollama no Gentoo (com systemd)

Inteligência Artificial Local no Linux

Inteligência Artificial Local no Linux

Como instalar o Open WebUI para Ollama no Gentoo (com systemd)

ownCloud - Em poder de suas mãos (Private Cloud)

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts