CopyKvBlocks
产品支持情况
产品  | 
是否支持  | 
|---|---|
√  | 
|
√  | 
|
x  | 
|
x  | 
|
x  | 
|
x  | 
函数功能
PA场景下,通过block列表的方式拷贝KV Cache。支持D2D,D2H,H2D的拷贝。
- D2D场景主要是针对当多个回答需要共用相同block,block没填满时,新增的token需要拷贝到新的block上继续迭代。
 - H2D和D2H的拷贝主要用于对应block_index上Cache内存的换入换出。
 
函数原型
1 2 3 4  | Status CopyKvBlocks(const Cache &src_cache, const Cache &dst_cache, const std::vector<uint64_t> &src_blocks, const std::vector<std::vector<uint64_t>> &dst_blocks_list)  | 
参数说明
参数名称  | 
输入/输出  | 
取值说明  | 
|---|---|---|
src_cache  | 
输入  | 
源Cache。  | 
dst_cache  | 
输入  | 
目的Cache。  | 
src_blocks  | 
输入  | 
源Cache的block index列表。  | 
dst_blocks_list  | 
输入  | 
目标Cache的block index列表的列表,一组src_blocks可以拷贝到多组dst_blocks。  | 
调用示例
1 | Status ret = llm_datadist.CopyKvCache(src_cache, dst_cache, {1,2}, {{1,2},{3,4}})  | 
返回值
- LLM_SUCCESS:成功
 - LLM_PARAM_INVALID:参数错误
 - 其他:失败
 
约束说明
该接口调用之前,需要先调用Initialize接口完成初始化。不支持Host->Host的拷贝。
父主题: LlmDataDist接口