handle SWA conflicting with rewind, increased default SWA padding.

This commit is contained in:
Concedo
2026-04-16 17:00:26 +08:00
parent 0251c6dbde
commit ae292c496e
5 changed files with 72 additions and 37 deletions
+6
View File
@@ -12,6 +12,7 @@
//
//kcpp: use a global flag to adjust swa padding
static int kcpp_extra_swa_padding = 0;
static int kcpp_active_swa_size = 0;
llama_kv_cache_iswa::llama_kv_cache_iswa(
const llama_model & model,
@@ -55,6 +56,9 @@ llama_kv_cache_iswa::llama_kv_cache_iswa(
size_swa += 128;
size_swa += kcpp_extra_swa_padding;
size_swa = GGML_PAD(size_swa, n_pad);
if (size_swa > size_base) {
size_swa = size_base;
}
// when using full-size SWA cache, we set the SWA cache size to be equal to the base cache size
if (swa_full) {
@@ -64,6 +68,8 @@ llama_kv_cache_iswa::llama_kv_cache_iswa(
size_swa = size_base;
}
kcpp_active_swa_size = size_swa;
LLAMA_LOG_INFO("%s: creating non-SWA KV cache, size = %u cells\n", __func__, size_base);
kv_base = std::make_unique<llama_kv_cache>(