ROCm 7.14 приносит официальную поддержку интегрированной графики Radeon 780M (gfx1103) в llama.cpp. Это значит, что iGPU в процессорах AMD Ryzen теперь может работать с нативным бэкендом ROCm, а не только через Vulkan. Наш тест на Ryzen 7 260 с 64 ГБ DDR5 показал: для плотной модели Qwen 3.8 27B Q8 скорость обработки промптов выросла примерно на 50% по сравнению с Vulkan, 97 против 66 токенов/сек на контексте 8192.
Для MoE-моделей картина иная. На Qwen 3.6 35B A3B Q8 разница в prefill незначительна, а в генерации токенов Vulkan часто обгоняет ROCm. Плюс есть нюанс: прекомпилированные бинарники llama.cpp не включают цель сборки gfx1103, поэтому придётся собирать движок из исходников. Процесс проще, чем для CUDA, но требует отключения некоторых параметров ядра, включая amdgpu.gttsize, из-за конфликтов с унифицированной памятью.
В этой статье разберём, как подготовить систему, собрать llama.cpp с поддержкой ROCm для Radeon 780M, какие цифры мы получили в тестах и когда стоит выбирать ROCm, а когда Vulkan.
Что нового в ROCm 7.14 для Radeon 780M?
До появления ROCm 7.14 пользователи интегрированной графики AMD запускали модели в llama.cpp преимущественно через Vulkan. Это работало, но с ограничениями: prefill на плотных моделях упирался в производительность API, а часть оптимизаций ROCm оставалась недоступной. Теперь gfx1103 официально поддерживается в ROCm, и llama.cpp может использовать нативный бэкенд на iGPU Radeon 780M.
Ключевой момент: официальная поддержка есть в исходниках, но не в прекомпилированных бинарниках. Разработчики не включают цель сборки gfx1103 в стандартные релизы, поэтому пользователю нужно компилировать llama.cpp самостоятельно. Это не баг, а осознанное решение, связанное с размером бинарников и разнообразием архитектур AMD.
Практическая ценность обновления в том, что Radeon 780M теперь может использовать те же оптимизации ROCm, что и дискретные карты. Для владельцев мини-ПК, ноутбуков и компактных систем на Ryzen это открывает путь к более быстрому инференсу без покупки отдельного GPU.
Сборка llama.cpp с поддержкой ROCm для Radeon 780M
Сборка llama.cpp с ROCm для gfx1103 проще, чем аналогичный процесс для CUDA. Вам не нужно ставить проприетарный драйвер NVIDIA и возиться с cuDNN. Достаточно установить ROCm 7.14, базовые зависимости и указать цель сборки при компиляции.
Общий порядок действий:
- Установите ROCm 7.14 согласно официальной документации AMD для вашего дистрибутива.
- Убедитесь, что пакеты hipblas, rocblas и сопутствующие библиотеки установлены.
- Склонируйте репозиторий llama.cpp и переключитесь на ветку с поддержкой ROCm 7.14.
- Запустите cmake с указанием цели gfx1103 и включённым HIP.
- Соберите проект командой make или cmake --build.
Пример команды сборки:
cmake -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1103 -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j$(nproc)Если вы раньше собирали llama.cpp для Vulkan, процесс покажется знакомым. Отличие в том, что для Vulkan не нужно указывать архитектуру GPU, а для ROCm нужно явно задать gfx1103. Ошибки чаще всего возникают из-за несоответствия версий ROCm и драйвера ядра, поэтому проверьте, что оба компонента обновлены до совместимых версий.
Необходимые параметры ядра для стабильной работы
Интегрированная графика использует системную память через механизм GTT (Graphics Translation Table). Параметр ядра amdgpu.gttsize управляет размером этой области, и его стандартное значение может конфликтовать с тем, как ROCm работает с унифицированной памятью. В результате возможны зависания, падения производительности или ошибки выделения памяти.
Для стабильной работы ROCm на Radeon 780M отключите этот параметр. В загрузчике GRUB добавьте в строку параметров ядра:
amdgpu.gttsize=0Либо через systemd-boot в конфигурационном файле. После изменения параметров перезагрузите систему. Учтите, что отключение amdgpu.gttsize может повлиять на другие приложения, которые активно используют iGPU через стандартный графический стек. В наших тестах на Ryzen 7 260 с 64 ГБ DDR5 система оставалась стабильной, но на конфигурациях с меньшим объёмом памяти стоит проверить поведение графического окружения отдельно.
Тестовая конфигурация и методика
Все замеры проводились на одной системе, чтобы исключить влияние разного железа:
- Процессор: AMD Ryzen 7 260
- Память: 64 ГБ DDR5
- Графика: интегрированная Radeon 780M (gfx1103)
- ОС: Linux, свежий дистрибутив с ядром, поддерживающим ROCm 7.14
- Движок: llama.cpp, собранный из исходников с поддержкой ROCm и Vulkan
- Модели: Qwen 3.8 27B Q8 (плотная), Qwen 3.6 35B A3B Q8 (MoE)
- Контекст: 8192 токена
Метрики: скорость prefill (обработка промпта) и скорость генерации токенов. Каждый замер повторялся несколько раз, в таблицах приведены усреднённые значения. Квантование Q8 выбрано как компромисс между качеством и размером модели, который помещается в системную память с запасом для кэша.
Результаты: ROCm против Vulkan на плотных моделях
Для Qwen 3.8 27B Q8 ROCm показал значительное преимущество в prefill. На контексте 8192 токенов скорость обработки промпта составила 97 токенов/сек против 66 токенов/сек у Vulkan. Прирост около 50%.
| Бэкенд | Prefill, токенов/сек | Генерация, токенов/сек |
|---|---|---|
| ROCm | 97 | сопоставима или чуть ниже Vulkan |
| Vulkan | 66 | базовый уровень |
Почему это важно: prefill критичен для сценариев с длинными промптами, большими системными инструкциями или обработкой документов. Если вы загружаете в модель 8000 токенов контекста, каждая секунда prefill напрямую влияет на время до первого токена. Ускорение с 66 до 97 токенов/сек сокращает ожидание примерно на треть.
Скорость генерации на плотной модели у ROCm и Vulkan оказалась сопоставимой. В некоторых прогонах Vulkan был чуть быстрее, в других ROCm. Разница не превышала погрешности измерений. Это ожидаемо: генерация на iGPU упирается в пропускную способность системной памяти, а не в вычислительные возможности бэкенда.
Результаты: ROCm против Vulkan на MoE-моделях
Для Qwen 3.6 35B A3B Q8 разница между ROCm и Vulkan в prefill оказалась незначительной. Оба бэкенда обрабатывали промпт с близкой скоростью, иногда Vulkan выходил вперёд. В генерации токенов Vulkan часто обгонял ROCm.
Причина в архитектуре MoE. Модель с 35 млрд параметров, но только 3 млрд активных, создаёт другую нагрузку: больше операций с памятью и меньше плотных вычислений. ROCm выигрывает на плотных матричных операциях, которые доминируют в prefill плотных моделей. MoE-модели меньше зависят от этого, поэтому преимущество ROCm нивелируется.
Для MoE на iGPU Vulkan остаётся рабочим вариантом. Он не требует отключения параметров ядра, работает из коробки и в генерации часто быстрее. Если ваша основная модель - MoE, переход на ROCm может не дать практического выигрыша.
Практические рекомендации: когда выбирать ROCm, а когда Vulkan?
Выбор бэкенда зависит от типа модели и сценария использования:
- Плотные модели с длинными промптами: ROCm. Прирост prefill до 50% ощутимо ускоряет обработку больших контекстов.
- MoE-модели: Vulkan. Разница в prefill минимальна, а генерация часто быстрее.
- Простота и стабильность: Vulkan. Работает без сборки из исходников и без изменения параметров ядра.
- Максимальная производительность prefill: ROCm, но с готовностью к дополнительной настройке системы.
Если вы уже используете Vulkan и довольны скоростью, переходить на ROCm ради генерации смысла нет. Если же вы часто обрабатываете длинные документы или используете плотные модели с большим системным промптом, ROCm даст заметный выигрыш.
Для тех, кто работает с дискретными картами AMD, полезно посмотреть наш разбор запуска Qwen 3.6 35B A3B на Radeon RX 7600, где мы разбирали похожие оптимизации для дискретного GPU. А если интересует ускорение prompt processing в llama.cpp под ROCm, обратите внимание на разбор PR с приростом до 15% и ускорением Q2_K в 28 раз.
Ограничения и подводные камни
Radeon 780M использует системную память. Это значит, что объём доступной памяти для модели ограничен общим объёмом RAM, а пропускная способность ниже, чем у дискретных GPU с GDDR6. Модели на 27B и 35B в квантовании Q8 занимают десятки гигабайт, и на системах с 32 ГБ RAM или меньше могут не поместиться вместе с кэшем и операционной системой.
Отключение amdgpu.gttsize решает проблему стабильности ROCm, но может повлиять на графическое окружение. Если вы используете тот же iGPU для вывода на экран, проверьте, что после изменения параметра ядра рабочий стол и приложения работают корректно. В наших тестах на 64 ГБ DDR5 проблем не возникло, но на меньших объёмах памяти возможны нюансы.
Результаты тестов привязаны к конкретной конфигурации: Ryzen 7 260, 64 ГБ DDR5, Linux с ROCm 7.14. На других процессорах, объёмах памяти или версиях драйверов цифры могут отличаться. Относительная разница между ROCm и Vulkan, вероятно, сохранится, но абсолютные значения стоит проверять на своём железе.
Для сравнения с другим APU, мы тестировали Gemma 4 и Qwen 3.6 MoE на AMD 6800H с Vulkan. Там картина похожая: MoE-модели на встроенной графике работают адекватно, но упираются в память.
Заключение: стоит ли переходить на ROCm для Radeon 780M?
ROCm 7.14 в llama.cpp даёт владельцам Radeon 780M реальный прирост prefill на плотных моделях. Для Qwen 3.8 27B Q8 мы зафиксировали ускорение на 50% по сравнению с Vulkan. Это сокращает время ожидания при работе с длинными промптами и большими контекстами.
Цена перехода: сборка из исходников и отключение amdgpu.gttsize. Процесс проще, чем для CUDA, но требует базовых навыков работы с Linux и cmake. Для MoE-моделей выигрыш не очевиден, а в генерации Vulkan часто быстрее.
Практический вывод: если вы работаете с плотными моделями и длинными промптами на iGPU Radeon 780M, переход на ROCm оправдан. Если ваша основная нагрузка - MoE-модели или вам важна простота, Vulkan остаётся разумным выбором. Перспективы ROCm для интегрированной графики выглядят позитивно: официальная поддержка gfx1103 открывает путь к дальнейшим оптимизациям, которые со временем могут сократить разрыв и в генерации токенов.