llama.cpp ReleasesAktualisiert

[Pre-release / Continuous-Build] b11430

[Pre-release / Continuous-Build] hexagon: Skalierungs-Updates für matmul und flash-atten (#29974) * hexagon: kopfparallele flash_attn-Partitionierung für row-split multicore Im row-split-Modus berechnet jeder Core seinen…

Pre-Release / Continuous-Build: Dies ist ein experimenteller Build, keine stabile Veröffentlichung.

hexagon: Skalierungs-Updates für matmul und flash-atten (#29974) * hexagon: kopfparallele flash_attn-Partitionierung für row-split multicore Im row-split-Modus berechnet jeder Core seinen Ausgabezeilen-Anteil jedes MUL_MAT, aber flash_attn partitionierte zuvor nach Q-Tokens (flacher qrow split) statt nach Köpfen. Dies zwang jeden Core, den vollständigen KV-Cache zu lesen (alle n_kv_heads), wodurch der Speicherbandbreiten-Vorteil von Multicore bei flash_attn zunichtegemacht wurde. Ändert sowohl die HMX- als auch die HVX-flash_attn-Kernels so, dass sie nach KV-Köpfen partitionieren, wenn n_kv_heads durch n_cores teilbar ist: Core i verarbeitet ausschließlich die Köpfe [i*n_kv_heads/N, (i+1)*n_kv_heads/N) und liest nur seinen Kopf-Anteil des KV-Caches. Fällt auf die ursprüngliche Token-Block- Aufteilung zurück, wenn n_kv_heads % n_cores != 0 (z. B. Gemma-4 mit 2 KV-Köpfen auf 4 Cores). Gesteuert durch GGML_HEXAGON_FA_HEAD_SPLIT (Standard 1 = aktiviert). Das Flag ist in Bit 1 des bestehenden is_dst_fp32-kparams- Bytes gepackt, um innerhalb des 128-Byte-kernel_params-Blob-Limits zu bleiben. Gemessene Gewinne bei 4c row-split (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: keine Änderung (MoE FFN dominiert, Fallback-Pfad) TG ist unverändert (flash_attn macht nur einen kleinen Anteil der Decode-Zeit im Verhältnis zu den matmul+barrier-Kosten pro Layer aus). * hex-fa: kern_params und head-split-Auswahl bereinigt * hex-fa: Option -fa-head-split zu run.py hinzugefügt * hex-mdev: matmul-Solver aktualisiert, um den reduzierten Arbeitsaufwand in row-split-Szenarien zu berücksichtigen * hex-mmid: bessere Arbeitsaufteilung nach expers in multi-dev-Szenarien * hex-fa: HMX-Gating basierend auf dem model/n-hvx/ctx-len-Sweep aktualisiert * hex-fa: softcap/scale auf dem Host vorberechnet * hexagon: matmul in 2d abgeflacht, um HMX in multi-sequence zu nutzen * hex-mm: kparams bereinigt und collapse auf 3/4D -> 2D-Mapping verwendet * hex-mm: Tippfehler im collapse-Fallback behoben * hex-mm: weiterer Durchlauf für konsistente Benennung der act-Tensoren * hex-mm: Unterstützung für das Zusammenfassen von Dimensionen in fused matmuls hinzugefügt * hex-build: WoS-Buildfehler behoben * hex-mm: sichergestellt, dass der dst stride in can_collapse erzwungen wird * hex-fa: Einzeiler-Commit für die head-split-Prüfung hinzugefügt * hex-fa: ungenutzte lokale Variable head_split entfernt * hex-fa: can_split-Prüfungen verschärft * hex-mm: unfused-Pfade aktualisiert, um act statt src1 zu verwenden * hex-mm: sichergestellt, dass alle dsts für die Aufteilung geprüft werden * hexagon: die zweite weight chunk-Adresse im batched HMX matmul-Prolog korrigiert * hexagon: F16-Aktivierung und ragged N im HMX matmul * hex-mm: die ragged/split-Prüfungen in mdev-Fällen verschärft * hex-mm: MM-Fusion für F16-Aktivierungen aktiviert * hex-mm: tiled sizes werden in fused-Pfaden an den Solver übergeben * hex-mmid: skalare Divisionen aus den expert mapping-Schleifen entfernt * hex-mmid: ordnungsgemäße Cacheline-Sicherheitsdurchsetzung für mdev-Splits * hex-mm: Solver für mdev split-Szenarien und Tail-Behandlung verbessert * hex-mm: redundante Prüfungen entfernt * hex-mm: behoben, dass fused HMX MUL_MAT_NX das letzte teilweise Tile bei quantisierten Gewichten verwirft * hex-mm: bessere Behandlung von ragged Shapes (entfernt das skalare memset von vtcm) --------- Co-authored-by: ebateni Co-authored-by: Jhen-Jie Hong Co-authored-by: Yiwei Shao

Website: - https://llama.app

Attestierungen: - https://github.com/ggml-org/llama.cpp/attestations/52957661

macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI aktiviert) DEAKTIVIERT - 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-Bibliotheken - Ubuntu x64 (CUDA 13) - CUDA-13.4-Bibliotheken - Ubuntu arm64 (CUDA 13) - CUDA-13.4-Bibliotheken - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - Setup-Anleitung

Android: - Android arm64 (CPU) - Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - Setup-Anleitung

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: - DISABLED - openEuler x86 (310p) - openEuler x86 (910b, ACL Graph) - openEuler aarch64 (310p) - openEuler aarch64 (910b, ACL Graph)

UI: - UI

Originalquelle

llama.cpp Releases

Hinweise zum Inhalt

Originalveröffentlichung und Rechte liegen bei der Quelle.

Maschinelle Übersetzung · Original beachten