llama.cpp Releases

[Pré-lancement / build continu] b11463

[Pré-lancement / build continu] sycl : accélérer le pré-fill de GLM MLA avec MKL flash attention (#29171) * sycl : accélérer le pré-fill de GLM MLA avec MKL flash attention GLM-4.7 Flash utilise une forme MLA avec 576…

Build pré-lancement / build continu : il s’agit d’un build expérimental, pas d’une version stable.

sycl : accélérer le préchargement de GLM MLA avec MKL flash attention (#29171) * sycl : accélérer le préchargement de GLM MLA avec MKL flash attention Le GLM-4.7 Flash utilise une forme MLA avec 576 têtes Q/K de largeur, une tête V de 512 de largeur, GQA 20 et F16 KV. Le SYCL dispatcher rejette cette forme car la porte de flash-attention MKL normale nécessite des largeurs également de K/V et limite la dimension de la tête à 512, ce qui fait que le traitement du prompt retourne au noyau TILE, qui est considérablement plus lent. Avec seulement les formes valides 576/576/512, GQA-20 F16 sont acceptées dans le pipeline MKL existant. Toutes les autres formes K/V inadaptées restent sur leurs chemins de fallback actuels. Gérer la cache V de GLM comme une vue stridée plus étroite des lignes K. Sélectionner le descripteur stridé F16 lorsque l’épaisseur de ligne est ajoutée, et aliéner les buffers de déquantisation K/V uniquement lorsque leurs largeurs logiques coïncident. Restreindre l’exception du stride à une vue V réelle partageant le stride des lignes K. Ajouter le test exact du backend de prompt-path 576/512, GQA-20. Sur un Intel Arc Pro B70 à l’adresse master e613ef2, le pp8192 s’améliore de 432.80 à 1292.29 tok/s (2.99x, +198.6%). Le tg256 reste inchangé dans les bruit, à 45.67 contre 45.65 tok/s. Le test MLA exact passe et l’output de débogage confirme le dépôt MKL. * sycl : stocker les scores d’attention flash MKL en F16 Conserver la sortie QK GEMM en F16 plutôt qu’en F32. Le softmax en ligne convertit toujours chaque score en F32 pour son maximum, son exponent et sa somme, de sorte que les calculs par élément restent inchangés, à l’exception du arrondi des scores. La matrice F32 était écrite uniquement pour être utilisée comme des probabilités F16. La matrice de score F32 est la plus grande donnée intermédiaire de flash-attention sur cette voie ; la stocker en F16 réduit son taille et sa consommation de bande passante. Cela repose sur les charges softmax coalescées provenant de 1aa2954bd, qui lisent chaque ligne de score de manière collaborative, si bien que le type de données plus petit est bénéfique. Mesuré sur un Intel Arc Pro B70 avec les paramètres du commit précédent : -ngl 999 -b 4096 -ub 1024 -ctk f16 -ctv f16 -fa : pp8192 1583.9 -> 1657.1 tok/s (+4.6%) pp64000 610.0 -> 684.5 tok/s (+12.2%) pp131072 ~354 -> 402.1 tok/s (+13.5%) tg256 à un contexte de 8k reste inchangé (32.64), et l’ensemble FLASH_ATTN_EXT ne montre aucune nouvelle erreur. Les cas de backend GLM MLA exacts passent avec succès en tenant compte de la CPU. Ajustez le chiffre de base de ~354 si vous préférez mentionner uniquement les paires mesurées (le point de 131k basé uniquement sur la distribution provient de la version maintenue équivalente). Optionnellement, ajoutez Assisted-by : conformément aux directives de contribution, car l’IA a contribué à cette modification. * Retourner “sycl: stocker les scores d’attention flash MKL dans F16” Cela retombe le commit 265f9748164dc88e02678425b75f520ccd528b32.

Site web : - https://llama.app

Attestations : - https://github.com/ggml-org/llama.cpp/attestations/53529269

macOS/iOS : - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI activé) DÉSACTIVÉ - macOS Intel (x64) - iOS XCFramework

Linux : - Ubuntu x64 (CPU) - Ubuntu arm64 (CPU) - Ubuntu s390x (CPU) - Ubuntu x64 (Vulkan) - Ubuntu arm64 (Vulkan) - Ubuntu x64 (CUDA 12) - CUDA 12.8 bibliothèques - Ubuntu x64 (CUDA 13) - CUDA 13.4 bibliothèques - Ubuntu arm64 (CUDA 13) - CUDA 13.4 bibliothèques - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon : CPU, Adreno GPU, Hexagon NPU) - guide de configuration

Android : - Android arm64 (CPU) - Android arm64 (Snapdragon : CPU, Adreno GPU, Hexagon NPU) - guide de configuration

Windows : - Windows x64 (CPU) - Windows arm64 (CPU) - Windows arm64 (OpenCL Adreno) - Windows x64 (CUDA 12) - CUDA 12.4 DLLs - Windows x64 (CUDA 13) - CUDA 13.4 DLLs - Windows arm64 (CUDA 13) - CUDA 13.4 DLLs - Windows x64 (Vulkan) - Windows arm64 (Vulkan) - Windows x64 (OpenVINO) - Windows x64 (SYCL) - Windows x64 (ROCm 10.0)

openEuler : - DÉACTIFÉ - openEuler x86 (310p) - openEuler x86 (910b, ACL Graph) - openEuler aarch64 (310p) - openEuler aarch64 (910b, ACL Graph)

UI : - UI

Source originale

llama.cpp Releases

À propos du contenu

La publication originale et les droits appartiennent à la source.

Traduction automatique · Consultez l’original