开启支持输入转NZ格式功能
kvCacheCfg=K_CACHE_V_CACHE_NZ,compressType=COMPRESS_TYPE_UNDEFINED
输入
参数  | 
维度  | 
数据类型  | 
格式  | 
描述  | 
|---|---|---|---|---|
key  | 
[num_tokens, num_head, k_head_size]  | 
int8/float16/bf16  | 
ND  | 
k_head_size*sizeof(dtype_k)满足32字节对齐,同时小于98304。  | 
value  | 
[num_tokens, num_head, v_head_size]  | 
float16/bf16  | 
ND  | 
v_head_size*sizeof(dtype_v)满足32字节对齐,同时小于98304。key支持int8时,value可以是float16或者bf16。  | 
keyCache  | 
[num_blocks, num_head*k_head_size // last_dim_k, block_size, last_dim_k]  | 
int8/float16/bf16  | 
NZ  | 
当数据类型为int8时,last_dim_k为32,当数据类型是float16/bf16时,last_dim_k为16。数据类型与key保持一致。block_size需要16对齐。  | 
valueCache  | 
[num_blocks, num_head*v_head_size // last_dim_v, block_size, last_dim_v]  | 
float16/bf16  | 
NZ  | 
last_dim_v只能是16。数据类型与value保持一致。block_size需要16对齐。  | 
slotMapping  | 
[num_tokens]  | 
int32  | 
ND  | 
last_dim_v只能是16。值域范围为(INT32_MIN, num_blocks * block_size)且不存在重复数值。取值为负数时不进行任何搬运操作。  | 
输出
参数  | 
维度  | 
数据类型  | 
格式  | 
描述  | 
|---|---|---|---|---|
keyCacheOut  | 
[num_blocks, num_head*k_head_size // last_dim_k, block_size, last_dim_k]  | 
int8/float16/bf16  | 
NZ  | 
当数据类型为int8时,last_dim_k为32,当数据类型是float16/bf16时,last_dim_k为16。  | 
valueCacheOut  | 
[num_blocks, num_head*k_head_size // last_dim_v, block_size, last_dim_v]  | 
float16/bf16  | 
NZ  | 
last_dim_v只能是16。  |