Главная/Блог/Обзор/Инференс LLM на AMD Radeon: гайд по…
Обзор4 мин чтения · 7 июля 2026 г.

Инференс LLM на AMD Radeon: гайд по сборке llama.cpp через ROCm

Реальный взгляд на запуск больших языковых моделей на видеокартах AMD. Разбираем флаги сборки, поддержку Vulkan/ROCm и подводные камни инференса.

Инференс LLM на AMD Radeon: гайд по сборке llama.cpp через ROCm

Запуск локальных LLM на видеокартах AMD долгое время считался «темной материей» экосистемы. В то время как NVIDIA предлагает стандартизированный путь через CUDA, владельцы Radeon вынуждены ориентироваться на более сложные бэкенды: ROCm (HIP), Vulkan или OpenCL. Проект llama.cpp остается золотым стандартом для инференса, позволяя запускать модели на любом доступном железе, но требует внимательности при сборке. Разберем, как правильно собрать бинарник, какие флаги использовать и чего ждать от производительности.

01Базовая сборка и структура проекта

Основой является библиотека llama с C-style интерфейсом, но для пользователя важнее примеры и инструменты, включая HTTP-сервер, совместимый с OpenAI. Начать нужно с клонирования репозитория:

terminalbash
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp

Для компиляции используется CMake. Базовая сборка под CPU выглядит так:

terminalbash
cmake -B build
cmake --build build --config Release

Для ускорения компиляции рекомендуется использовать параллельные Jobs (например, -j 8) или генератор Ninja. Также полезно установить ccache для кэширования промежуточных файлов.

02GPU-бэкенды: ROCm, Vulkan и CUDA

Ключевой вопрос для владельцев AMD — как задействовать GPU. В документации llama.cpp поддерживаются несколько путей:

  • CUDA: Нативная поддержка NVIDIA. Флаг -DGGML_CUDA=ON. Требует установленного CUDA Toolkit.
  • HIP (ROCm): Аналог CUDA для AMD. В документации упоминается как HIP. Позволяет использовать видеокарты AMD серии Radeon RX и профессиональные Instinct.
  • Vulkan: Кроссплатформенный графический API, работающий на AMD, NVIDIA и Intel. Хорошая альтернатива, если ROCm не установлен или работает нестабильно.
  • Metal: Только для Apple Silicon (M1/M2/M3). Включен по умолчанию на macOS.

Для сборки с поддержкой GPU (на примере CUDA, как эталона производительности) используется команда:

terminalbash
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

При сборке для AMD (HIP/Vulkan) логика аналогична, но требуется настройка окружения ROCm или драйверов Vulkan. Важно отметить: по умолчанию llama.cpp собирает бинарник под конкретное железо. Для создания универсального бинарника, работающего на разных GPU, нужно отключить нативную оптимизацию:

terminalbash
cmake -B build -DGGML_CUDA=ON -DGGML_NATIVE=OFF

03Производительность и VRAM: реалии инференса

В отличие от обучения, инференс в llama.cpp сильно зависит от размера VRAM и скорости памяти. Производительность варьируется в зависимости от бэкенда и архитектуры железа, но в целом GPU-решения обеспечивают заметно более высокую скорость по сравнению с CPU. Использование моделей различных размеров в квантовании Q4_K_M позволяет подобрать конфигурацию под доступные ресурсы:

Железо (VRAM) Модель (пример) Ожидаемая скорость Примечание
Высокопроизводительные GPU (24GB) Модель среднего размера (Q4) Высокая Полностью в VRAM, макс. скорость
AMD Radeon (24GB) Модель среднего размера (Q4) Хорошая* *Зависит от бэкенда (Vulkan/ROCm)
Apple M2/M3 Max (Unified Memory) Модель большого размера (Q4) Средняя Unified Memory, медленно, но возможно
GPU (24GB) + CPU Модель большого размера (Q4) Низкая Часть слоев на CPU, узкое место PCIe

Обратите внимание: использование BLAS (OpenBLAS, Intel oneMKL) ускоряет обработку промпта (batch size > 32), но не влияет на скорость генерации токенов. Генерация — это узкое место, зависящее от пропускной способности памяти GPU.

⚠️
Важно. При сборке для AMD через HIP/ROCm убедитесь, что версия ROCm совместима с вашей ОС. На Linux это часто требует установки специфичных пакетов ядра. На Windows поддержка ROCm ограничена и часто требует WSL2. Альтернатива — Vulkan, который работает стабильнее на Windows без дополнительных драйверов ROCm.

04Типичные ошибки и настройки

Одна из частых проблем — некорректное определение вычислительной способности GPU или отсутствие прав доступа к устройствам. Если nvcc (или аналог для AMD) не видит карту, проверьте переменные окружения.

Для отладки и тестирования полезно использовать режим Debug:

terminalbash
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build

Также не забывайте про флаги отключения GPU, если нужно протестировать CPU-бэкенд: --n-gpu-layers 0.

💡
Совет. Если вы используете AMD Radeon на Linux, попробуйте бэкенд Vulkan перед тем, как настраивать сложный стек ROCm. Vulkan в llama.cpp часто показывает лучшую производительность на потребительских картах (RX 6000/7000 серии) благодаря более низкому оверхеду.

05Какое железо кому подойдёт

Бюджетный сегмент (до 30-40 тыс. руб.)

Вариант: Б/у NVIDIA RTX 2080 Ti (22GB) или новая AMD RX 6700 XT (12GB).
Реальность: 12GB VRAM у AMD хватит только на модели малого размера в Q4/Q5. Для моделей среднего размера придется использовать CPU-слои, что резко снизит скорость. NVIDIA 22GB позволяет запускать модели среднего размера целиком в памяти, что дает более плавный опыт.

Средний сегмент

Источник: источник (тест/офиц. документация) ↗