Запуск языковых моделей через ollama на Ryzen 7000/8000 с интегрированной графикой в Ubuntu/Debian

В этой статье мы рассмотрим, как использовать ollama — инструмент для работы с большими языковыми моделями, на примере системы с процессором AMD Ryzen 7 7840HS со встроенной видеокартой Radeon 780M. Вы узнаете, как превратить ваш микрокомпьютер в полноценную платформу для работы с ИИ, используя возможности интегрированной графики.

Введение

Процессор AMD Ryzen 7 7840HS имеет в своём составе встроенную видеокарту AMD Radeon™ 780M с Graphics Core Count в количестве 12 штук, которая, по заявлению производителя, обладает мощностью до 10 TOPS для задач AI. Для графики от AMD есть драйвер amdgpu, который попробуем установить и подключить к ollama.

Подготовка микрокомпьютера

Поскольку мы хотим запускать языковые модели на встроенной видеокарте, в настройках BIOS надо выделить, как можно больше оперативной памяти для видеокарты из состава оперативной. На подопытном микрокомпьютере это делается в разделе Advanced -> UMA Frame buffer Size. Максимальный объём памяти здесь можно выставить всего 16 Гб.

Подготовка Debian Linux

Настройка по инструкции с сайта AMD: ROCm on Linux detailed installation overview -> Installation prerequisites.

Установка дополнительных пакетов:

sudo apt install "linux-headers-$(uname -r)"
sudo apt install -y python3-setuptools python3-wheel

Добавление дополнительных прав к текущему пользователю для доступа к видео и рендеру:

sudo usermod -a -G video,render $LOGNAME

Предоставить доступ всем пользователям системы к графическому ядру.

Создать новый файл /etc/udev/rules.d/70-amdgpu.rules со следующим содержимым:

KERNEL=="kfd", MODE="0666"
SUBSYSTEM=="drm", KERNEL=="renderD*", MODE="0666"

Перезапустить udevadm:

sudo udevadm control --reload-rules && sudo udevadm trigger

Установка AMDGPU на Debian 12

Настройка по инструкции с сайта AMD: ROCm on Linux detailed installation overview -> ROCm installation overview -> Installation via AMDGPU installer -> Debian AMDGPU installer installation.

Установить amdgpu. Последнюю версию можно узнать по ссылке выше.

sudo apt update
wget https://repo.radeon.com/amdgpu-install/6.3.3/ubuntu/jammy/amdgpu-install_6.3.60303-1_all.deb
sudo apt install ./amdgpu-install_6.3.60303-1_all.deb
sudo apt update

Установить amdgpu-dkms:

amdgpu-install --usecase=dkms

При установке предложил заменить или оставить созданный ранее файл /etc/udev/rules.d/70-amdgpu.rules. Выбрать — заменить.

Проверить статус:

sudo dkms status

Установить драйверы

amdgpu-install -y --usecase=graphics,rocm

Установка ollama

Установка по инструкции: https://github.com/ollama/ollama

curl -fsSL https://ollama.com/install.sh | sh

Если прямо сейчас запустить модель, например:

ollama run deepseek-r1

то в логе (journalctl -u ollama.service) будет запись о том, что драйверы для amdgpu не обнаружены и ollama будет запускает модель на CPU:

... level=WARN source=amd_linux.go:61 msg="ollama recommends running the https://www.amd.com/en/support/linux-drivers" error="amdgpu version file missing: /sys/module/amdgpu/version stat /sys/module/amdgpu/version: no such file or directory"
... level=INFO source=amd_linux.go:402 msg="no compatible amdgpu devices detected"
... level=INFO source=gpu.go:377 msg="no compatible GPUs were discovered"
... level=INFO source=types.go:130 msg="inference compute" id=0 library=cpu variant="" compute="" driver=0.0 name="" total="46.9 GiB" available="46.1 GiB"

Подключение драйвера amdgpu к ollama

Следовать инструкции: https://github.com/alexhegit/ollama/blob/main/docs/tutorials/amd-igpu-780m.md (инструкция пока не влита в master).

Остановить ollama.service

sudo systemctl stop ollama.service

Изменить ollama.service для подключения ROCm iGPU 780:

nano /etc/systemd/system/ollama.service

Добавить строку: Environment=»HSA_OVERRIDE_GFX_VERSION=11.0.0″ под «[Service]» и сохранить файл.

[Service]
Environment="HSA_OVERRIDE_GFX_VERSION=11.0.2"

Начиная с gfx1103 (11.0.3) это не поддерживается.

Запустить сервис с новыми настройками:

sudo systemctl daemon-reload
sudo systemctl restart ollama.service

Запустить модель через ollama:

ollama run deepseek-r1

Проверить загрузку iGPU:

sudo ollama ps

Значение PROCESSOR должно иметь значение 100% GPU.

Если выполнить journalctl -u ollama.service, то в конце лог должен содержать записи:

... level=INFO source=routes.go:1292 msg="Listening on 127.0.0.1:11434 (version 0.6.0)"
... level=INFO source=gpu.go:217 msg="looking for compatible GPUs"
... level=INFO source=amd_linux.go:389 msg="skipping rocm gfx compatibility check" HSA_OVERRIDE_GFX_VERSION=11.0.0
... level=INFO source=types.go:130 msg="inference compute" id=0 library=rocm variant="" compute=gfx1103 driver=6.10 name=1002:15bf total="16.0 GiB" available="15.9 GiB"