La versión llama.cpp b9931 introduce una optimización de OpenCL para el prellenado de Mixture of Experts (MoE) que omite los tiles de expertos rellenos para mejorar el rendimiento.

  • La optimización agrupa tokens en tiles por experto con TILESIZE_N=32 y omite la segunda mitad de dotx16_reduce8 cuando las 16 posiciones superiores del tile son todas relleno.
  • Reemplaza dos llamadas a dotx16_reduce8 de media-tile por cuatro llamadas a dotx8_reduce4, permitiendo el salto independiente de grupos de saltos vacíos al final.
  • La función se controla mediante la variable de entorno GGML_OPENCL_MOE_RAGGED_GRAN, que acepta los valores 8, 16 o 32 para granularidad de cuarto, mitad o desactivado respectivamente.
  • El lanzamiento incluye binarios para macOS (Apple Silicon e Intel), Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA, Vulkan, OpenVINO, SYCL, HIP) y openEuler.

Esta optimización permite a los usuarios reducir el cómputo en datos rellenos en modelos MoE mediante la configuración de la nueva variable de entorno.