Релиз llama.cpp b10858 внедряет слияние ядер Vulkan для соседних операций активации UNARY (GELU, SIGMOID, SILU, SOFTPLUS) и MUL. Эта оптимизация восстанавливает падение скорости обработки промпта на 10-18% за счёт устранения избыточных обращений к памяти и ветвлений во время выполнения.
- Слиянные конвейеры обрабатывают GELU, SIGMOID, SILU и SOFTPLUS с MUL, используя специализированные SPIR-V шейдеры для f32 и f16.
- Оптимизатор графов теперь планирует слиянные пары даже тогда, когда они разделены узлами без вычислений, такими как VIEW или RESHAPE, расширяя поддержку до паттернов, встречающихся в моделях вроде Gemma4.
- Поддержка слияния OP-on-B позволяет применять активации к меньшему операнду MUL, обеспечивая эффективное управление затворами в архитектурах с общими экспертами.
- Тесты бэкенда охватывают новые форматы данных, включая 'gate' и 'view_mid', для проверки корректности при различных формах тензоров.
Изменение значительно улучшает задержку вывода для моделей, сильно полагающихся на механизмы управления затворами активации, за счёт снижения вычислительных накладных расходов в бэкенде Vulkan.