kv tensorlist格式输入

功能

支持以tensorlist,即二级指针结构的形式而非整个tensor作为cacheK与cacheV的输入。

开启方式

如何构造该场景中的variantPack:

atb Tensor定义:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
struct Tensor {
    //! \brief Tensor描述信息
    TensorDesc desc;
    //! \brief TensorNPU内存地址。
    void *deviceData = nullptr;
    //! \brief TensorCPU内存地址。
    void *hostData = nullptr;
    //! \brief “deviceData”或“hostData”指向内容的内存大小。
    uint64_t dataSize = 0;
};

variantPack中的输入tensors,在需要使能tensor list时,将对应tensor的deviceData置为nullptr,将hostData指向构造的tensorList即可。

特殊约束

此功能只在开启kv-bypass功能(即参数“kvcacheCfg”置为K_BYPASS_V_BYPASS),且“calcType”为DECODER时生效。