PushKvBlocks

Applicability

Product

Supported (√/x)

Atlas 350 Accelerator Card

x

Atlas A3 training product/Atlas A3 inference product

Atlas A2 training product/Atlas A2 inference product

Atlas 200I/500 A2 inference product

x

Atlas inference product

x

Atlas training product

x

Note: For Atlas A2 training product/Atlas A2 inference product, only the Atlas 800I A2 inference server and A200I A2 Box heterogeneous subrack are supported.

Function Description

Pushes the cache to the remote node in block list mode.

Prototype

1
2
3
4
5
Status PushKvBlocks(const Cache &src_cache,
                    const CacheIndex &dst_cache_index,
                    const std::vector<uint64_t> &src_blocks,
                    const std::vector<uint64_t> &dst_blocks,
                    const KvCacheExtParam &ext_param = {});

Parameters

Parameter

Input/Output

Description

src_cache

Input

Local source cache. Only cache_id returned by calling RegisterKvCache needs to be specified.

dst_cache_index

Input

Index of the remote destination cache.

src_blocks

Input

Block index list of the source cache.

dst_blocks

Input

Block index list of the destination cache.

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: Push 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.