下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

allocate_cache

函数功能

分配Cache,Cache分配成功后,会同时被cache_id与cache_keys引用,只有当这些引用都解除后,cache所占用的资源才会实际释放。

cache_id的引用需通过deallocate_cache解除,cache_keys的引用则可以通过以下2种方式解除。

函数原型

allocate_cache(cache_desc: CacheDesc, cache_keys: Union[Tuple[CacheKey], List[CacheKey]] = ())

参数说明

参数名称

数据类型

取值说明

cache_desc

CacheDesc

Cache的描述。

cache_keys

Union[Tuple[CacheKey], List[CacheKey]]

仅当LLMRole为PROMPT时可设置,用于在DECODER拉取KV。

调用示例

cache = kv_cache_manager.allocate_cache(kv_cache_desc, kv_cache_keys)

返回值

正常情况下返回KvCache。

传入数据类型错误情况下会抛出TypeError异常。

cache_keys中包含之前allocate_cache时绑定的CacheKey的情况下抛出LLMException异常。

执行时间超过sync_kv_timeout配置会抛出LLMException异常。

约束说明

  • 传入cache_keys时,如果Cache的batch size > 1,则需要提供相同数量的CacheKey,分别引用一组kv tensor。
  • 如果当次推理的batch未占用满,即存在无效batch index,则需要插入特殊的CacheKey(将req_id设置为UINT64_MAX)占位,如果空闲的batch_index在末尾,则可以省略。
  • 如果cache_keys存在重复,则最后一个生效。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词