Проект llama.cpp объединил шаблоны слияния операций бэкенда Metal в единую таблицу, общую для оптимизатора графа и кодировщиков операций. Это изменение также устраняет ошибку в абсолютных выходных индексах, которая вызывала регрессию скорости генерации токенов на ~5%.
- Все слиянные шаблоны операций теперь объявляются один раз в ggml-metal-fuse.cpp, обеспечивая согласованность между фазами оптимизации и вычислений.
- Исправление абсолютных индексов узлов графа предотвращает некорректную проверку счётчика использования для последнего узла слиянных шаблонов, восстанавливая слияние norm/MUL.
- Новая поддержка позволяет ядрам gating_delta_net сливаться с операциями копирования кэша, записывая снимки напрямую в буфер KV-кэша.
- Флаг слияния 'raw' переименован в 'unsafe', чтобы подчеркнуть, что специфичные для шаблона обратные вызовы служат единственным валидатором безопасности.
- Новый ad-hoc API предоставляет независимые от бэкенда статистические данные о слиянии для тестирования, включая набор регрессионных тестов, сравнивающий логиты при слиянии и без него через NMSE.
Эти обновления улучшают поддерживаемость кода за счёт унификации логики слияния и восстанавливают потери производительности, вызванные скрытыми отказами слияния в предыдущих версиях.