Релиз llama.cpp b10956 внедряет алгоритм radix select для бэкенда SYCL, чтобы обрабатывать большие значения k в операции TOP_K, которая ранее переключалась на CPU при k > 32. Это изменение позволяет обрабатывать большие k непосредственно на GPU, используя проходы на основе гистограммы, которые сохраняют объём используемой разделяемой локальной памяти независимым от k.
- Новая реализация поддерживает значения k до 2048 и более, устраняя лишние обращения к бэкенду для таких операций, как индексатор разреженного внимания qwen4exp.
- Улучшения производительности включают ускорение в 4.98 раза при ne=[131072,1] с k=2048 и до 118 раз более быстрое выполнение в определённых конфигурациях батчей по сравнению с переключением на CPU.
- Сквозное тестирование на 3x Arc Pro B60 с Qwen3.8-Flash-Next показывает увеличение пропускной способности с 5.91 до 6.05 t/s при d=131072, при этом перплексия остаётся неизменной.
- Релиз включает бинарные файлы для macOS, Linux, Windows, Android и openEuler для бэкендов CPU, CUDA, ROCm, Vulkan, OpenVINO и SYCL.
Это обновление обеспечивает эффективное выполнение операций top_k с большими k на устройствах SYCL, предотвращая узкие места в производительности моделей, которым требуются высокие значения k для выбора токенов.