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

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

Разбираем, как запустить большие языковые модели на видеокартах AMD Radeon с помощью llama.cpp и ROCm. Реальные команды сборки, подводные камни и выбор железа.

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

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

01Установка и базовая сборка

Первый шаг — получение исходного кода. Проект llama.cpp активно развивается, поэтому актуальная версия всегда доступна в репозитории. Клонирование и переход в директорию проекта выполняются стандартными командами:

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

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

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

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

02Бэкенды для AMD: ROCm и Vulkan

В отличие от NVIDIA, где CUDA является стандартом де-факто, у AMD есть два основных пути ускорения инференса в llama.cpp:

  1. HIP (ROCm): Нативный бэкенд для дискретных видеокарт AMD Radeon. Требует установленной среды ROCm. Это наиболее производительный вариант для десктопных и серверных GPU AMD.
  2. Vulkan: Кроссплатформенный графический API, который также отлично работает с AMD GPU. Часто проще в установке, так как не требует сложной настройки драйверов ROCm на некоторых дистрибутивах Linux, но может уступать HIP в эффективности на тяжелых нагрузках.
⚠️
Важно. Поддержка ROCm в Linux обычно требует установки специфических пакетов драйверов (amdgpu) и библиотеки ROCm. На Windows поддержка ROCm для игр и вычислений исторически была ограничена, поэтому для Windows-пользователей с AMD GPU часто более практичным решением является сборка с флагом Vulkan или использование WSL2 с соответствующими настройками.

03Оптимизация производительности: BLAS и CPU

Даже если вы используете GPU, процессор играет ключевую роль при обработке промптов (prompt processing). В llama.cpp доступна интеграция с библиотеками BLAS (Basic Linear Algebra Subprograms). Использование OpenBLAS или Accelerate Framework может заметно ускорить обработку больших батчей, хотя на скорость генерации (generation) это влияет меньше.

Пример сборки с OpenBLAS:

terminalbash
cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS
cmake --build build --config Release

Для процессоров также доступна опция GGML_NATIVE=ON, которая включает использование современных инструкций, что критично для скорости CPU-инференса.

💡
Совет. Если у вас нет мощной видеокарты, не отчаивайтесь. llama.cpp отлично оптимизирована для CPU. Сборка с флагом GGML_NATIVE=ON и использованием OpenBLAS позволит современным процессорам выдавать вполне приемлемые скорости для моделей среднего размера в квантованном виде.

04Память VRAM и выбор моделей

Главный ограничитель при запуске LLM — объем видеопамяти. llama.cpp использует квантование (GGUF формат), что позволяет уместить большие модели в меньший объем VRAM. Примерные требования для инференса (с учетом контекста):

  • Малые модели: Требуют минимального объема VRAM. Подойдут даже старые карты или современные решения начального уровня.
  • Средние модели: Требуют среднего объема VRAM. Такие карты часто рассматриваются как отличный бюджетный вариант.
  • Большие модели: Требуют значительного объема VRAM. Здесь вступают в игру карты с большим объемом памяти или профессиональные решения. Для самых больших моделей часто требуется несколько GPU или использование CPU-оффлоадинга.

Важно помнить: если модель не помещается в VRAM целиком, llama.cpp автоматически перенесет часть слоев на CPU (RAM). Это работает, но скорость падает в разы.

05Типичные ошибки и совместимость

При сборке под AMD часто возникают проблемы с путями к библиотекам ROCm. Убедитесь, что переменные окружения HIP_PATH или ROCM_PATH корректно прописаны, если CMake не находит их автоматически. Также, если вы используете Vulkan, убедитесь, что у вас установлены последние драйверы AMD Adrenalin, так как они включают необходимые компоненты для работы Vulkan API.

⚠️
Важно. Не путайте бэкенды. Флаг -DGGML_CUDA=ON работает только для NVIDIA. Для AMD используйте -DGGML_HIP=ON (для ROCm) или -DGGML_VULKAN=ON. Смешивание флагов приведет к ошибкам компиляции.

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

Выбор зависит от бюджета и задач:

  • Бюджетный старт: Б/у карты или новые решения начального уровня. Идеально для моделей малого размера. Используйте Vulkan, так как ROCm на старых картах может требовать танцев с бубном.
  • Оптимальный баланс: Карты со средним объемом памяти. Отличный выбор для моделей среднего размера.

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