llama.cpp 프로젝트가 빌드 b10751을 출시했으며, 이는 CUDA에서 MoE(Mixture of Experts)의 가중 전문가 축적에 대한 통합 커널을 도입합니다. 이 최적화는 이전의 두 개의 물리적 커널을 실행하던 기본값을 단일 가중 축적 커널로 대체하여 중간 전역 메모리 트래픽을 줄입니다.
- 통합 커널은 하나의 런타임-k 커널을 통해 k=2..15명의 전문가를 처리하며, 비스케일 및 스케일된 전문가 가중 그래프를 모두 지원합니다.
- 동일한 축적 순서를 유지하면서 구조적 연산 시퀀스, 모양, 스트라이드 및 좌우 ADD 체인을 일치시킵니다.
- 할당자 통합은 통합 대상이 작성될 때까지 전문가, 라우터 가중치 및 선택적 스케일이 활성 상태로 유지되도록 보장합니다.
- 인식되지 않거나 안전하지 않은 그래프는 기존 연산별 경로로 폴백되며, GGML_CUDA_MOE_WEIGHTED_REDUCTION=0을 통해 비활성화할 수 있습니다.
이 변경사항은 전문가 결합 단계 중 메모리 대역폭 사용을 최소화하여 CUDA의 MoE 모델 성능을 향상시킵니다.