В России, где доступ к облачным NVIDIA H100/A100 ограничен или дорог, локальный инференс больших языковых моделей (LLM) становится критически важной задачей. Видеокарты AMD Radeon, благодаря открытому стеку ROCm и поддержке Vulkan в таких фреймворках, как llama.cpp, предлагают альтернативу NVIDIA. Но есть нюансы: от версии драйверов до архитектуры памяти. Разберем, как собрать софт, какие модели «потянут» и где скрыты подводные камни.
01Сборка llama.cpp для AMD: ROCm и Vulkan
Основой для локального запуска большинства современных LLM (Llama 3, Mistral, Qwen) является библиотека llama.cpp. Она поддерживает несколько бэкендов для AMD: HIP (прямой аналог CUDA для ROCm) и Vulkan (универсальный, работает на более старых картах и в Linux/Windows без глубокой интеграции с ROCm).
Для начала получим код:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cppСборка через HIP (ROCm)
Это основной путь для современных карт серии RX 6000/7000 и профессиональных Instinct. Требуется установленный ROCm toolkit. Для Linux (Ubuntu/Fedora) это часто требует настройки репозиториев AMD. Общая инструкция сборки через CMake:
cmake -B build
cmake --build build --config ReleaseОбратите внимание: ROCm официально лучше всего работает на Linux. На Windows поддержка через WSL2 или нативный HIP улучшается, но может требовать дополнительных шагов по настройке переменных окружения.
Сборка через Vulkan
Vulkan-бэкенд часто проще в установке, так как не требует специфичных драйверов ROCm, а использует стандартные Vulkan-драйверы (Mesa для Linux, AMDGPU-Pro для Windows). Это хороший fallback, если ROCm «не встает».
cmake -B build
cmake --build build --config Release02Железо, VRAM и производительность
Главный ограничитель при инференсе — объем видеопамяти (VRAM). Модель хранит веса в формате GGUF (квантованные). Чем меньше битность, тем меньше VRAM, но может страдать качество.
Ниже приведена сводная таблица ориентировочных требований и производительности для популярных моделей при запуске на AMD (данные агрегированы из тестов сообщества для llama.cpp на ROCm/Vulkan). Цифры могут варьироваться в зависимости от поколения GPU (RDNA2/RDNA3) и скорости памяти.
| Железо (AMD) | Модель (квантование) | VRAM (примерно) | Скорость (токенов/с) |
|---|---|---|---|
| Потребительские карты среднего класса | Средние модели (8B) | Значительная часть памяти | Заметно быстрее базовых решений |
| Потребительские карты высокого класса | Крупные модели (70B) | Требует многоканальной памяти или нескольких карт | Умеренная скорость (зависит от конфигурации) |
| Потребительские карты высокого класса | Специализированные модели (MoE) | Требует 2 карт или CPU offload | Сниженная скорость при offload на CPU |
| Профессиональные решения (Instinct) | Крупные модели (70B) | Полностью помещается в память | Высокая производительность |
Ключевой момент: В отличие от NVIDIA, где CUDA cores работают синхронно, AMD ROCm/Vulkan могут иметь особенности при передаче данных. Для моделей, которые не помещаются в VRAM полностью, часть слоев будет выгружаться в системную память (RAM). Это резко снижает скорость, но позволяет запускать огромные модели на потребительских картах.
03Типичные ошибки и совместимость
- Отсутствие поддержки на Windows. ROCm на Windows все еще находится в стадии активной разработки. Многие пользователи сталкиваются с ошибками при запуске HIP-бэкенда. Решение: использовать WSL2 (Ubuntu) или переключиться на Vulkan-бэкенд, который работает стабильнее на Windows.
- Старые карты. ROCm официально поддерживает карты с архитектурой RDNA 2 (RX 6000) и новее, а также профессиональные Instinct. RX 5000 и старше могут работать только через Vulkan, но с низкой эффективностью.
- Ошибка «Out of Memory». Даже если VRAM хватает «впритык», система может не запуститься из-за накладных расходов графического драйвера. Всегда оставляйте запас памяти.
04Какое железо кому подойдёт
Выбор зависит от бюджета и задач:
- Бюджетный старт: Б/у карты с 8GB памяти. Подойдут для моделей 7B-13B в квантовании Q3/Q4. Vulkan-бэкенд. Скорость будет умеренной, но для чата достаточно.
- Оптимальный баланс: Карты с 12-16 ГБ памяти. Позволяют комфортно запускать модели среднего размера с запасом. ROCm (Linux) или Vulkan (Windows).
- Продвинутый уровень: Карты с 24GB памяти. Позволяют запускать модели до 30B-34B полностью в VRAM. Для 70B+ потребуется offload на CPU или вторая карта.
Источник: источник (тест/офиц. документация) ↗