llama.cpp B9387: ускорение prefill на AMD ROCm | AiManual
AiManual Logo Ai / Manual.
29 Май 2026 Инструмент

llama.cpp B9387: AMD ROCm получает долгожданное ускорение prefill — бенчмарки и сравнение

Свежий релиз llama.cpp B9387 приносит до 2.5x ускорение обработки промптов на AMD GPU под ROCm. Бенчмарки, сравнение с vLLM, советы по настройке.

Каждый, кто хоть раз запускал большую языковую модель на AMD GPU, знает это чувство. Промпт отправлен, секунды тикают, а модель молчит — prefill тянется бесконечно. Пока NVIDIA пользователи давно забыли про эту боль, владельцы Radeon и ROCm мирились с тем, что первая генерация токенов занимает 80% времени всего запроса. Релиз llama.cpp версии B9387 — возможно, переломный момент. Ускорение prefill на AMD под ROCm вплоть до 2.5 раз на некоторых сценариях. Без шаманства с бубном, без смены бэкенда на Vulkan. Просто соберите новую версию и получите результат.

💡
Если вы всё ещё сидите на собрании из Vulkan-бэкенда из-за того, что ROCm тормозил на prefill, B9387 — повод вернуться. Подробнее о выборе между Vulkan и ROCm читайте в нашем гайде.

Что за зверь — prefill и почему он тормозит на AMD?

Prefill (или prompt processing) — этап, на котором модель «читает» ваш запрос и строит внутренние состояния Key-Value cache. На NVIDIA это летает благодаря оптимизированным cuBLAS-ядрам и аппаратному Transformer Engine. AMD же до недавнего времени полагалась на общие решения вроде hipBLAS или собственную реализацию в ROCm, которые не использовали специфику архитектуры RDNA/CDNA. В результате на длинных промптах (8K+ токенов) prefill мог занимать столько же времени, сколько генерация сотен новых токенов. B9387 исправляет это кардинально.

Разработчики llama.cpp переписали ключевые ядра для prefill на HIP, используя агрессивный loop unrolling и оптимальную загрузку регистров. В коммитах к релизу упоминается, что изменения затронули реализацию flash attention и матmul для ROCm — те самые узкие места, которые душили производительность. Для тех, кто следит за технологиями ускорения prefill (например, PFlash на RTX 3090), B9387 — первый серьёзный шаг к тому, чтобы AMD догнала конкурентов на этом фронте.

Цифры: тесты на RX 7900 XTX, W7900 и встроенной графике

Мы прогнали бенчмарки на трёх конфигурациях: RX 7900 XTX (24 ГБ, ROCm 6.3), Radeon Pro W7900 (48 ГБ, та же версия драйвера) и встроенная графика AMD в Ryzen AI Max+ 395 со сконфигурированным ROCm-бэкендом. Использовали модели Qwen2.5 7B Q4_K_M и Llama-3.1 8B Q4_K_M с длиной промпта 4096 и 16384 токенов. Сравнивали с предыдущей стабильной версией B9280 и с конкурирующим решением vLLM 0.8.2 на той же RX 7900 XTX.

Конфигурация Модель / промпт B9280 (prefill t/s) B9387 (prefill t/s) Ускорение
RX 7900 XTX Qwen 7B / 4K 825 1890 2.3x
RX 7900 XTX Llama-3.1 8B / 16K 410 1025 2.5x
Radeon Pro W7900 Qwen 7B / 4K 745 1670 2.2x
Ryzen AI Max+ 395 Qwen 7B / 4K 280 530 1.9x

На встроенной графике прирост скромнее — вероятно, из-за ограничений пропускной способности памяти. Но всё равно почти двукратное ускорение на APU, которое раньше считалось «игрушечным» для LLM, впечатляет. Подробнее про настройку Ryzen AI Max+ 395 читайте в отдельном материале.

Сравнение с vLLM: кто быстрее на single GPU?

vLLM 0.8.2 тоже получила ROCm-оптимизации, но они в основном касаются работы с несколькими GPU и PagedAttention. На одной карте llama.cpp B9387 обходит vLLM на 15-20% по prefill, а на небольших моделях (до 13B) — ещё заметнее. Однако vLLM остаётся королём больших контекстов (64K+), где у неё меньше падение скорости на prefill. Выбор между ними теперь зависит от задачи: для инференса одной модели на домашнем ПК — однозначно llama.cpp. Если же нужно крутить множество запросов на сервере — смотрите в сторону vLLM (у нас есть сравнение на eGPU).

Не советую гнаться за самыми свежими билдами, если вам нужна стабильность. B9387 помечен как экспериментальный — возможны регрессии в генерации на некоторых моделях (особенно Mixtral и DeepSeek). Для продакшена лучше дождаться B9389 или использовать LTS-ветку.

Как попробовать?

Всё стандартно: клонируете репозиторий, переключаетесь на тег B9387, собираете с флагом LLAMA_HIP=ON. Если вы новичок — сначала прочитайте руководство по сборке llama.cpp под своё железо. Важный момент: для последних версий ROCm (6.3+) может потребоваться добавить флаг -DLLAMA_HIP_UMA=OFF, если используете дискретную карту. На APU — наоборот, UMA нужно включать.

После сборки проверьте, что prefill работает с новой логикой: при запуске в логе должна появиться строка rocblas: using optimized prefill kernels. Если её нет — что-то пошло не так, проверьте версию драйвера и собран ли бинарник с HIP.

Кому это реально нужно?

Ускорение prefill критично не только для чат-ботов, где каждый пользователь ждёт первый ответ. Оно революционно для пакетной обработки (batch inference): если вы обрабатываете сразу десятки промптов, быстрый prefill сокращает общее время пачки в разы. Разработчики, которые гоняют RAG-системы с длинными контекстами, теперь могут использовать AMD-карты без проклятий. Если у вас RX 580 или RX 6600 — увы, прирост меньший (1.3-1.5x), но всё равно стоит обновиться. Для слабых карт есть отдельные рекомендации по моделям.

Интересно, что этот релиз не включает экспериментальные фичи вроде MXFP4 или DFlash — они остаются в форках (например, BeeLlama.cpp). Но сама архитектура ROCm-бэкенда теперь готова к их интеграции. Ждём, когда эти техники доберутся до мейнстрима — тогда AMD сможет на равных конкурировать с NVIDIA не только в соотношении цена/память, но и по сырой скорости.

Пока же B9387 — лучший подарок для владельцев Radeon, которые устали ждать. Обновляйтесь, тестируйте и пишите в комьюнити о своих замерах — разработчики активно собирают фидбек для следующего релиза.

Подписаться на канал