]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
llama : per-layer KV cache + quantum K cache (#4309)
authorGeorgi Gerganov <redacted>
Thu, 7 Dec 2023 11:03:17 +0000 (13:03 +0200)
committerGitHub <redacted>
Thu, 7 Dec 2023 11:03:17 +0000 (13:03 +0200)
commitbcc0eb4591bec5ec02fad3f2bdcb1b265052ea56
tree5082f49b7cb13d8e4f08c14ecf436606a1ae2ff8
parent81bc9214a389362010f7a57f4cbc30e5f83a2d28
llama : per-layer KV cache + quantum K cache (#4309)

* per-layer KV

* remove unnecessary copies

* less code duplication, offload k and v separately

* llama : offload KV cache per-layer

* llama : offload K shift tensors

* llama : offload for rest of the model arches

* llama : enable offload debug temporarily

* llama : keep the KV related layers on the device

* llama : remove mirrors, perform Device -> Host when partial offload

* common : add command-line arg to disable KV cache offloading

* llama : update session save/load

* llama : support quantum K cache (#4312)

* llama : support quantum K cache (wip)

* metal : add F32 -> Q8_0 copy kernel

* cuda : add F32 -> Q8_0 copy kernel

ggml-ci

* cuda : use mmv kernel for quantum cache ops

* llama : pass KV cache type through API

* llama : fix build

ggml-ci

* metal : add F32 -> Q4_0 copy kernel

* metal : add F32 -> Q4_1 copy kernel

* cuda : wip

* cuda : add F32 -> Q4_0 and F32 -> Q4_1 copy kernels

* llama-bench : support type_k/type_v

* metal : use mm kernel only for quantum KV cache

* cuda : add comment

* llama : remove memory_f16 and kv_f16 flags

---------

Co-authored-by: slaren <redacted>
* readme : add API change notice

---------

Co-authored-by: slaren <redacted>
README.md
common/common.cpp
common/common.h
examples/llama-bench/llama-bench.cpp
examples/quantize-stats/quantize-stats.cpp
examples/server/server.cpp
ggml-cuda.cu
ggml-metal.m
ggml-metal.metal
llama.cpp
llama.h