Запуск больших языковых моделей (LLM) на видеокартах AMD долгое время считался сложной задачей. В то время как NVIDIA с CUDA доминирует, владельцы Radeon часто сталкиваются с барьерами входа. Однако экосистема llama.cpp предлагает мощные бэкенды — HIP (ROCm) и Vulkan, которые позволяют выжать максимум из доступного VRAM. Разберем, как собрать софт, какие есть подводные камни и что реально работает.
01Выбор бэкенда: ROCm (HIP) против Vulkan
Для пользователей AMD есть два основных пути ускорения инференса. Первый — HIP (ROCm). Это нативный аналог CUDA для AMD, обеспечивающий высокую производительность, особенно на серверных картах и флагманских потребительских решениях. Второй — Vulkan. Он работает на более широком спектре устройств, включая старые карты и интегрированную графику, но часто уступает ROCm в скорости генерации токенов.
Важно понимать: выбор бэкенда определяется не только желанием, но и совместимостью. ROCm требует специфической версии Linux и совместимого GPU. Если ваша карта не входит в список поддерживаемых или вы используете Windows без WSL2 с глубокой интеграцией, Vulkan становится спасательным кругом.
HSA_OVERRIDE_GFX_VERSION).02Сборка llama.cpp с поддержкой GPU
Основой для работы является проект llama.cpp. Для начала необходимо клонировать репозиторий:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cppДля сборки с поддержкой AMD GPU (HIP/ROCm) или Vulkan, стандартная команда cmake -B build может не активировать нужные флаги автоматически, если не установлен соответствующий SDK. Для ROCm необходимо иметь установленный ROCm Toolkit. Для Vulkan — Vulkan SDK.
Пример сборки с явным указанием флагов (синтаксис может варьироваться в зависимости от версии CMake и проекта, но базовый принцип таков):
cmake -B build -DGGML_HIP=ON -DGGML_VULKAN=ON
cmake --build build --config ReleaseЕсли вы используете Vulkan, убедитесь, что драйверы обновлены. Vulkan-бэкенд в llama.cpp активно развивается и часто получает оптимизации быстрее, чем стабильные релизы ROCm для потребительских карт.
03Оптимизация и BLAS
Для ускорения обработки промптов (prompt processing) при больших батчах можно использовать BLAS. Для AMD CPU существует AOCL-BLAS (AMD Optimizing CPU Libraries). Однако для GPU-инференса ключевым фактором остается объем VRAM и пропускная способность памяти.
Обратите внимание на флаг -DGGML_NATIVE=ON. Он включает оптимизации под архитектуру вашего конкретного процессора, что может дать небольшой прирост производительности на CPU-части или при смешанном вычислении.
04Типичные ошибки и совместимость
Самая частая проблема — отсутствие совместимости версий ROCm и драйверов. На Linux это решается установкой пакетов из репозитория AMD. На Windows ситуация сложнее: нативная поддержка ROCm ограничена, и многие пользователи прибегают к WSL2, где настройка GPU-ускорения требует дополнительных шагов по пробросу устройства.
Еще одна ошибка — игнорирование параметра --n-gpu-layers. По умолчанию llama.cpp может попытаться загрузить все слои на GPU. Если VRAM не хватает, программа упадет с ошибкой OOM (Out Of Memory). Всегда контролируйте этот параметр, чтобы оставить запас памяти под контекст.
05Какое железо кому подойдёт
Выбор железа для AMD в России сейчас диктуется доступностью и соотношением цена/VRAM.
- Бюджетный сегмент: Базовые модели. Подходят для моделей среднего размера в квантовании. Vulkan будет основным бэкендом. Производительность инференса средняя, но для локального чат-бота достаточно.
- Средний сегмент: Более мощные карты. Подходят для моделей среднего и большого размера. ROCm работает стабильно на Linux. Это хороший выбор для энтузиастов.
- Профессиональный сегмент: AMD Instinct. Доступны на вторичном рынке или через аренду. Полная поддержка ROCm, высокая пропускная способность памяти. Идеально для продакшена, но требуют серверного оборудования и охлаждения.
В России купить новые Radeon последних поколений можно в крупных ритейлерах, цены варьируются от бюджетных вариантов до премиальных решений. Аренда GPU-инстансов с AMD встречается реже, чем с NVIDIA, но на некоторых платформах она появляется. Для большинства домашних пользователей связка llama.cpp + Vulkan/ROCm является наиболее сбалансированным решением для запуска LLM без зависимости от NVIDIA.
Источник: источник (тест/офиц. документация) ↗