llama.cpp b9455: KV-Cache-Fix für --sm tensor auf Multi-GPU gemergt
Mit Build b9455 schließt llama.cpp eine bekannte Lücke im Multi-GPU-Betrieb: Die gleichzeitige Nutzung von `--sm tensor` (Tensor-Split über mehrere GPUs) und quantisiertem KV-Cache führte bislang zu Fehlern, weil das Abflachen von Tensoren für die KV-Cache-Rotation Forminformationen zerstörte, mit denen das Meta-Backend nicht umgehen konnte. Contributor JohannesGaessler löste das Problem nicht durch Anpassung der Compute-Graphen – was gebatche Matrix-Multiplikationen schlechter unterstützt hätte –, sondern durch eine Erweiterung der ggml-internen Datenstruktur `ggml_backend_meta_split_state`. Diese erhält nun ein Feld, das angibt, wie oft ein Segment wiederholt wird. Dadurch kann das Meta-Backend nach einem Reshape die korrekte Datenlayout-Information wiederherstellen, ohne dass Änderungen an den llama.cpp-Compute-Graphen nötig sind. Frühere PRs hatten versucht, das Problem durch veränderte KV-Cache-Rotations-Shapes zu lösen, was jedoch als unerwünschter Workaround gilt. Der Fix ist im offiziellen Release b9455 auf GitHub unter ggml-org/llama.cpp verfügbar.
- Fix betrifft explizit die Kombination --sm tensor + quantisierter KV-Cache auf Multi-GPU-Setups.
- Kernänderung: ggml_backend_meta_split_state wird um einen Wiederholungszähler für Segmente erweitert.
- Keine Änderungen an llama.cpp-Compute-Graphen erforderlich – der Fix liegt vollständig im Meta-Backend.
- Frühere Lösungsansätze über veränderte KV-Cache-Rotations-Shapes wurden bewusst verworfen, da batched MatMuls teils schlechter unterstützt werden.
- Veröffentlicht als offizieller Release-Tag b9455 im Repository ggml-org/llama.cpp.
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.
Verwandte Beiträge
llama.cpp b9455: KV-Cache-Fix für --sm tensor auf Multi-GPU gemergt
Mit Build b9455 schließt llama.cpp eine bekannte Lücke im Multi-GPU-Betrieb: Die gleichzeitige Nutzung von `--sm tensor` (Tensor-Split über mehrere GPUs) und quantisiertem KV-Cache führte bislang zu Fehlern, weil das Abflachen von Tensoren für die KV-Cache-Rotation Forminformationen zerstörte, mit denen das Meta-Backend nicht umgehen konnte. Contributor JohannesGaessler löste das Problem nicht durch Anpassung der Compute-Graphen – was gebatche Matrix-Multiplikationen schlechter unterstützt hätte –, sondern durch eine Erweiterung der ggml-internen Datenstruktur `ggml_backend_meta_split_state`. Diese erhält nun ein Feld, das angibt, wie oft ein Segment wiederholt wird. Dadurch kann das Meta-Backend nach einem Reshape die korrekte Datenlayout-Information wiederherstellen, ohne dass Änderungen an den llama.cpp-Compute-Graphen nötig sind. Frühere PRs hatten versucht, das Problem durch veränderte KV-Cache-Rotations-Shapes zu lösen, was jedoch als unerwünschter Workaround gilt. Der Fix ist im offiziellen Release b9455 auf GitHub unter ggml-org/llama.cpp verfügbar.
- Fix betrifft explizit die Kombination --sm tensor + quantisierter KV-Cache auf Multi-GPU-Setups.
- Kernänderung: ggml_backend_meta_split_state wird um einen Wiederholungszähler für Segmente erweitert.
- Keine Änderungen an llama.cpp-Compute-Graphen erforderlich – der Fix liegt vollständig im Meta-Backend.
- Frühere Lösungsansätze über veränderte KV-Cache-Rotations-Shapes wurden bewusst verworfen, da batched MatMuls teils schlechter unterstützt werden.
- Veröffentlicht als offizieller Release-Tag b9455 im Repository ggml-org/llama.cpp.
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.