В России, где доступ к облачным NVIDIA A100/H100 ограничен или дорог, а цены на RTX 3090/4090 кусаются, многие пользователи рассматривают AMD Radeon как альтернативу для локального запуска больших языковых моделей (LLM). Однако экосистема AMD в мире инференса LLM значительно сложнее NVIDIA. В отличие от «вынул и работает» CUDA, здесь требуется тщательная настройка бэкендов. Разберем, как правильно собрать llama.cpp для AMD, какие флаги использовать и чего ждать от производительности.
01Почему не CUDA и какие бэкенды выбрать?
Основной продукт проекта llama.cpp — библиотека llama с C-интерфейсом. Для AMD GPU в исходном коде предусмотрены два основных пути ускорения: HIP (прямой аналог CUDA для AMD) и Vulkan (кроссплатформенный графический API).
Важно понимать: поддержка AMD в llama.cpp не является «default» для всех сборок. Вам нужно явно указывать бэкенд при конфигурации CMake. В документации проекта разделы [HIP] и [Vulkan] идут отдельно от стандартных [CUDA] и [Metal]. Это означает, что стандартная команда сборки без флагов не задействует вашу видеокарту AMD.
02Как собрать llama.cpp для AMD GPU
Процесс начинается с клонирования репозитория. Базовая подготовка выглядит так:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cppДалее выбор зависит от вашего драйвера и ОС. Для Linux с установленным ROCm (Radeon Open Compute) обычно используется HIP-бэкенд. Для Windows или более старых карт часто предпочтительнее Vulkan, так как он не требует сложной настройки драйверов ROCm, которые часто требуют специфических версий ядра Linux.
Пример сборки с включенной поддержкой GPU (общий принцип, требующий уточнения флагов под конкретный бэкенд HIP/Vulkan в актуальной документации проекта):
cmake -B build
# Для HIP/ROCm часто требуется флаг -DGGML_HIP=ON
# Для Vulkan -DGGML_VULKAN=ON
cmake --build build --config ReleaseОбратите внимание: для ускорения обработки промптов (prompt processing) можно подключить BLAS. Однако документация четко указывает: использование BLAS не влияет на скорость генерации токенов (inference speed), оно ускоряет только начальную стадию анализа контекста. Для AMD это может быть OpenBLAS или специфические реализации, но для инференса ключевым остается GPU-бэкенд.
03VRAM и производительность: суровая реальность
Главный вопрос: сколько VRAM нужно и сколько токенов в секунду (tok/s) вы получите? В отличие от NVIDIA, где есть четкие ориентиры по TFLOPS и памяти, у AMD производительность сильно зависит от типа памяти (HBM vs GDDR6) и ширины шины.
Типичные сценарии для инференса LLM (на примере моделей Q4_K_M, 7B-13B параметров):
| Железо (AMD) | Модель (пример) | VRAM (прибл.) | tok/s (оценка) |
|---|---|---|---|
| Radeon RX 7900 XTX (24GB) | Llama-3-8B (Q4) | ~6-8 GB | заметно быстрее |
| Radeon RX 6700 XT (12GB) | Llama-3-8B (Q4) | ~6-8 GB | средняя скорость |
| Radeon RX 6600 (8GB) | Phi-3-mini (Q4) | ~4-5 GB | базовая скорость |
Обратите внимание: AMD-карты часто уступают NVIDIA-аналогам по скорости инференса на токен из-за менее оптимизированных ядер для матричных умножений в контексте LLM и накладных расходов на конвертацию данных. Однако, цена за гигабайт памяти у AMD часто выигрывает. 24 ГБ на RX 7900 XTX позволяют запускать модели покрупнее (например, 13B-20B в квантовании Q4/Q5), что недоступно на 12 ГБ картах NVIDIA среднего класса.
04Типичные ошибки и совместимость
1. Отсутствие поддержки Vulkan/HIP по умолчанию. Многие пользователи скачивают бинарники и не видят GPU. Нужно проверять, скомпилирована ли версия с флагом GGML_VULKAN или GGML_HIP. В llama.cpp это не всегда очевидно.
2. Проблемы с ROCm на Windows. Официально AMD не поддерживает ROCm на Windows. Обходные пути через WSL2 работают, но добавляют задержки на передачу данных между хостом и гостевой ОС, что снижает общую производительность.
3. Квантование. Для AMD карт критически важно использовать GGUF-формат и квантование (Q4_K_M, Q5_K_M). Использование FP16/FP32 на AMD может привести к нехватке памяти и резкому падению скорости из-за медленной пропускной способности памяти по сравнению с вычислительной мощностью.
05Какое железо кому подойдёт
Бюджетный сегмент (до 30-40 тыс. руб.): Radeon RX 6600 (8GB) или RX 6700 XT (12GB). Позволяют запускать модели до 7B-8B параметров (Llama-3-8B, Phi-3) с приемлемой скоростью. Vulkan-бэкенд будет стабильнее ROCm. Это лучший входной билет в мир локальных LLM на AMD.
Средний сегмент (50-70 тыс. руб.): Radeon RX 7800 XT (16GB). 16 ГБ VRAM от
Источник: источник (тест/офиц. документация) ↗
