Pré-version / build continu : il s'agit d'un build expérimental, pas d'une version stable.
hexagon : mises à jour de scalabilité pour matmul et flash-atten (#29974) * hexagon : partitionnement de flash_attn parallèle par têtes pour multicœur en row-split En mode row-split, chaque cœur calcule sa part de lignes de sortie de chaque MUL_MAT, mais flash_attn était auparavant partitionné par tokens Q (split qrow plat) au lieu de l'être par têtes. Cela forçait chaque cœur à lire l'intégralité du cache KV (tous les n_kv_heads), annulant le bénéfice de bande passante mémoire du multicœur sur flash_attn. Modifier les noyaux flash_attn HMX et HVX pour partitionner par têtes KV lorsque n_kv_heads est divisible par n_cores : le cœur i traite exclusivement les têtes [i*n_kv_heads/N, (i+1)*n_kv_heads/N), ne lisant que sa part de têtes du cache KV. Retour au split par blocs de tokens d'origine lorsque n_kv_heads % n_cores != 0 (p. ex. Gemma-4 avec 2 têtes KV sur 4 cœurs). Contrôlé par GGML_HEXAGON_FA_HEAD_SPLIT (défaut 1 = activé). Le drapeau est compacté dans le bit 1 de l'octet kparams is_dst_fp32 existant pour rester dans la limite de 128 octets du blob kernel_params. Gains mesurés en row-split à 4 cœurs (PP t/s, ubatch=1024) : Qwen3-0.6B : 6977 -> 11026 (+58 %) llama-3.2-3B : 3717 -> 5522 (+49 %) Qwen3.5-4B : 2739 -> 2855 (+4 %) Gemma-4 MoE : aucun changement (le FFN MoE domine, chemin de repli) TG est inchangé (flash_attn ne représente qu'une faible fraction du temps de décode par rapport au coût matmul+barrière par couche). * hex-fa : nettoyage de kern_params et de la sélection du head-split * hex-fa : ajout de l'option -fa-head-split à run.py * hex-mdev : mise à jour du solveur matmul pour prendre en compte la charge réduite dans les scénarios row-split * hex-mmid : meilleur découpage du travail par experts dans les scénarios multi-dev * hex-fa : mise à jour du gating HMX sur la base du balayage modèle/n-hvx/ctx-len * hex-fa : précalcul de softcap/scale sur l'hôte * hexagon : aplatissage de matmul en 2D pour utiliser HMX en multi-séquence * hex-mm : nettoyage de kparams et utilisation du mapping de repli 3/4D -> 2D * hex-mm : correction d'une coquille dans le repli de collapse * hex-mm : nouvelle passe de nommage cohérent pour les tenseurs act * hex-mm : ajout de la prise en charge du repli des dimensions dans les matmuls fusionnés * hex-build : correction des erreurs de build WoS * hex-mm : veiller à imposer le pas de dst dans can_collapse * hex-fa : ajout d'une ligne de commit pour la vérification du head-split * hex-fa : suppression de la variable locale head_split inutilisée * hex-fa : resserrage des vérifications can_split * hex-mm : mise à jour des chemins non fusionnés pour utiliser act au lieu de src1 * hex-mm : veiller à vérifier tous les dst pour le split * hexagon : correction de l'adresse du second chunk de poids dans le prologue du matmul HMX par lots * hexagon : activations F16 et N irrégulier dans le matmul HMX * hex-mm : resserrage des vérifications ragged/split dans les cas mdev * hex-mm : activation de la fusion MM pour les activations F16 * hex-mm : passage des tailles tuilées au solveur dans les chemins fusionnés * hex-mmid : suppression des divisions scalaires des boucles de mapping d'experts * hex-mmid : application correcte de la sécurité de cacheline pour les splits mdev * hex-mm : amélioration du solveur pour les scénarios de split mdev et la gestion des queues * hex-mm : suppression des vérifications redondantes * hex-mm : correction du fait que le MUL_MAT_NX HMX fusionné perdait la dernière tuile partielle pour les poids quantisés * hex-mm : meilleure gestion des formes irrégulières (suppression du memset scalaire de vtcm) --------- Co-authored-by : ebateni Co-authored-by : Jhen-Jie Hong Co-authored-by : Yiwei ShaoSite web : - https://llama.app
Attestations : - https://github.com/ggml-org/llama.cpp/attestations/52957661
macOS/iOS : - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI activé) DÉSACTIVÉ - macOS Intel (x64) - XCFramework iOS
Linux : - Ubuntu x64 (CPU) - Ubuntu arm64 (CPU) - Ubuntu s390x (CPU) - Ubuntu x64 (Vulkan) - Ubuntu arm64 (Vulkan) - Ubuntu x64 (CUDA 12) - Bibliothèques CUDA 12.8 - Ubuntu x64 (CUDA 13) - Bibliothèques CUDA 13.4 - Ubuntu arm64 (CUDA 13) - Bibliothèques CUDA 13.4 - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon : CPU, GPU Adreno, NPU Hexagon) - guide d'installation
Android : - Android arm64 (CPU) - Android arm64 (Snapdragon : CPU, GPU Adreno, NPU Hexagon) - guide d'installation
Windows : - Windows x64 (CPU) - Windows arm64 (CPU) - Windows arm64 (OpenCL Adreno) - Windows x64 (CUDA 12) - DLLs CUDA 12.4 - Windows x64 (CUDA 13) - DLLs CUDA 13.4 - Windows arm64 (CUDA 13) - DLLs CUDA 13.4 - Windows x64 (Vulkan) - Windows arm64 (Vulkan) - Windows x64 (OpenVINO) - Windows x64 (SYCL) - Windows x64 (ROCm 10.0)
openEuler : - DISABLED - openEuler x86 (310p) - openEuler x86 (910b, ACL Graph) - openEuler aarch64 (310p) - openEuler aarch64 (910b, ACL Graph)
UI : - UI