Главная/Блог/Обзор/LLM на AMD Radeon: Сборка llama.cpp…
Обзор4 мин чтения · 4 октября 2026 г.

LLM на AMD Radeon: Сборка llama.cpp через ROCm и Vulkan

Разбираем, как запустить LLM на видеокартах AMD в Linux через ROCm и Vulkan. Инструкция по сборке llama.cpp, флаги оптимизации и типичные ошибки.

Запуск больших языковых моделей (LLM) на видеокартах AMD в среде Linux — задача решаемая, но требующая внимательности к деталям. В отличие от NVIDIA, где всё упирается в CUDA, экосистема AMD строится вокруг ROCm (Radeon Open Compute) и Vulkan. Проект llama.cpp является де-факто стандартом для инференса, поддерживая оба бэкенда. Ниже — практическое руководство по сборке и настройке, основанное на официальной документации проекта.

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

Первый шаг — получение исходного кода. Проект llama.cpp предоставляет библиотеку llama с C-style интерфейсом и набор утилит, включая HTTP-сервер, совместимый с OpenAI API.

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

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

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

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

02Сборка с поддержкой AMD ROCm

ROCm — это основной бэкенд для видеокарт AMD Radeon (серии RX 5000/6000/7000 и профессиональных Instinct) в Linux. Он позволяет использовать вычислительную мощность GPU для обработки запросов.

Для сборки с поддержкой ROCm необходимо убедиться, что в системе установлен пакет rocm-dev или аналогичный, предоставляющий заголовочные файлы и библиотеки ROCm. В документации llama.cpp раздел HIP (основа ROCm) описывает интеграцию. Хотя в кратком вырезе документации прямые флаги HIP не всегда вынесены в общий блок, стандартная практика для ROCm-совместимых сборок llama.cpp включает:

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

Важно: Версии ROCm должны быть совместимы с версией LLVM/Clang, используемой для сборки. На современных дистрибутивах (Ubuntu 22.04/24.04, Fedora) это обычно решается установкой пакетов из репозиториев AMD или использованием Docker-образов с ROCm.

⚠️
Важно. ROCm официально поддерживается преимущественно на Linux. На Windows поддержка AMD GPU через WSL2 или нативно ограничена и часто требует обходных путей (например, через Vulkan). Если вы используете Windows, рассмотрите вариант сборки через Vulkan или перехода на Linux.

03Vulkan как альтернатива ROCm

Если ROCm вызывает сложности с зависимостями или ваша карта не входит в список «сертифицированных» AMD для ROCm, бэкенд Vulkan является отличной альтернативой. Он работает на широком спектре GPU, включая старые поколения Radeon.

Сборка с Vulkan:

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

Vulkan-бэкенд в llama.cpp активно развивается и часто демонстрирует хорошую производительность на картах серии RX 6000/7000. Он менее зависим от специфичных драйверов AMD, чем ROCm, но может требовать больше ручной настройки параметров запуска (например, управление слоями через --n-gpu-layers).

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

Даже при использовании GPU, процессор играет роль в обработке промптов (prompt processing). Для ускорения этого этапа можно подключить библиотеки BLAS.

  • OpenBLAS: Универсальное решение для CPU.
    cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS
  • AMD AOCL-BLAS: Специализированная оптимизация для процессоров AMD Zen. Требует установки AMD AOCL и настройки переменных окружения.
    cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=AOCL_mt

Обратите внимание: использование BLAS улучшает скорость обработки контекста (prompt), но не влияет на скорость генерации токенов (inference), которая зависит от GPU/VRAM.

💡
Совет. Если у вас процессор AMD Ryzen, обязательно используйте AOCL-BLAS или ZenDNN (если доступен для вашей версии). Это даст заметное ускорение подготовки контекста по сравнению с generic OpenBLAS.

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

Главная проблема при работе с AMD в Linux — это совместимость версий ROCm и ядра Linux. Ошибка hsa-runtime64 или hipInit обычно означает, что драйвер не инициализировался корректно.

  1. Проверка драйверов: Убедитесь, что rocm-smi работает и видит вашу карту.
  2. VRAM: llama.cpp использует квантование (GGUF). Для модели 7B в формате Q4_K_M потребуется несколько гигабайт VRAM. Для 13B — больше памяти. Для 70B — требуется значительный объем VRAM (и то, с трудом). Убедитесь, что VRAM вашей карты хватает под выбранную квантованную модель.
  3. Флаги запуска: После сборки используйте --n-gpu-layers -1 (или конкретное число), чтобы перенести слои модели на GPU. Если GPU не используется, проверьте, что бэкенд (HIP/Vulkan) был включен при сборке.

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

Категория Рекомендуемое железо (AMD) Что запустится Примечание для РФ
Бюджетный старт RX 6600 / 6650 XT (8-10 GB VRAM) LLaMA-3-8B (Q4), Mistral-7B Доступно на маркетплейсах, цена ~20-25 тыс. руб.
Оптимальный выбор Источник: источник (тест/офиц. документация) ↗