O lançamento do llama.cpp b9931 introduz uma otimização do OpenCL para o pré-preenchimento de Mixture of Experts (MoE) que ignora os tiles de especialistas preenchidos para melhorar o desempenho.
- A otimização agrupa tokens em tiles por especialista com TILESIZE_N=32 e ignora a segunda metade da chamada dotx16_reduce8 quando as 16 posições superiores do tile são todas preenchidas.
- Ela substitui duas chamadas dotx16_reduce8 de meia-tile por quatro chamadas dotx8_reduce4, permitindo o salto independente de grupos de saltos vazios no final.
- O recurso é controlado pela variável de ambiente GGML_OPENCL_MOE_RAGGED_GRAN, que aceita os valores 8, 16 ou 32 para granularidade de quarto, metade ou desligado, respectivamente.
- O lançamento inclui binários para macOS (Apple Silicon e Intel), Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA, Vulkan, OpenVINO, SYCL, HIP) e openEuler.
Esta otimização permite que os usuários reduzam o cálculo em dados preenchidos em modelos MoA por meio das configurações da nova variável de ambiente.