Запуск больших языковых моделей (LLM) на видеокартах AMD Radeon долгое время считался «темной материей» индустрии. В то время как NVIDIA с CUDA доминирует, владельцы карт AMD часто сталкиваются с ошибками сборки и несовместимостью. Однако проект llama.cpp предоставляет мощные бэкенды — HIP (для ROCm) и Vulkan — позволяющие использовать всю мощь графического процессора. Разберем, как правильно собрать софт, какие флаги использовать и чего ждать от производительности.
01Сборка через HIP (ROCm): путь к нативной производительности
Для видеокарт AMD серии RX 6000/7000 и профессиональных Instinct основным способом ускорения является использование HIP, который транслирует CUDA-код в ROCm-API. Это дает наилучшую производительность, но требует строгой совместимости ОС и драйверов.
Базовая сборка с поддержкой AMD GPU выглядит так:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build -DGGML_HIP=ON
cmake --build build --config ReleaseВажно отметить: флаг -DGGML_HIP=ON активирует бэкенд. Однако, в отличие от NVIDIA, где можно собрать универсальный бинарник, AMD-решения часто привязаны к конкретной архитектуре GPU для достижения пиковой скорости. Если вы хотите собрать бинарник, который будет работать на разных картах (за счет JIT-компиляции), можно отключить нативную оптимизацию:
cmake -B build -DGGML_HIP=ON -DGGML_NATIVE=OFF
cmake --build build --config Release02Vulkan: универсальный спасательный круг
Если ROCm не работает из-за ограничений ОС или версии драйвера, бэкенд Vulkan становится отличной альтернативой. Он работает на AMD, NVIDIA и даже Intel GPU, обеспечивая кроссплатформенность. Производительность может быть немного ниже, чем у нативного HIP, но стабильность — выше.
Команда для сборки с Vulkan:
cmake -B build -DGGML_VULKAN=ON
cmake --build build --config ReleaseVulkan особенно полезен для пользователей macOS (хотя Metal там предпочтительнее) и Linux-энтузиастов с картами старого поколения, где драйверы ROCm еще не оптимизированы.
03VRAM и модели: сколько памяти нужно?
Ключевой параметр при выборе железа — объем VRAM. llama.cpp использует квантование (GGUF), что позволяет запускать большие модели на скромном объеме памяти. Ниже приведена ориентировочная таблица требований для инференса:
| Модель | Квантование | Мин. VRAM (GPU) | Примечание |
|---|---|---|---|
| Llama-3-8B | Q4_K_M | ~6-8 ГБ | Легко влезает в RX 6600/7600 |
| Mixtral-8x7B | Q4_K_M | ~24-28 ГБ | Требует RX 6900 XT / 7900 XTX или 2x RX 6700 |
| Llama-3-70B | Q4_K_M | ~40-48 ГБ | Только топовые карты (RX 7900 XTX 24GB x2) или CPU offload |
При нехватке VRAM llama.cpp автоматически переносит часть слоев на CPU (RAM). Это работает, но скорость падает в разы. Для комфортного инференса старайтесь укладывать модель целиком в VRAM.
amdgpu (входят в ядро) и последнюю версию ROCm. Старые версии ROCm (до 5.7) плохо работали с новыми архитектурами RDNA3. Проверьте совместимость вашей карты на официальном сайте AMD.04Типичные ошибки и грабли
- Ошибка "HIP device not found". Чаще всего возникает, если переменные окружения ROCm не прописаны. Решение: запустите
source /opt/rocm/setenv.sh(путь может отличаться в зависимости от дистрибутива) перед запуском. - Низкая скорость на Vulkan. Vulkan может требовать ручной настройки размера батча. Используйте флаг
-ngl 999(или больше), чтобы загрузить все слои на GPU. Если VRAM не хватает, скорость упадет из-за постоянных пересылок данных. - Сборка на Windows. Если вы не используете WSL2, сборка HIP-бэкенда на чистом Windows может быть проблематичной. В этом случае лучше использовать Vulkan или Docker-контейнер с Linux.
05Какое железо кому подойдёт
Выбор AMD GPU для ИИ зависит от бюджета и задач:
- Бюджетный сегмент (RX 6600/7600, 8-10 ГБ VRAM): Идеально для старта. Можно запускать модели до 8B параметров (Q4/Q5) с высокой скоростью. Vulkan-бэкенд здесь работает стабильнее ROCm на Windows.
- Средний сегмент (RX 6700 XT/6800, 12-16 ГБ VRAM): Позволяет запускать модели до 13B-20B (в квантовании Q3/Q4). Отличный баланс цены и производительности. ROCm работает отлично на Linux.
- Топовый сегмент (RX 7900 XTX, 24 ГБ VRAM): Максимум для одиночной карты. Можно запустить Mixtral 8x7B (Q4) с небольшим offload на CPU. Для 70B+ моделей потребуется связка из двух карт или переход на серверные решения (Instinct MI200/300), которые дороги и сложны в настройке.
В России купить новые AMD GPU можно в крупных ритейлерах, цены варьируются от 20 тыс. руб. за RX 6600 до 80-90 тыс. руб. за RX 7900 XTX. Аренда AMD GPU в облаках (Yandex Cloud, Selectel) доступна, но выбор моделей ограничен по сравнению с NVIDIA. Для домашних экспериментов сборка llama.cpp с -DGGML_HIP=ON или -DGGML_VULKAN=ON — самый доступный способ войти в мир локальных LLM.
Источник: источник (тест/офиц. документация) ↗
