From 9ea158309c786d2adf35b9fc0951c54d08333ffe Mon Sep 17 00:00:00 2001 From: shewu Date: Tue, 30 Sep 2025 15:16:16 +0800 Subject: [PATCH] Qualcomm AI Engine Direct - Fixed the bug for memmove in kv_manager --- examples/qualcomm/oss_scripts/llama/runner/kv_manager.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/qualcomm/oss_scripts/llama/runner/kv_manager.cpp b/examples/qualcomm/oss_scripts/llama/runner/kv_manager.cpp index 7a96882416e..c6e59097ffc 100644 --- a/examples/qualcomm/oss_scripts/llama/runner/kv_manager.cpp +++ b/examples/qualcomm/oss_scripts/llama/runner/kv_manager.cpp @@ -365,7 +365,8 @@ void KVManager::rearrange_key(KVCache& k_cache, int32_t ar_len_dst) { } // copy from first dimension for (int i = 0; i < metadata_.head_dim; i++) { - std::memmove(k_cache_in_write_ptr, k_cache_in_read_ptr, dst_cache_num); + std::memmove( + k_cache_in_write_ptr, k_cache_in_read_ptr, dst_cache_num * sizeof(T)); k_cache_in_read_ptr += src_cache_num; k_cache_in_write_ptr += dst_cache_num; } @@ -378,7 +379,8 @@ void KVManager::rearrange_key(KVCache& k_cache, int32_t ar_len_dst) { } // copy from last dimension for (int i = 0; i < metadata_.head_dim; i++) { - std::memmove(k_cache_in_write_ptr, k_cache_in_read_ptr, src_cache_num); + std::memmove( + k_cache_in_write_ptr, k_cache_in_read_ptr, src_cache_num * sizeof(T)); k_cache_in_read_ptr -= src_cache_num; k_cache_in_write_ptr -= dst_cache_num; }