Principales ajouts fonctionnels

La version 1.0.0 introduit le support du format FP8 via OCP FP8 et deux nouvelles fonctions ggml_rope_set_truncate / ggml_rope_get_truncate permettant de contrôler la troncature YaRN. Ces ajouts ciblent la précision des calculs en phase d’inférence, notamment pour les modèles de grande taille où la réduction de précision réduit la bande passante mémoire. Le passage arrière du noyau TRI a également été implémenté, offrant la possibilité d’entraîner des modèles qui utilisent cette opération. Enfin, des tests de précision pour MUL_MAT src1 et un réglage de la précision d’accumulation via ggml_prec_set_acc renforcent la robustesse numérique du framework.

Optimisations backend CUDA et Metal

Sur CUDA, ggml 1.0.0 propose few‑row MMQ pour des tailles de lot de 2 à 24 et MMVF pour les matmuls BF16 à faible nombre de lignes, améliorant le débit sur des batchs courts. Le support FP8 s’étend à un gate/up matmul fusionné NVFP4, réduisant le nombre d’appels kernel. FlashAttention a été élargi avec une configuration sm70 pour une taille de tête de 256 et des tailles de MMA de 40/72, augmentant la capacité de traitement des têtes longues. Le scheduler MoE évite désormais les tuiles vides et linéarise le layout, ce qui diminue les latences de routage. Sur Metal, les opérations MoE sont fusionnées dans un même buffer de commande, et le noyau TRI a été converti en sélection, réduisant le nombre d’instructions GPU.

Extensions Vulkan, SYCL, OpenCL et WebGPU

Vulkan bénéficie d’un kernel Intel FlashAttention dédié au pré‑remplissage et d’une prise en charge du déquantisé KV avec CM2, de la troncature YaRN et de la division de tuiles large‑tile split‑K sur les drivers AMD RDNA3/4. De nouveaux shaders de transposition en tuiles et des kernels FWHT pour des largeurs de bloc supérieures à 512 ont été ajoutés. SYCL introduit un scheduler MoE côté dispositif, rendant possible le calcul asynchrone des caches MoE, et rend le cache FA de oneDNN thread‑safe. OpenCL propose une FlashAttention décomposée pour les GPU Adreno ainsi que des kernels GEMV multi‑colonne (q6_k, q8_0, f32/q5_k). WebGPU reçoit des kernels GROUP_NORM, MEAN, COUNT_EQUAL et PAD_REFLECT_1D, ainsi que la prise en charge de la troncature YaRN via l’API batched tensor.

Impact sur l’écosystème et limites

Le nettoyage de l’API publique, la suppression des ops DIAG_MASK_INF/DIAG_MASK_ZERO et le passage du protocole RPC à la version 9 renforcent la compatibilité inter‑processus, mais imposent une mise à jour obligatoire des pairs. Le scheduler évite désormais le téléchargement d’entrées inutilisées, ce qui réduit la pression sur la bande passante PCIe. Malgré ces améliorations, les notes de version ne fournissent pas de benchmarks chiffrés, ce qui empêche d’évaluer quantitativement le gain de performance sur chaque backend. Les développeurs devront donc mesurer localement les impacts selon leurs charges de travail spécifiques.