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: 92 ]

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

Estratégia para Shadow Era (Supernova Boring)

Mamãe, quero Slack! (parte 1)

Gentoo: detectando impressoras de rede e como fixar uma impressora por IP

MUGPIS 14.1

Afrescalhando o Slackware

Leitura recomendada

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

Inteligência Artificial Local no Linux

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

Inteligência Artificial Local no Linux

Limitando acesso ao Team Viewer com Squid e IPTables

  
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