register_cache
函数功能
非PagedAttention场景下,调用此接口注册一个自行申请的内存。
函数原型
register_cache(cache_desc: CacheDesc, addrs: List[int]) -> Cache:
参数说明
参数名称 |
数据类型 |
取值说明 |
---|---|---|
cache_desc |
Cache的描述信息。 |
|
addrs |
List[int] |
Cache的地址。 |
调用示例
from llm_datadist import * import torch ... cache_mgr = llm_datadist.cache_manager data_addrs = [] for i in range(80): tensor = torch.ones(4, 1024 * 1024, dtype=torch.float32).npu() tensor_addr = tensor.data_ptr() data_addrs.append(tensor_addr) cache_desc = CacheDesc(80, [4, 1024 * 1024], DataType.DT_FLOAT, Placement.DEVICE) cache = cache_mgr.register_cache(cache_desc, data_addrs) print('register cache suc:', cache.cache_id, flush=True)
返回值
正常情况下返回cache。
传入数据类型错误,src和dst不匹配情况下会抛出TypeError或ValueError异常。
传入参数为None,会抛出AttributeError异常。
约束说明
Device内存需要先注册再进行link, host内存不约束顺序。
注册内存地址需自行保证不重复。
父主题: CacheManager