参数列表
在使用时应带有命名空间atb::infer::PagedAttentionParam的参数,成员描述如下:
成员名称  | 
类型  | 
默认值  | 
描述  | 
|---|---|---|---|
headNum  | 
int32_t  | 
0  | 
query 头大小。此默认值不可用,用户需配置此项参数。  | 
qkScale  | 
float  | 
1.0  | 
算子tor值。  | 
kvHeadNum  | 
int32_t  | 
0  | 
kv头数量。  | 
maskType  | 
MaskType  | 
UNDEFINED  | 
mask类型。  | 
batchRunStatusEnable  | 
bool  | 
false  | 
是否开启控制可计算batch。  | 
quantType  | 
QuantType  | 
TYPE_QUANT_UNQUANT  | 
量化类型。  | 
outDataType  | 
aclDataType  | 
ACL_DT_UNDEFINED  | 
output数据类型。默认值表示根据输入tensors自动推导输出tensors数据类型。  | 
hasQuantOffset  | 
bool  | 
false  | 
开启量化功能后是否使用offset。  | 
compressType  | 
CompressType  | 
COMPRESS_TYPE_UNDEFINED  | 
压缩方式。  | 
calcType  | 
CalcType  | 
CALC_TYPE_UNDEFINED  | 
计算类型。  | 
scaleType  | 
ScaleType  | 
SCALE_TYPE_TOR  | 
scale类型:为SCALE_TYPE_LOGN时,不支持quanttype为2和3。  | 
inputLayout  | 
InputLayout  | 
TYPE_BSND  | 
数据排布格式默认为BSND。  | 
mlaVHeadSize  | 
uint32_t  | 
0  | 
大于0时开启MLA合并kvcache功能,表示kv合并传入时v的head_size取值范围为[0,576]。  | 
rsv[68]  | 
uint8_t  | 
{0}  | 
预留参数。  | 
上表中类型为自定义类型的,其描述如下:
- MaskType:表示mask类型的枚举量,其具体取值如下。maskType取不同MaskType值或在不同硬件上运行时维度不同,详见mask类型。
- UNDEFINED(枚举值:0):默认值,全0的mask。
 - MASK_TYPE_NORM(枚举值:1):倒三角mask。
 - MASK_TYPE_ALIBI(枚举值:2):alibi mask。
 - MASK_TYPE_SPEC(枚举值:3):并行解码mask。
 - MASK_TYPE_MASK_FREE(枚举值:4):mask_free,只支持float16。
 
 - QuantType:表示量化类型的枚举量,其具体取值如下:
- TYPE_QUANT_UNDEFINED(枚举值:0):默认值,不与量化融合。
 - TYPE_QUANT_UNQUANT(枚举值:0):默认值,不与量化融合。
 - TYPE_DEQUANT_FUSION(枚举值:1):与反量化融合,只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 和Atlas A3 推理系列产品 /Atlas A3 训练系列产品 。 - TYPE_QUANT_QKV_OFFLINE(枚举值:2):离线INT8量化,只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 和Atlas A3 推理系列产品 /Atlas A3 训练系列产品 。 - TYPE_QUANT_QKV_ONLINE(枚举值:3):在线INT8量化,只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 和Atlas A3 推理系列产品 /Atlas A3 训练系列产品 。 - 量化类型有以下约束条件:
- 为TYPE_QUANT_UNQUANT时,q、keyCache、valueCache为bf16/float16。
 - 为TYPE_DEQUANT_FUSION时,q为bf16/float16,keyCache、valueCache为int8。
 - 为TYPE_QUANT_QKV_OFFLINE或TYPE_QUANT_QKV_ONLINE时,q、keyCache、valueCache为int8。
 - keyCache,valueCache的headsize等长,范围为(0, 256],且block_size * head_size ≤ 128 * 128。
 - 为TYPE_QUANT_QKV_OFFLINE或TYPE_QUANT_QKV_ONLINE时,outdatatype需要配置,只能是ACL_FLOAT16或ACL_BF16。inputLayout只支持TYPE_BSND。
 
 
 - CompressType:表示压缩类型的枚举量,其具体取值如下:
- COMPRESS_TYPE_UNDEFINED(枚举值:0):默认值,不压缩。
 - COMPRESS_TYPE_KVHEAD(枚举值:1):压缩key_cache, value_cache的kvHead维度,只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 和Atlas A3 推理系列产品 /Atlas A3 训练系列产品 。 - COMPRESS_TYPE_KVHEAD_ROPE(枚举值:2):rope场景压缩key_cache, value_cache的kvHead维度,只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 和Atlas A3 推理系列产品 /Atlas A3 训练系列产品 。 - COMPRESS_TYPE_MAX(枚举值:3):压缩类型边界值,仅用于判断是否出界,所有情况不能取该值。
 - 压缩类型有以下约束条件:
- 压缩方式为COMPRESS_TYPE_KVHEAD时,不支持quanttype为2和3。
 - 压缩方式为COMPRESS_TYPE_KVHEAD_ROPE时, maskType需传0。此时不支持quanttype为2和3。
 
 
 - CalcType:表示计算类型的枚举量,其具体取值如下:
- CALC_TYPE_UNDEFINED(枚举值:0):默认值,不开启并行解码。
 - CALC_TYPE_SPEC(枚举值:1):并行解码功能,此时只支持quantType = 0。
 
 - ScaleType:表示是否开启LogN特性的枚举量,其具体取值如下:
 - InputLayout:表示数据排布格式的枚举量,其具体取值如下:
- TYPE_BSND(枚举值:0):默认值,表示数据排布为BSND。
 - TYPE_BNSD(枚举值:1):表示数据排布为BNSD。