Пользовательский бэкенд llama.cpp переносит матричное умножение LLM на NPU AMD XDNA2 в процессорах Ryzen AI MAX 385

Пользовательский бэкенд для выгрузки на NPU AMD XDNA2
Разработчик создал пользовательский бэкенд llama.cpp, который отправляет операции GEMM напрямую на NPU AMD XDNA2 в Ryzen AI MAX 385 (Strix Halo). Этот подход позволяет избежать использования iGPU и конфликтов в общей памяти.
Конфигурация оборудования и программного обеспечения
Модель: Meta-Llama-3.1-8B-Instruct Q4_K_M
Оборудование: Ryzen AI MAX 385, CachyOS 6.19, драйвер amdxdna, XRT 2.21.75
Результаты производительности
- Vulkan предзаполнение + NPU декодирование: 930 t/s предзаполнение (pp512), 43,7 t/s декодирование (tg64), средняя мощность 41,5 Вт, 0,947 Дж/токен
- Только Vulkan: 833 t/s предзаполнение, 41,6 t/s декодирование, средняя мощность 52,2 Вт, 1,3 Дж/токен
- Только CPU: 4,6 t/s предзаполнение, 3,76 t/s декодирование
Путь декодирования через NPU экономит примерно 10 Вт по сравнению с использованием только Vulkan, при этом сохраняя (и даже немного превосходя) пропускную способность декодирования, поскольку iGPU остается свободным для других задач.
Технологический стек
- Ядра: mlir-aie xclbins (Xilinx/mlir-aie, Apache 2.0)
- Динамическая отправка: XRT 2.21.75
- Основа: Форк ggml-org/llama.cpp (MIT)
- Маршрутизация ядер: 4 слота xclbin, покрывающих различные тайлы K-измерения, с маршрутизацией MIN_N/MAX_N для выбора подходящего ядра во время выполнения
Исследование потолка производительности
Разработчик пытался превысить показатель 43,7 t/s декодирования с помощью нескольких подходов:
- Перебор пакетов N=1..64: Улучшений нет (плоская производительность)
- Int4 двойное квантование: Убило SNR (44,8 → 19,7 дБ) - тупиковый путь
- Каскадная выгрузка: Исключена документацией AMD
- Спекулятивное декодирование с черновиком Llama-3.2-1B: 44% принятия, 212 t/s черновик, но нулевой эффективный прирост
Отсутствие улучшений от спекулятивного декодирования (которое обычно дает прирост при 44% принятия) указывает на то, что узким местом является пропускная способность LPDDR5, а не вычисления. NPU уже упирается в ограничение памяти, что делает 43,7 t/s потолком для этой модели на данном оборудовании.
Ссылки на проект
- GitHub: https://github.com/BrandedTamarasu-glitch/OllamaAMDNPU
- Журнал изменений: https://brandedtamarasu-glitch.github.io/OllamaAMDNPU/xdna-npu/
Проект был создан с помощью Claude Sonnet 4.6 / Claude Code, что раскрыто для целей воспроизводимости. Разработчик ищет отзывы от других пользователей, работающих на Strix Halo или Phoenix с драйвером amdxdna, чтобы сравнить пропускную способность декодирования на сопоставимых квантованиях и определить, сталкиваются ли другие конфигурации XDNA2 с тем же потолком производительности.
📖 Read the full source: r/LocalLLaMA
👀 Смотрите также

Сервер MCP с открытым исходным кодом превращает Claude в автономного литературного агента для запросов к издателям
Узел агентской публикации — это MCP-сервер, позволяющий Клоду автоматически сверять рукописи с вишлистами литературных агентов, генерировать письма-запросы, форматировать по стандарту Шанна и вести журнал питчей — и всё это из локальных markdown-файлов.

Коллекция пользовательских стилей вывода для Claude Code
Разработчик создал 13 пользовательских стилей вывода для Claude Code, которые изменяют поведение ИИ через системные промпты. Стили включают Roast для жёсткой критики кода, Socratic для наводящих вопросов, Breaker для враждебного тестирования, Ship It для прагматичных решений, Paranoid для фокуса на безопасности и TDD для разработки через тестирование.

Markdown Manager: Простой редактор Markdown для macOS
Markdown Manager — это бесплатное и открытое приложение для macOS, предназначенное для управления файлами Markdown и обладающее возможностями конвертации и предварительного просмотра документов.

js-notepad: Скриптуемый блокнот со встроенным MCP-сервером для кода Claude
js-notepad — это бесплатное приложение с открытым исходным кодом для создания скриптуемых блокнотов, разработанное с помощью Claude Code. Оно включает встроенный MCP-сервер, позволяющий Claude Code напрямую взаимодействовать с приложением для чтения/записи страниц, выполнения скриптов, создания задач и отправки результатов.