llama.cpp b9931 릴리스는 성능을 개선하기 위해 패딩된 전문가 타일을 건너뛰는 Mixture of Experts (MoE) prefill에 대한 OpenCL 최적화를 도입했습니다.

  • 이 최적화는 토큰을 TILESIZE_N=32의 전문가별 타일로 그룹화하고 타일의 상위 16개 슬롯이 모두 패딩인 경우 두 번째 dotx16_reduce8 하프를 건너뜁니다.
  • 이는 두 개의 half-tile dotx16_reduce8 호출을 네 개의 dotx8_reduce4 호출로 대체하여 빈 후행 스킵 그룹의 독립적인 스킵을 가능하게 합니다.
  • 이 기능은 GGML_OPENCL_MOE_RAGGED_GRAN 환경 변수에 의해 제어되며, 각각 1/4, 1/2, 끄기 세분성을 위해 값 8, 16, 32를 허용합니다.
  • 릴리스에는 macOS (Apple Silicon 및 Intel), Linux (CPU, Vulkan, ROCm, OpenVINO, SYCL), Android, Windows (CPU, CUDA, Vulkan, OpenVINO, SYCL, HIP), openEuler에 대한 바이너리가 포함되어 있습니다.

이 최적화를 통해 사용자는 새로운 환경 변수 설정을 통해 MoE 모델의 패딩된 데이터에 대한 계산을 줄일 수 있습니다.