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

Инференс LLM на AMD Radeon: ROCm, Vulkan и реальность

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

Инференс LLM на AMD Radeon: ROCm, Vulkan и реальность

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

01Подготовка: Клонирование и структура

Все манипуляции начинаются с получения исходного кода проекта llama.cpp. Это единый репозиторий, содержащий библиотеку llama и множество утилит, включая HTTP-сервер, совместимый с OpenAI API.

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

Далее процесс сборки зависит от выбранного бэкенда. Важно понимать, что llama.cpp использует CMake, что позволяет гибко настраивать компиляцию под конкретное железо.

02HIP (ROCm): Нативная поддержка AMD на Linux

Для пользователей Linux, имеющих видеокарты AMD, основным путем является использование HIP — абстракции поверх ROCm. Это позволяет использовать GPU для вычислений с высокой эффективностью, аналогично CUDA на NVIDIA.

Однако, в отличие от CUDA, где драйверы часто устанавливаются «в лоб», ROCm требует внимательной настройки окружения. В документации проекта отмечается, что для некоторых дистрибутивов использование контейнеров может быть необходимым шагом, так как нативные пакеты ROCm могут отсутствовать или конфликтовать с системными библиотеками.

Для сборки с поддержкой HIP (ROCm) используется флаг -DGGML_HIP=ON. Команда сборки выглядит следующим образом:

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

Если вы используете кросс-компиляцию или хотите собрать бинарник, который будет работать на разных GPU AMD без перекомпиляции, рекомендуется отключить нативную оптимизацию под текущее железо:

terminalbash
cmake -B build -DGGML_HIP=ON -DGGML_NATIVE=OFF
⚠️
Важно. ROCm официально поддерживается преимущественно на Linux. На Windows поддержка HIP в llama.cpp исторически была ограничена или требовала специфических настроек среды. Если вы используете Windows, рассмотрите вариант использования Vulkan-бэкенда или WSL2 с установленным ROCm.

03Vulkan: Кроссплатформенная альтернатива

Если ROCm кажется слишком сложным в настройке или вы используете Windows/macOS/Linux без глубокой интеграции драйверов AMD, бэкенд Vulkan является отличной альтернативой. Vulkan позволяет использовать GPU для инференса LLM на практически любом современном оборудовании, поддерживающем этот графический API.

Сборка с поддержкой Vulkan требует наличия соответствующих заголовочных файлов и библиотек Vulkan SDK. Команда для сборки:

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

Хотя Vulkan может уступать ROCm в чистой пропускной способности на некоторых сценариях, он обеспечивает стабильность и предсказуемость работы на разных ОС. Для пользователей, которые хотят просто «запустить модель» без глубокой отладки драйверов, это часто более практичный выбор.

04Сравнение с другими бэкендами

Для контекста, давайте посмотрим, как AMD-решения выглядят на фоне других опций:

  • CUDA (NVIDIA): Флаг -DGGML_CUDA=ON. Золотой стандарт. Лучшая производительность, самая широкая поддержка моделей и оптимизаций. Если у вас есть карта NVIDIA, используйте её.
  • Metal (Apple): Включен по умолчанию на macOS. Использует унифицированную память Apple Silicon (M1/M2/M3). Отличный баланс производительности и энергоэффективности.
  • CPU (BLAS): Если GPU нет или не подходит, можно ускорить CPU через BLAS (OpenBLAS, oneMKL). Это не даст скорости GPU, но значительно ускорит обработку промптов (batch size > 32).
💡
Совет. Если вы выбираете между ROCm и Vulkan на Linux, начните с ROCm, если ваша карта поддерживается официально. Vulkan — это спасательный круг для старых карт или проблемных драйверов.

05VRAM и выбор моделей

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

  • 7B-9B моделей (Q4_K_M): Заметно быстрее работают на картах с небольшим объемом VRAM. Подойдут даже карты начального уровня.
  • 13B-14B моделей (Q4_K_M): Требуют среднего объема VRAM. Требуется RX 6700 XT/7700 XT или выше.
  • 70B моделей (Q4_K_M): Требуют значительного объема VRAM. Здесь потребуются карты уровня RX 7900 XTX (24 ГБ) с использованием offload на CPU или несколько карт (если драйвер позволяет).

Важно: при нехватке VRAM llama.cpp автоматически перенесет часть слоев на CPU (RAM). Это замедлит инференс, но позволит запустить модель. Полное вытеснение слоев на GPU (--n-gpu-layers -1) дает максимальную скорость.

⚠️
Важно. На AMD Radeon объем VRAM часто делится на чипы. Убедитесь, что ваша карта имеет единый пул памяти или корректно работает с многоканальной архитектурой. Ошибки выделения памяти (OOM) на AMD часто связаны не с общим объемом, а с фрагментацией или ограничениями драйвера ROCm.

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

Выбор за

Источник: Официальная документация ↗