Запуск больших языковых моделей (LLM) на видеокартах AMD долгое время считался «темным лесом» по сравнению с экосистемой NVIDIA. Однако благодаря проекту llama.cpp и его бэкендам ROCm (HIP) и Vulkan, инференс на Radeon стал реальностью. Разберем, как правильно собрать софт, какие флаги использовать и чего ждать от производительности.
01Сборка llama.cpp для AMD: ROCm и Vulkan
Основой для работы с AMD-железом служит библиотека llama и примеры к ней. Для начала необходимо получить исходный код:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cppДля AMD есть два основных пути ускорения: HIP (ROCm) для нативной поддержки карт серии RX и Radeon Pro, и Vulkan как кроссплатформенный бэкенд. Выбор зависит от вашей ОС и версии драйвера.
Сборка с поддержкой ROCm (HIP)
ROCm — это прямой аналог CUDA для AMD. Он обеспечивает лучшую производительность, но требует строгой совместимости с Linux (обычно Ubuntu 22.04/24.04 или RHEL) и установленным пакетом ROCm Toolkit. Флаг сборки выглядит так:
cmake -B build -DGGML_HIP=ON
cmake --build build --config ReleaseЕсли вы используете дистрибутивы, где ROCm установлен не по умолчанию, убедитесь, что переменные окружения инициализированы. Для Intel-процессоров с поддержкой AVX-VNNI можно использовать oneMKL, но для GPU это не применимо — там нужен SYCL или HIP.
Сборка с поддержкой Vulkan
Vulkan-бэкенд часто проще в настройке, так как не требует специфичных драйверов ROCm, а опирается на стандартные Vulkan-драйверы (Mesa). Это хороший вариант для Windows или старых версий Linux, где ROCm «не встает».
cmake -B build -DGGML_VULKAN=ON
cmake --build build --config Release-DGGML_NATIVE=OFF (полезно для CUDA, но логика применима и к кросс-компиляции) бинарник будет работать на всех GPU, но может требовать JIT-компиляции при первом запуске. Для AMD ROCm это может замедлить первый инференс. Всегда проверяйте совместимость вашей карты с версией ROCm.02VRAM и производительность: что реально получить
В отличие от NVIDIA, где есть четкие ориентиры по VRAM для каждой модели, на AMD важно учитывать не только объем, но и пропускную способность памяти. Карты серии RX 7000 часто выигрывают у старых моделей NVIDIA в задачах инференса за счет более высокой пропускной способности на ватт, хотя у H100/A100 они все равно уступают.
Типичные сценарии использования VRAM:
- Малые модели: Требуют минимального объема VRAM. Потянет любая карта с достаточным объемом памяти.
- Средние модели: Требуют карты с увеличенным объемом памяти.
- Большие модели: Требуются карты высокого уровня или профессиональные решения, часто в мульти-GPU режиме.
| Железо (AMD) | Модель (пример) | VRAM (мин.) | Примечание |
|---|---|---|---|
| Radeon RX 7900 XTX | 70B (Q4) | 24 ГБ (нужно 2x или offload CPU) | Лучший потребительский выбор для больших моделей |
| Radeon RX 6700 XT | 13B (Q4) | 8 ГБ | Бюджетный вход в инференс |
| Radeon Pro W7900 | 70B (Q4) | 48 ГБ | Одна карта для 70B без компромиссов |
03Грабли и типичные ошибки
- Ошибка совместимости ROCm: ROCm официально поддерживает только определенные версии Linux и карты серии RDNA2/3. Если вы используете RX 6000 серии на Windows, нативный ROCm не заработает. Используйте Vulkan.
- Недостаток VRAM: llama.cpp позволяет offload слоев на CPU, но это резко снижает скорость. Если VRAM не хватает, модель начнет работать заметно медленнее.
- Отсутствие BLAS: Для ускорения обработки промптов (prompt processing) рекомендуется включать BLAS. Для AMD это не критично для генерации, но полезно для длинных контекстов.
--n-gpu-layers -1 (или максимальное число слоев), чтобы перенести всю модель на GPU. Если слоев больше, чем позволяет VRAM, оставшиеся будут вычислены на CPU, что создаст узкое место.04Какое железо кому подойдёт
Выбор AMD-железа для ИИ в РФ сейчас диктуется доступностью и ценой. NVIDIA H100/A100 недоступны легально и стоят космических денег, а RTX 4090 — это дорого и с ограничениями по экспорту.
- Бюджетный сегмент: Radeon RX 6600/6650 XT. Подойдет для моделей до 7B-8B параметров. Vulkan-бэкенд будет работать стабильнее.
- Средний сегмент: Radeon RX 7700 XT / 7800 XT. Отличный баланс для моделей 13B-14B. ROCm на Linux даст максимальную скорость.
- Топовый потребительский: Radeon RX 7900 XTX. Позволяет запускать 70B-модели с квантованием Q4, если использовать две карты или смириться с частичным offload на CPU. Это лучший выбор для энтузиасто
Источник: источник (тест/офиц. документация) ↗
