Выпуск llama.cpp b9931 вводит оптимизацию OpenCL для предварительного заполнения Mixture of Experts (MoE), которая пропускает заполненные экспертные тайлы для повышения производительности.

  • Оптимизация группирует токены в тайлы размером TILESIZE_N=32 на эксперта и пропускает вторую половину вызова dotx16_reduce8, если верхние 16 слотов тайла полностью заполнены.
  • Она заменяет два вызова dotx16_reduce8 для половины тайла на четыре вызова dotx8_reduce4, позволяя независимо пропускать пустые группы хвостовых пропусков.
  • Функция управляется переменной окружения GGML_OPENCL_MOE_RAGGED_GRAN, которая принимает значения 8, 16 или 32 для гранулярности четверти, половины или выключения соответственно.
  • В выпуск включены бинарные файлы для macOS (Apple Silicon и Intel), Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA, Vulkan, OpenVINO, SYCL, HIP) и openEuler.

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