KV Cache换入换出指将KV Cache从device换出到host,或者从host换入device。
在PA场景下,由于KV Cache的容量有限,需要根据任务优先级,执行状态等因素,动态地将任务所需的KV Cache进行换入换出,提高显存利用率。
接口名称 |
功能 |
---|---|
CacheManager.swap_blocks |
CacheManager场景下,将对应block_index上kv内存换入换出 |
KvCacheManager.swap_blocks |
KvCacheManager场景下,将对应block_index上kv内存换入换出 |
1 2 3 4 5 6 7 8 | from llm_datadist import KVCache ... npu_cache = kv_cache_manager.allocate_blocks_cache(npu_cache_desc, npu_cache_key) cpu_cache = KvCache.create_cpu_cache(cpu_cache_desc, cpu_addrs) # cpu_addrs来自创建的cpu tensors # swap in kv_cache_manager.swap_blocks(cpu_cache, npu_cache, {1:2, 3:4}) # swap out kv_cache_manager.swap_blocks(npu_cache, cpu_cache, {1:2, 3:4}) |