В эпоху дефицита NVIDIA A100/H100 и заградительных цен на RTX 4090 в России, видеокарты AMD Radeon становятся единственной доступной альтернативой для локального запуска больших языковых моделей (LLM). Проект llama.cpp — де-факто стандарт для инференса на потребительском железе — поддерживает AMD через два основных бэкенда: ROCm (HIP) для Linux и Vulkan для кроссплатформенной совместимости. Разберем, как собрать софт, какие модели «потянут» и где кроются типичные ошибки.
01Сборка и настройка окружения
Первый шаг — получение исходного кода. llama.cpp использует CMake, что делает процесс сборки прозрачным, но требующим внимательности к флагам.
git clone https://github.com/ggml-org/llama.cpp
cd llama.cppДля AMD-карт в Linux основным путем является использование HIP/ROCm. Однако, если вы используете Windows или хотите более универсальное решение, Vulkan является отличной альтернативой. Важно отметить: поддержка AMD в llama.cpp не всегда «из коробки» требует сложных зависимостей, как в случае с CUDA, но требует правильного выбора бэкенда при компиляции.
02Бэкенды: ROCm vs Vulkan
В документации llama.cpp четко разделены пути ускорения. Для NVIDIA это CUDA, для Apple — Metal. Для AMD ситуация двоякая:
- HIP (ROCm): Нативный путь для Linux. Позволяет использовать вычислительную мощность карт серии RX 6000/7000 и профессиональных Instinct. Требует корректно настроенного окружения ROCm.
- Vulkan: Кроссплатформенный бэкенд. Работает на Windows и Linux. Часто проще в установке, так как не требует глубокой интеграции с системными библиотеками AMD, но может уступать ROCm в производительности на некоторых моделях из-за накладных расходов на трансляцию шейдеров.
При сборке убедитесь, что вы не отключаете нужные флаги. Например, для Metal на Mac используется -DGGML_METAL=OFF для отключения, но для AMD аналогичные флаги зависят от выбранного бэкенда (HIP или Vulkan). По умолчанию, если система обнаруживает GPU, llama.cpp пытается использовать доступное ускорение.
03Железо, VRAM и производительность
Главный ограничитель при запуске LLM — объем видеопамяти (VRAM). llama.cpp использует квантование (GGUF формат), что позволяет запускать огромные модели на скромном железе. Ниже приведена сводка по типичным конфигурациям, основанная на практике использования llama.cpp с AMD-картами.
| Железо (AMD) | Модель (пример) | VRAM (прибл.) | Токенов/с (оценка) |
|---|---|---|---|
| RX 6700 XT (12GB) | Llama-3-8B (Q4_K_M) | занимает несколько ГБ | заметно быстрее |
| RX 7900 XTX (24GB) | Mixtral-8x7B (Q4_K_M) | занимает значительный объем | в разы дешевле |
| RX 6900 XT (16GB) | Llama-3-8B (Q5_K_S) | занимает средний объем | высокая скорость |
Примечание: Скорость зависит от ширины контекста (batch size). При обработке длинных промптов (>32 токенов в батче) может помочь включение BLAS (OpenBLAS/Intel oneMKL) для CPU, что ускорит пре-промпт, но не саму генерацию.
04Типичные ошибки и оптимизация
Одна из частых проблем — нехватка VRAM. Если модель не влезает в память, llama.cpp начнет использовать системную RAM (offload), что кратно замедлит инференс. Всегда проверяйте размер GGUF файла. Модель Llama-3-8B в квантовании Q4 занимает небольшой объем, Q8 — значительно больше.
Еще один нюанс — prompt processing. Для ускорения обработки длинных контекстов можно использовать BLAS-библиотеки. В Linux это делается флагом -DGGML_BLAS=ON. Это не ускорит генерацию токенов, но сделает загрузку контекста в память почти мгновенной.
05Какое железо кому подойдёт
Выбор AMD Radeon для LLM в России обусловлен доступностью. Вот честный расклад:
- Бюджетный сегмент (RX 6600/6700 XT): Отлично для моделей до 7-8B параметров в квантовании Q4/Q5. RX 6700 XT с 12 ГБ VRAM — лучший входной билет. Цена на вторичном рынке или в магазинах РФ адекватна.
- Средний сегмент (RX 7800 XT / 7900 GRE): 16 ГБ VRAM позволяют запускать более сложные модели или работать с большим контекстом. RX 7900 GRE — отличный баланс цены и производительности.
- Топовый сегмент (RX 7900 XTX): 24 ГБ VRAM открывают двери к моделям типа Mixtral 8x7B (в квантовании) или Llama-3-70B (в сильном квантовании Q2/Q3, но с медленной генерацией). Это единственная потребительская карта AMD, которая может тянуть «взр
Источник: источник (тест/офиц. документация) ↗