---
title: 参数列表
description: "| 成员名称 | 类型 | 默认值 | 取值范围 | 是否必选 | 描述 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendtb/ascendtb_01_0184.html
sourcePath: /source/zh/canncommercial/900/API/ascendtb/ascendtb_01_0184.html
indexId: bc04fdcea2c2585d60d00c9c28e2da83dd6741d157b92f5da32a131777005c1864
---
# 参数列表

| 成员名称 | 类型 | 默认值 | 取值范围 | 是否必选 | 描述 |
| --- | --- | --- | --- | --- | --- |
| headNum | int32\_t | 0 | {8,16,32,64,128} | 是 | query头数量。 |
| qkScale | float | 1.0 | (0,1] | 是 | Q\*K^T后乘以的缩放系数。 |
| kvHeadNum | int32\_t | 0 | [1] prefill全量场景下：headNum==kvHeadNum | 是 | kv头数量。 |
| maskType | MaskType | UNDEFINED | [0,4] | 否 | mask类型。 |
| calcType | CalcType | CALC\_TYPE\_UNDEFINED | [0,4] | 否 | 计算类型。 |
| cacheMode | CacheMode | KVCACHE | [0,3] | 是 | 输入query和kcache的类型。 |
| windowSize | uint32\_t | 0 | [0, maxkvseqlen] | 否 | 滑动窗口大小。 |
| maskUseStatusType | MaskUseStatusType | 0 | [0,1] | 否 | 标记mask是否使用。 0：MASK\_USE\_STATUS\_TYPE\_UNDEFINED 1：MASK\_USE\_STATUS\_TYPE\_BATCH\_MASK |
| rsv[36] | uint8\_t | 0 | [0] | 否 | 预留字段。 |


上表中类型为自定义类型的，其描述如下：

- maskType：表示mask类型，其具体取值如下。

  - UNDEFINED：无mask。
  - MASK_TYPE_SPEC：并行解码mask，与calcType=CALC_TYPE_SPEC或CALC_TYPE_SPEC_AND_RING一起使用。
  - MASK_TYPE_MASK_FREE：传入固定shape的mask，与calcType = CALC_TYPE_SPEC、calcType = CALC_TYPE_PREFILL或CALC_TYPE_SPEC_AND_RING一起使用。计算时根据尾部长度从传入mask中获取真实的mask。mask为倒三角形式，第一行全部为-inf，最后一行全部为0。具体形状如下：
    1 2 3 4 5 6 7 8 9 10 11 12 13 def generate_mask_free(q_len): :param q_len: q_len :return: constructed mask, e.g. when q_len=2, returned as [[-inf -inf -inf ... -inf], [0 -inf -inf ... -inf], [0 0 -inf ... -inf], ... [0 0 0 ... -inf], [0 0 0 ... 0]] """ mask_free = np.full((125 + 2 * q_len, 128), -10000.0) mask_free = np.triu(mask_free, 2 - q_len) return mask_free

  - MASK_TYPE_CAUSAL_MASK：mask内部生成。
  - MASK_TYPE_SWA_NORM：传入[max(qseqlen), max(kvSeqlen)]的swa mask。
- calcType：表示计算类型，其具体取值如下。

  - CALC_TYPE_UNDEFINED：默认的decoder场景。
  - CALC_TYPE_SPEC：支持qseqlen大于1，并行解码功能，MTP使用该场景。
  - CALC_TYPE_RING：ringAttention，额外输出Ise。
  - CALC_TYPE_SPEC_AND_RING：支持传入大于1的qseqlen ringAttention。
  - CALC_TYPE_PREFILL：prefill 全量。
- cacheMode：表示输入query和kcache的类型，其具体取值如下。
与MLAPO大融合预处理算子对应使用。

  - KVCACHE：输入只有一个q和一个合并kvCache，为原PagedAttention下的MLA场景，目前暂未接入。
  - KROPE_CTKV：输入的q拆分为qNope和qRope，输入的kcache拆分为ctKV和kRope，对应之前的默认场景。
  - INT8_NZCACHE：高性能cache，在KROPE_CTKV的基础上：krope和ctkv转为NZ格式输出，ctkv和qnope经过per_head静态对称量化为int8类型。
  - NZCACHE：在KROPE_CTKV的基础上krope和ctkv转为NZ格式输出。
