Le projet llama.cpp a publié la version b10751, qui introduit un noyau fusionné pour la réduction pondérée des experts MoE (Mixture of Experts) sur CUDA. Cette optimisation remplace le précédent point de référence qui exécutait deux noyaux physiques par un seul noyau de réduction pondérée afin de réduire les transferts intermédiaires vers la mémoire globale.
- Le noyau fusionné gère k=2..15 experts via un unique runtime-k kernel, prenant en charge à la fois les graphiques de pondération des experts non mis à l'échelle et mis à l'échelle.
- Il correspond aux séquences d'opérations structurelles, formes, pas de mémoire et chaînes ADD de gauche à droite tout en maintenant le même ordre de réduction.
- L'intégration de l'allocation garantit que les experts, les poids du routeur et les échelles optionnelles restent actifs jusqu'à ce que la destination fusionnée soit écrite.
- Les graphiques non reconnus ou dangereux basculent vers le chemin par-opération existant, qui peut être désactivé via GGML_CUDA_MOE_WEIGHTED_REDUCTION=0.
Cette amélioration optimise les performances des modèles MoE sur CUDA en minimisant l'utilisation de la bande passante mémoire lors de la phase de combinaison des experts.