ik_llama.cpp ускоряет обработку промптов Qwen 3.5 в 26 раз
Форк llama.cpp от ikawrakow добился 26-кратного ускорения prompt processing для Qwen 3.5 через фьюзинг CUDA-ядер. Разбираемся как.
43 токена в секунду против 1 122 — такую разницу показал форк llama.cpp при обработке промптов Qwen 3.5. Разница в 26 раз, и она не связана с новым железом.
Что произошло
Разработчик под ником ikawrakow создал ik_llama.cpp — форк популярного движка для локального запуска языковых моделей. Проект набрал 1.9 тысячи звёзд на GitHub и уже стал стандартным выбором для тех, кто запускает Qwen 3.5 локально.
Ключевая оптимизация — фьюзинг ядер (kernel fusion) для архитектуры Gated Delta Network, которую использует Qwen 3.5. В оригинальном llama.cpp вычисления разбиваются на 34 узла графа с постоянным переключением между CPU и GPU. ik_llama.cpp сокращает это до 2 узлов, перенося всю работу на видеокарту.
Результат на тестовом стенде (Xeon W-2295, RTX PRO 4000 Blackwell, Qwen 3.5 27B Q4_K_M):
- Prompt processing: 43 → 1 122 токена/с (26x)
- Генерация: 7.5 → 26 токенов/с (3.5x)
- CPU при инференсе: все ядра загружены → простаивает
- GPU: частичная загрузка → 100%
Почему это важно
У Qwen 3.5 есть архитектурная особенность, которая раздражает пользователей: модель полностью пересчитывает промпт при каждом новом повороте диалога. На обычном llama.cpp это означало минуты ожидания на длинных контекстах. С ik_llama.cpp задержка сжимается до секунд — и модель становится практически пригодной для агентных задач в реальном времени.
Форк работает как drop-in замена оригинального llama.cpp с тем же OpenAI-совместимым API. Предсобранные бинарники уже доступны для Windows (CUDA 12.8) и Linux.
