transfer_cache_async
函数功能
异步分层传输Cache。
函数原型
transfer_cache_async(src_cache: Cache, layer_synchronizer: LayerSynchronizer, transfer_configs: Union[List[TransferConfig], Tuple[TransferConfig]], src_block_indices: Optional[Union[List[int], Tuple[int]]] = None, dst_block_indices: Optional[Union[List[int], Tuple[int]]] = None, dst_block_memory_size: Optional[int] = None) -> CacheTask
参数说明
参数名称 |
数据类型 |
取值说明 |
---|---|---|
src_cache |
源Cache。 |
|
layer_synchronizer |
LayerSynchronizer的实现类对象 |
|
transfer_configs |
Union[List[TransferConfig], Tuple[TransferConfig]] |
传输配置列表或元组 |
src_block_indices |
Optional[Union[List[int], Tuple[int]]] |
源Cache的block indices,当源Cache为PA场景时设置 |
dst_block_indices |
Optional[Union[List[int], Tuple[int]]] |
目的Cache的block indices,当目的Cache为PA场景时设置 |
dst_block_memory_size |
Optional[int] |
目的Cache每个block占用的内存大小,当目的Cache为PA场景时设置。如果源Cache也为PA场景,则可省略该参数,此时会自动将其设置为源Cache每个block占用的内存大小。 该参数设置为0时等同于省略该参数。 |
调用示例
1 | cache_task = cache_manager.transfer_cache_async(cache, LayerSynchronizerImpl(), transfer_configs) |
返回值
正常情况下返回CacheTask。
传入数据类型错误,会抛出TypeError或ValueError异常。
传入数据非法,会抛出LLMException异常。
约束说明
不支持src_cache是HOST,dst_cache是DEVICE的传输场景。
不支持src_cache是PA场景,dst_cache是非PA场景。
若dst_cache是HOST,仅支持dst_cache通过allocate_cache申请方式申请。
需要保证transfer_config中的dst_addrs的有效性,以及在传输dst_block_indices场景下数据的有效性,否则错误未知。
开启enable_remote_cache_accessible时,该接口暂不可用。