Квантование llama.cpp Q8_0 получает ускорение в 3.1 раза на видеокартах Intel Arc благодаря исправлению переупорядочивания в SYCL.

Исправление для оптимизации производительности SYCL-бэкенда llama.cpp обеспечивает значительное ускорение работы Q8_0-квантованных моделей на видеокартах Intel Arc. Исправление устраняет проблему с паттерном доступа к памяти, которая ограничивала производительность Q8_0 всего 21% от теоретической пропускной способности.
Проблема производительности и её причина
На видеокарте Intel Arc Pro B70 с 32 ГБ GDDR6 и пропускной способностью 608 ГБ/с модели Q8_0 работали со скоростью всего 4,88 токенов/сек, в то время как Q4_K_M достигала 20,56 токенов/сек. Этот 4-кратный разрыв в производительности был неожиданным, учитывая, что Q8_0 содержит всего в 1,7 раза больше данных, чем Q4_K_M.
После исключения проблем с давлением на видеопамять, драйверами и самим бэкендом, расследование выявило узкое место в пути диспетчеризации SYCL-ядра llama.cpp. SYCL-бэкенд включает оптимизацию "reorder", которая разделяет коэффициенты масштабирования квантования и данные весов для согласованного доступа к памяти GPU. Эта оптимизация была реализована для квантований Q4_0, Q4_K и Q6_K, но Q8_0 так и не был добавлен в фреймворк reorder.
Блоки Q8_0 размером 34 байта (не являющиеся степенью двойки) делали нереорганизованный макет особенно неэффективным для производительности кэша GPU.
Исправление и результаты
Решение потребовало около 200 строк кода для расширения существующего фреймворка reorder для поддержки Q8_0. Самая критическая ошибка заключалась в одной строке: тензорам Q8_0 не выделялась структура "extra" во время инициализации буфера, из-за чего флаг reorder никогда не устанавливался.
Результаты для Qwen3.5-27B (Intel Arc Pro B70):
- Q8_0 до исправления: 4,88 т/с (21% пропускной способности)
- Q8_0 после исправления: 15,24 т/с (66% пропускной способности) — в 3,1 раза быстрее
- Q4_K_M: 20,12 т/с (без изменений)
- Q6_K: 13,83 т/с (без reorder)
С этим исправлением Q8_0 теперь превосходит Q6_K (15,24 против 13,83 токенов/сек), обеспечивая при этом более высокое качество, чем низкобитные квантования.
Проверка и реализация
Перед внедрением исправления команда применила бинарный патч к закрытому исходному коду Intel IPEX-LLM для запуска на GPU B70 (который официально не поддерживается по его PCI device ID). Их оптимизированные ядра Q8_0 достигли 61% пропускной способности, подтвердив, что проблема решаема. Реализация с открытым исходным кодом в llama.cpp достигает 66% пропускной способности.
Исправление было отправлено в виде pull request в репозиторий llama.cpp.
📖 Read the full source: r/LocalLLaMA
👀 Смотрите также

OpenClaw запускает BotsChat: родной чат-инструмент, революционизирующий коммуникацию агентов.
OpenClaw представляет BotsChat, новый нативный инструмент чата, предназначенный для улучшения общения между AI-кодирующими агентами. Узнайте, как этот инструмент может оптимизировать ваши процессы автоматизации.

Платформа Claude на AWS теперь общедоступна: нативный опыт Anthropic через IAM, CloudTrail и AWS Billing
AWS объявила о GA платформы Claude на AWS, предоставляя разработчикам прямой доступ к нативному опыту Anthropic Claude через существующие аккаунты AWS с аутентификацией IAM, биллингом AWS и логированием CloudTrail — но пользовательские данные обрабатываются за пределами границ безопасности AWS.

Результаты AIME 2026: открытые и закрытые модели набирают выше 90%
ИИ-модели достигают 90%+ на AIME 2026, при этом DeepSeek V3.2 проходит весь тест всего за bash.09.

Rust спасет Linux от ИИ: Грег Кроа-Хартман об ошибках C и гарантиях безопасности Rust
Мейнтейнер стабильного ядра Linux Грег Кроа-Хартман утверждает, что Rust устраняет 60% ошибок ядра на этапе компиляции, решая проблему потока обнаруженных ИИ уязвимостей, таких как Dirty Frag и Fragnesia.