Проект llama.cpp выпустил сборку b10751, которая вводит объединённое ядро для взвешенного снижения экспертов MoE (Mixture of Experts) на CUDA. Эта оптимизация заменяет предыдущую базовую реализацию, выполнявшую два физических ядра, одним ядром взвешенного снижения, чтобы уменьшить промежуточный трафик в глобальной памяти.

  • Объединённое ядро обрабатывает k=2..15 экспертов через одно runtime-k ядро, поддерживая как немасштабированные, так и масштабированные графы взвешивания экспертов.
  • Оно соответствует структурным последовательностям операций, формам, шагам и цепочкам ADD слева направо, сохраняя тот же порядок снижения.
  • Интеграция с аллокатором гарантирует, что эксперты, веса маршрутизатора и необязательные масштабы остаются активными до записи в объединённое назначение.
  • Нераспознанные или небезопасные графы возвращаются к существующему пути per-op, который можно отключить через GGML_CUDA_MOE_WEIGHTED_REDUCTION=0.

Это изменение улучшает производительность моделей MoE на CUDA за счёт минимизации использования пропускной способности памяти во время фазы объединения экспертов.