PushKvCache

Applicable Products

Product

Supported (√/x)

Ascend 950PR/Ascend 950DT

√

Atlas A3 training products/Atlas A3 inference products

√

Atlas A2 training products/Atlas A2 inference products

√

Atlas 200I/500 A2 inference products

x

Atlas inference products

x

Atlas training products

x

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

Function Description

Pushes the cache to the remote node.

Prototype

1
2
3
4
5
Status PushKvCache(const Cache &src_cache,
                   const CacheIndex &dst_cache_index,
                   uint32_t src_batch_index = 0U,
                   int64_t size = -1,
                   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_batch_index

Input

Index of the local source batch.

size

Input

Currently, only the default value -1 is supported.

ext_param

Input

The difference between second and first in src_layer_range of ext_param 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.

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.

Constraints

Before calling this API, call the LinkLlmClusters API to complete initialization.