llama.cpp: Asymmetrischer KV-Cache q8/q4 kostet nur 1,3 % Präzision
In der llama.cpp-Community ist seit Längerem bekannt, dass asymmetrische KV-Cache-Quantisierungen – also Kombinationen wie -ctk q8_0 -ctv q4_0 statt symmetrischer Paare – unter CUDA dazu führen, dass die Prompt-Verarbeitung auf die CPU ausweicht und die Tokens-per-Second (PPS) drastisch einbrechen. GitHub-User sanmai hat nun ein kleines Eval in der GGML-Diskussion #23470 veröffentlicht, das diesen Trade-off konkret beziffert: Der Präzisionsverlust durch q8/q4 gegenüber f16/f16 beträgt lediglich 1,3 %, während der Speicherbedarf auf weniger als die Hälfte sinkt. Als Workaround wurde bisher cmake -DGGML_CUDA_FA_ALL_QUANTS=ON empfohlen, was jedoch sehr lange Compile-Zeiten mit sich bringt. Sanmais Vorschlag, die jeweilige KV-Cache-Quant-Kombination gezielt ohne FA_ALL_QUANTS in die Kompilierung einzubeziehen, könnte einen schlanken Fix darstellen. Die Diskussion thematisiert außerdem manuelle Anpassungen am CUDA-Quellcode von llama.cpp als weiteren Lösungsweg.
- Gemischte Quant-Kombination -ctk q8_0 -ctv q4_0 fällt unter CUDA auf CPU-Prompt-Processing zurück (PPS-Einbruch).
- Eval von sanmai (GitHub, GGML-Diskussion #23470): q8/q4 spart >50 % Speicher vs. f16/f16.
- Präzisionsverlust laut Eval: nur 1,3 % gegenüber der f16/f16-Baseline.
- Bisheriger Workaround cmake -DGGML_CUDA_FA_ALL_QUANTS=ON verursacht sehr lange Compile-Zeiten.
- Vorgeschlagener Fix: Quant-Kombination selektiv ohne FA_ALL_QUANTS in Kompilierung einbinden.
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.
Verwandte Beiträge
llama.cpp: Asymmetrischer KV-Cache q8/q4 kostet nur 1,3 % Präzision
In der llama.cpp-Community ist seit Längerem bekannt, dass asymmetrische KV-Cache-Quantisierungen – also Kombinationen wie -ctk q8_0 -ctv q4_0 statt symmetrischer Paare – unter CUDA dazu führen, dass die Prompt-Verarbeitung auf die CPU ausweicht und die Tokens-per-Second (PPS) drastisch einbrechen. GitHub-User sanmai hat nun ein kleines Eval in der GGML-Diskussion #23470 veröffentlicht, das diesen Trade-off konkret beziffert: Der Präzisionsverlust durch q8/q4 gegenüber f16/f16 beträgt lediglich 1,3 %, während der Speicherbedarf auf weniger als die Hälfte sinkt. Als Workaround wurde bisher cmake -DGGML_CUDA_FA_ALL_QUANTS=ON empfohlen, was jedoch sehr lange Compile-Zeiten mit sich bringt. Sanmais Vorschlag, die jeweilige KV-Cache-Quant-Kombination gezielt ohne FA_ALL_QUANTS in die Kompilierung einzubeziehen, könnte einen schlanken Fix darstellen. Die Diskussion thematisiert außerdem manuelle Anpassungen am CUDA-Quellcode von llama.cpp als weiteren Lösungsweg.
- Gemischte Quant-Kombination -ctk q8_0 -ctv q4_0 fällt unter CUDA auf CPU-Prompt-Processing zurück (PPS-Einbruch).
- Eval von sanmai (GitHub, GGML-Diskussion #23470): q8/q4 spart >50 % Speicher vs. f16/f16.
- Präzisionsverlust laut Eval: nur 1,3 % gegenüber der f16/f16-Baseline.
- Bisheriger Workaround cmake -DGGML_CUDA_FA_ALL_QUANTS=ON verursacht sehr lange Compile-Zeiten.
- Vorgeschlagener Fix: Quant-Kombination selektiv ohne FA_ALL_QUANTS in Kompilierung einbinden.
Frag die KI zum Artikel
Folgefragen zu Headline, Quelle und Volltext — Antwort streamt in wenigen Sekunden.