---
title: 参数列表
description: "在使用时应带有命名空间atb::infer::PagedAttentionParam的参数，成员描述如下："
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendtb/ascendtb_01_0196.html
sourcePath: /source/zh/canncommercial/900/API/ascendtb/ascendtb_01_0196.html
indexId: c787c236dd721ecf4b3b18d662556304521dca81ce1bd2725b067f1ee640dad564
---
# 参数列表

在使用时应带有命名空间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]。 |
| qScale | float | 0 | query缩放系数。 |
| rsv[64] | 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 A2 训练系列产品 / Atlas A2 推理系列产品和Atlas A3 推理系列产品 / Atlas A3 训练系列产品。
  - TYPE_QUANT_QKV_OFFLINE（枚举值：2）：离线INT8量化，只支持Atlas A2 训练系列产品 / Atlas A2 推理系列产品和Atlas A3 推理系列产品 / Atlas A3 训练系列产品。
  - TYPE_QUANT_QKV_ONLINE（枚举值：3）：在线INT8量化，只支持Atlas 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 A2 训练系列产品 / Atlas A2 推理系列产品和Atlas A3 推理系列产品 / Atlas A3 训练系列产品。
  - COMPRESS_TYPE_KVHEAD_ROPE（枚举值：2）：rope场景压缩key_cache, value_cache的kvHead维度，只支持Atlas 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特性的枚举量，其具体取值如下：

  - SCALE_TYPE_TOR（枚举值：0）：默认值，不开启LogN缩放。
  - SCALE_TYPE_LOGN（枚举值：1）：注意力使用LogN缩放。
  - SCALE_TYPE_MAX（枚举值：2）：边界值，仅用于判断是否出界。
  - scale类型有以下约束条件：
    “scale”类型为SCALE_TYPE_LOGN时，不支持quanttype为2和3。

- InputLayout：表示数据排布格式的枚举量，其具体取值如下：

  - TYPE_BSND（枚举值：0）：默认值，表示数据排布为BSND。
  - TYPE_BNSD（枚举值：1）：表示数据排布为BNSD。
