Запуск LLM на AMD RX 7800 XT (Посібник з ROCm)

Посібник надано Ian Wirtz

Рекомендовано: LM Studio (lms) зазвичай дає найкращі результати, але Ollama є гідною альтернативою.


Передумови

Крок 1 Встановлення rocm-hip-runtime

Перш ніж LM Studio або Ollama зможуть використовувати вашу відеокарту через 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 розділяє інструмент командного рядка та його бібліотеку виконання на окремі пакети.

# Інструмент моніторингу командного рядка
sudo apt update && sudo apt install rocm-smi

# Бібліотеки виконання
sudo apt update && sudo apt install librocm-smi64-1

Порада: Якщо точна назва пакету невідома, введіть sudo apt install librocm-smi64 і натисніть Tab для автодоповнення поточного суфікса версії.

Fedora:

# Інструмент командного рядка
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) Варіант А: Глобальна змінна (рекомендовано)

Встановіть один раз; Fish автоматично зберігає її між перезавантаженнями без додаткової конфігурації:

set -Ux HSA_OVERRIDE_GFX_VERSION 11.0.0

Fish Варіант Б: Явний запис у конфігураційний файл

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) може бути не ініціалізований. Перевірте, чи система розкриває вашу відеокарту як обчислювальну платформу ROCm:

rocminfo

Прокрутіть до початку виводу. Якщо бачите Can't open /dev/kfd або збій, ядро Linux не відкриває обчислювальний інтерфейс для простору користувача. Якщо ви використовуєте власне або передове ядро, спробуйте завантажитися з базовим або LTS-ядром (linux-lts), щоб виключити регресію драйвера.


Крок 6 Запуск сервера та перевірка використання VRAM

LM Studio:

lms server start

Ollama:

ollama serve

Потім підтвердіть, що модель завантажена у VRAM:

rocm-smi

В режимі очікування (модель не завантажена):

rocm-smi output with no model running

В режимі очікування відеокарта споживає мінімальну потужність (9 Вт), тактові частоти знаходяться поблизу мінімуму, а використання VRAM є низьким (44%).

Під навантаженням (модель + гра запущені одночасно):

rocm-smi output with Elite Dangerous and EliteIntel running

При комбінованому навантаженні ви повинні побачити значне зростання використання VRAM (71% у цьому прикладі), підвищення утилізації GPU і відповідне збільшення енергоспоживання (~147 Вт). Це підтверджує, що модель знаходиться у VRAM та інференс виконується на GPU.