开启alibi场景下的多头压缩功能
compressType=COMPRESS_TYPE_KVHEAD, kvCacheCfg=K_CACHE_V_CACHE
输入
参数  | 
维度  | 
数据类型  | 
格式  | 
描述  | 
|---|---|---|---|---|
key  | 
[num_tokens, num_head, head_size]  | 
float16/bf16/int8  | 
ND  | 
当前step多个token的key。最后一维需要是32的倍数。  | 
value  | 
[num_tokens, num_head, head_size]  | 
float16/bf16/int8  | 
ND  | 
当前step多个token的value。最后一维需要是32的倍数。  | 
keyCache  | 
[num_blocks, block_size, 1, head_size]  | 
float16/bf16/int8  | 
ND  | 
所有的key cache。  | 
valueCache  | 
[num_blocks, block_size, 1, head_size]  | 
float16/bf16/int8  | 
ND  | 
所有的value cache。  | 
slotMapping  | 
[batch*num_head]  | 
int32  | 
ND  | 
|
wins  | 
[batch*num_head]  | 
int32  | 
ND  | 
压缩量。wins[i] < seqLens[floor(i/num_head)],且wins内的值需要大于等于0,值为0时不压缩。  | 
seqLens  | 
[batch]  | 
int32  | 
ND  | 
每个batch的实际seqLen,内部值都大于0。  | 
输出
参数  | 
维度  | 
数据类型  | 
格式  | 
描述  | 
|---|---|---|---|---|
keyCacheOut  | 
[num_blocks, block_size, 1, head_size]  | 
float16/bf16/int8  | 
ND  | 
所有的key cache。与输入keyCache为同一地址。  | 
valueCacheOut  | 
[num_blocks, block_size, 1, head_size]  | 
float16/bf16/int8  | 
ND  | 
所有的value cache。与输入valueCache为同一地址。  |