Квантование 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
👀 Смотрите также

Xiaomi открыла исходный код MiMo-V2.5-Pro: приближается к Claude Opus 4.6 по бенчмаркам кодинга
Xiaomi выпустил MiMo-V2.5-Pro — модель с открытым исходным кодом, которая набрала 233/233 на университетском проекте компилятора, самостоятельно создала видеоредактор и занимает место в 1% от Claude Opus 4.6 по бенчмаркам SWE-Bench и Terminal-Bench.

AI-центровая платформа SwitchBot готова к интеграции OpenClaw для улучшенной автоматизации умного дома.
AI Hub от SwitchBot скоро получит значительное обновление с интеграцией OpenClaw. Этот шаг обещает улучшенные возможности автоматизации и более умное управление домом.

Папа Лев XIV «Величественное человечество»: Энциклика на 40 000 слов о разоружении в сфере ИИ
Папа Лев XIV выпускает Magnifica Humanitas, энциклику из 40 000 слов, призывающую к разоружению ИИ, критикующую автономное оружие, колониализм данных и технологические монополии. Сооснователь Anthropic присутствовал на презентации.

DeepSeek-V4 Pro и Flash: 1,6 трлн параметров, контекст в 1 млн токенов, гибридное внимание
DeepSeek-V4-Pro (1,6 трлн параметров, 49 млрд активных) и V4-Flash (284 млрд параметров, 13 млрд активных) поддерживают контекст в 1 млн токенов. Новое гибридное внимание (CSA + HCA) снижает FLOPs при инференсе одного токена до 27% и KV-кэш до 10% от DeepSeek-V3.2.