Проект llama.cpp объединил шаблоны слияния операций бэкенда Metal в единую таблицу, общую для оптимизатора графа и кодировщиков операций. Это изменение также устраняет ошибку в абсолютных выходных индексах, которая вызывала регрессию скорости генерации токенов на ~5%.

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

Эти обновления улучшают поддерживаемость кода за счёт унификации логики слияния и восстанавливают потери производительности, вызванные скрытыми отказами слияния в предыдущих версиях.