allocate_cache

产品支持情况

产品

是否支持

Atlas 800I A2 推理产品/A200I A2 Box 异构组件

Atlas A2 训练系列产品

x

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品

x

Atlas 训练系列产品

x

函数功能

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

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

函数原型

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

参数说明

参数名称

数据类型

取值说明

cache_desc

CacheDesc

Cache的描述。

cache_keys

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

Cache的索引。

调用示例

1
2
3
4
5
from llm_datadist import *
...
cache_desc = CacheDesc(1, [2, 1024 * 1024], DataType.DT_FLOAT16)
cache_keys = [CacheKey(1, req_id=1), CacheKey(1, req_id=2)]
cache = cache_manager.allocate_cache(cache_desc, cache_keys)

返回值

正常情况下返回Cache。

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

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

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

约束说明