Rilis llama.cpp b9931 memperkenalkan optimisasi OpenCL untuk prefill Mixture of Experts (MoE) yang melewati tile ahli berpadding untuk meningkatkan kinerja.

  • Optimisasi ini mengelompokkan token menjadi tile per-ahli dengan TILESIZE_N=32 dan melewati separuh dotx16_reduce8 kedua ketika 16 slot teratas dari sebuah tile semuanya adalah padding.
  • Ini mengganti dua panggilan dotx16_reduce8 half-tile dengan empat panggilan dotx8_reduce4, memungkinkan pelewatan independen dari kelompok lewati kosong di akhir.
  • Fitur ini dikontrol oleh variabel lingkungan GGML_OPENCL_MOE_RAGGED_GRAN, yang menerima nilai 8, 16, atau 32 untuk granularitas seperempat, setengah, atau mati secara berurutan.
  • Rilis ini mencakup biner untuk macOS (Apple Silicon dan Intel), Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA, Vulkan, OpenVINO, SYCL, HIP), dan openEuler.

Optimisasi ini memungkinkan pengguna mengurangi komputasi pada data berpadding dalam model MoE melalui pengaturan variabel lingkungan baru.