Ejecutar LLMs en AMD RX 7800 XT (Guía ROCm)
Guía proporcionada por Ian Wirtz
Recomendado: LM Studio (
lms) tiende a dar los mejores resultados, pero Ollama es una alternativa viable.
Requisitos previos
Paso 1 - Instalar rocm-hip-runtime
Antes de que LM Studio u Ollama puedan usar tu GPU mediante ROCm, el sistema necesita las bibliotecas HIP de espacio de usuario para comunicarse con el controlador del kernel.
Arch Linux / CachyOS:
sudo pacman -S rocm-hip-runtime
Ubuntu / Debian:
sudo apt install rocm-hip-runtime
Fedora:
sudo dnf install rocm-hip-runtime
Permisos de acceso a GPU: Tu usuario debe pertenecer a los grupos
renderyvideo. Compruébalo con:groupsSi falta alguno de los grupos, agrégalo:
sudo usermod -aG video,render $USERDebes cerrar sesión completamente y volver a iniciarla (o reiniciar) para que el cambio de grupo surta efecto.
Paso 2 - Instalar rocm-smi (puede ser opcional)
En distribuciones de actualización rápida como Arch, las herramientas de administración no siempre se incluyen como dependencia estricta de rocm-hip-runtime. Instálalas explícitamente para evitar incompatibilidades de versiones de bibliotecas.
Arch Linux / CachyOS:
sudo pacman -S rocm-smi-lib
Ubuntu / Debian:
Debian divide la herramienta de línea de comandos y su biblioteca de tiempo de ejecución en paquetes separados.
# Herramienta de monitoreo en línea de comandos
sudo apt update && sudo apt install rocm-smi
# Bibliotecas de tiempo de ejecución
sudo apt update && sudo apt install librocm-smi64-1
Consejo: Si el nombre exacto del paquete es incierto, escribe
sudo apt install librocm-smi64y presiona Tab para autocompletar el sufijo de versión actual.
Fedora:
# Herramienta CLI
sudo dnf install rocm-smi
# Bibliotecas de desarrollo C/C++ y cabeceras (equivalente a rocm-smi-lib en Arch)
sudo dnf install rocm-smi-devel
Ejecutar un modelo
Paso 3 - Cargar un modelo con aceleración ROCm
Al invocar lms load, pasa los indicadores de aceleración de hardware explícitamente. El indicador --gpu max le indica al tiempo de ejecución que cargue el modelo completo en la VRAM.
HSA_OVERRIDE_GFX_VERSION=11.0.0 lms load tulu-3.1-8b-supernova --context-length 8192 --gpu max
El prefijo HSA_OVERRIDE_GFX_VERSION=11.0.0 le indica a la pila ROCm que trate la RX 7800 XT como un objetivo de cómputo compatible de forma nativa, evitando fallos de reserva silenciosa.
Paso 4 - Hacer la configuración permanente
Para evitar prefijar cada comando con la variable de entorno, agrégala a tu perfil de shell.
Bash:
echo 'export HSA_OVERRIDE_GFX_VERSION=11.0.0' >> ~/.bashrc
source ~/.bashrc
Fish (predeterminado de CachyOS) - Opción A: Variable Universal (recomendado)
Configúrala una vez; Fish la persiste automáticamente entre reinicios sin ninguna configuración adicional:
set -Ux HSA_OVERRIDE_GFX_VERSION 11.0.0
Fish - Opción B: Entrada explícita en el archivo de configuración
echo 'set -gx HSA_OVERRIDE_GFX_VERSION 11.0.0' >> ~/.config/fish/config.fish
source ~/.config/fish/config.fish
Ollama (servicio systemd):
Dado que Ollama se ejecuta bajo su propio usuario del sistema ollama, la variable debe inyectarse mediante un archivo de anulación de systemd:
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo nano /etc/systemd/system/ollama.service.d/override.conf
Pega lo siguiente, luego guarda y sal (Ctrl+O, Enter, Ctrl+X):
[Service]
Environment="HSA_OVERRIDE_GFX_VERSION=11.0.0"
Luego recarga y reinicia el servicio:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Verificación
Paso 5 - Confirmar que el controlador de cómputo del kernel está cargado
Si un comando se cuelga, es posible que la capa de cómputo del kernel (amdkfd) no se haya inicializado. Comprueba si el sistema expone tu GPU como plataforma de cómputo ROCm:
rocminfo
Desplázate hasta la parte superior de la salida. Si ves Can't open /dev/kfd o un fallo, el kernel de Linux no está exponiendo la interfaz de cómputo al espacio de usuario. Si estás usando un kernel personalizado o de vanguardia, intenta arrancar con el kernel estable o LTS (linux-lts) para descartar una regresión del controlador.
Paso 6 - Iniciar el servidor y verificar el uso de VRAM
LM Studio:
lms server start
Ollama:
ollama serve
Luego confirma que el modelo está cargado en la VRAM:
rocm-smi
En reposo (sin modelo cargado):

En reposo, la GPU consume una potencia mínima (9 W), los relojes están cerca del mínimo y el uso de VRAM es bajo (44%).
Bajo carga (modelo y juego ejecutándose simultáneamente):

Bajo carga combinada deberías ver cómo el uso de VRAM aumenta significativamente (71% en este ejemplo), sube la utilización de la GPU y el consumo de energía crece proporcionalmente (~147 W). Esto confirma que el modelo reside en la VRAM y que la inferencia se está ejecutando en la GPU.