PullKvCache
Applicability
Product |
Supported (√/x) |
|---|---|
Atlas 350 Accelerator Card |
x |
√ |
|
√ |
|
x |
|
x |
|
x |
Note: For
Function Description
Pulls the cache from the remote node to the local cache.
Prototype
1 2 3 4 5 | Status PullKvCache(const CacheIndex &src_cache_index, const Cache &dst_cache, uint32_t batch_index = 0U, int64_t size = -1, const KvCacheExtParam &ext_param = {}) |
Parameters
Parameter |
Input/Output |
Description |
|---|---|---|
src_cache_index |
Input |
Index of the remote source cache. |
dst_cache |
Input |
Local destination cache. Only cache_id returned by calling RegisterKvCache needs to be specified. |
batch_index |
Input |
Index of the local destination batch. |
size |
Input |
If this parameter is set to an integer greater than 0, it indicates the size (in bytes) of the data to be pulled. If this parameter is set to -1, it indicates that the entire data is pulled. The default value is -1. |
ext_param |
Input |
The difference between second and first in src_layer_range must equal that in dst_layer_range. The default values of first and second in both src_layer_range and dst_layer_range are -1, indicating all layers. The valid range for each index is [0, maximum available layer index], and first must be less than or equal to second. The maximum available layer index is calculated as follows: (CacheDesc::num_tensors / KvCacheExtParam::tensor_num_per_layer) - 1 tensor_num_per_layer can range from 1 to the total number of tensors in the cache, with a default value of 2. When src_layer_range or dst_layer_range uses non-default values, tensor_num_per_layer can either remain at its default value or be set to another value, which must be divisible by the total number of tensors in the cache. |
Example
Click Gitee, download the sample package of the matching version based on the tag name, and obtain the sample from the cplusplus/level1_single_api/11_llm_data_dist directory.
Returns
- LLM_SUCCESS: Success.
- LLM_PARAM_INVALID: Incorrect parameter.
- LLM_NOT_YET_LINK: No link is established with the remote cluster.
- LLM_TIMEOUT: Pull timeout.
- LLM_KV_CACHE_NOT_EXIST: The local or remote KV cache does not exist.
- Other values: Failure.
Restrictions
Before calling this API, call the LinkLlmClusters API to complete initialization.