Запуск LLM на AMD RX 7800 XT (Руководство по ROCm)
Руководство подготовлено Ian Wirtz
Рекомендация: LM Studio (
lms) как правило даёт лучшие результаты, однако Ollama тоже является рабочей альтернативой.
Предварительные требования
Шаг 1 Установка rocm-hip-runtime
Прежде чем LM Studio или Ollama смогут использовать GPU через ROCm, системе необходимы базовые пользовательские HIP-библиотеки для взаимодействия с драйвером ядра.
Arch Linux / CachyOS:
sudo pacman -S rocm-hip-runtime
Ubuntu / Debian:
sudo apt install rocm-hip-runtime
Fedora:
sudo dnf install rocm-hip-runtime
Права доступа к GPU: Ваш пользователь должен входить в группы
renderиvideo. Проверьте командой:groupsЕсли одной из групп нет, добавьте себя:
sudo usermod -aG video,render $USERДля применения изменений необходимо полностью выйти из системы и войти снова (или перезагрузить компьютер).
Шаг 2 Установка rocm-smi (может быть необязательным)
На быстро обновляемых дистрибутивах, таких как Arch, утилиты управления не всегда подтягиваются как строгая зависимость rocm-hip-runtime. Установите их явно, чтобы избежать несовпадения версий библиотек.
Arch Linux / CachyOS:
sudo pacman -S rocm-smi-lib
Ubuntu / Debian:
Debian разделяет CLI-инструмент и его библиотеку времени выполнения на отдельные пакеты.
# Инструмент мониторинга командной строки
sudo apt update && sudo apt install rocm-smi
# Библиотеки времени выполнения
sudo apt update && sudo apt install librocm-smi64-1
Подсказка: Если точное название пакета неизвестно, введите
sudo apt install librocm-smi64и нажмите Tab для автодополнения текущего суффикса версии.
Fedora:
# CLI-инструмент
sudo dnf install rocm-smi
# Библиотеки и заголовки для разработки на C/C++ (аналог rocm-smi-lib в Arch)
sudo dnf install rocm-smi-devel
Запуск модели
Шаг 3 Загрузка модели с ускорением ROCm
При вызове lms load явно передавайте флаги аппаратного ускорения. Флаг --gpu max указывает среде выполнения загрузить всю модель в VRAM.
HSA_OVERRIDE_GFX_VERSION=11.0.0 lms load tulu-3.1-8b-supernova --context-length 8192 --gpu max
Префикс HSA_OVERRIDE_GFX_VERSION=11.0.0 сообщает стеку ROCm, что RX 7800 XT следует воспринимать как нативно поддерживаемую вычислительную цель, обходя молчаливые ошибки отката.
Шаг 4 Сохранение конфигурации
Чтобы не добавлять переменную окружения к каждой команде, добавьте её в профиль командной оболочки.
Bash:
echo 'export HSA_OVERRIDE_GFX_VERSION=11.0.0' >> ~/.bashrc
source ~/.bashrc
Fish (стандартная оболочка CachyOS) Вариант A: универсальная переменная (рекомендуется)
Задаётся один раз; Fish автоматически сохраняет её между перезагрузками без дополнительной настройки:
set -Ux HSA_OVERRIDE_GFX_VERSION 11.0.0
Fish Вариант B: явная запись в файл конфигурации
echo 'set -gx HSA_OVERRIDE_GFX_VERSION 11.0.0' >> ~/.config/fish/config.fish
source ~/.config/fish/config.fish
Ollama (служба systemd):
Поскольку Ollama работает под собственным системным пользователем ollama, переменную необходимо передавать через drop-in файл systemd:
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo nano /etc/systemd/system/ollama.service.d/override.conf
Вставьте следующее, затем сохраните и выйдите (Ctrl+O, Enter, Ctrl+X):
[Service]
Environment="HSA_OVERRIDE_GFX_VERSION=11.0.0"
Затем перезагрузите конфигурацию и перезапустите службу:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Проверка
Шаг 5 Убедитесь, что вычислительный драйвер ядра загружен
Если команда зависает, возможно, вычислительный уровень ядра (amdkfd) не инициализирован. Проверьте, доступен ли GPU как вычислительная платформа ROCm:
rocminfo
Прокрутите вывод вверх. Если видите Can't open /dev/kfd или аварийное завершение Linux-ядро не открывает интерфейс вычислений для пользовательского пространства. Если вы используете кастомное или экспериментальное ядро, попробуйте загрузиться со стандартным или LTS-ядром (linux-lts), чтобы исключить регрессию драйвера.
Шаг 6 Запуск сервера и проверка использования VRAM
LM Studio:
lms server start
Ollama:
ollama serve
Затем убедитесь, что модель загружена в VRAM:
rocm-smi
В режиме ожидания (модель не загружена):

В режиме ожидания GPU потребляет минимум энергии (9 Вт), тактовые частоты близки к минимуму, использование VRAM невысокое (44%).
Под нагрузкой (модель и игра запущены одновременно):

При совокупной нагрузке использование VRAM должно заметно вырасти (71% в данном примере), утилизация GPU увеличиться, а энергопотребление возрасти (~147 Вт). Это подтверждает, что модель находится в VRAM и инференс выполняется на GPU.