昇腾社区首页
中文
注册

MLA输入输出

参数

维度

数据类型

格式

cpu/npu

描述

qNope

[num_tokens, num_heads, 512]

float16/bf16/int8

ND

NPU

输入,无位置编码query。

qRope

[num_tokens, num_heads, 64]

float16/bf16

ND

NPU

输入,旋转位置编码query。

ctKV

[num_blocks , block_size, kv_heads, 512]

  • cacheMode为2:

    [blockNum, kv_heads*512/32,block_size, 32]

  • cacheMode为3:

    [blockNum, kv_heads*512/16,block_size, 16]

float16/bf16/int8

ND/NZ

NPU

输入,无位置编码ctkv。

  • cacheMode为2:int8,NZ。
  • cacheMode为3:float16/bf16,NZ。

kRope

[num_blocks , block_size, kv_heads, 64]

cacheMode为2或3:

[blockNum, kv_heads*64 / 16 ,block_size, 16]

float16/bf16

ND/NZ

NPU

输入,旋转位置编码k。

cacheMode为2或3:NZ。

block_tables

[batch, max_num_blocks_per_query]

int32

ND

NPU

输入,每个query的kvcache的block映射表。

contextLens

[batch]

int32

ND

CPU

输入,每个query对应的上下文长度,kvseqlen。

mask

  • MASK_TYPE_SPEC:

    [num_tokens(合轴), max_seq_len]

  • MASK_TYPE_MASK_FREE:

    [125 + 2 * qseqlen, 128]

float16/bf16

ND

NPU

输入,注意力掩码,maskType不为0时传入。

qseqlen

[batch]

int32

ND

CPU

输入,calcType为1时传入,每个batch对应的seqLen,取值范围为[1,4]。

qkDescale

[num_heads]

float

ND

NPU

输入,cacheMode为2时传入。

pvDescale

[num_heads]

float

ND

NPU

输入,cacheMode为2时传入。

attenOut

[num_tokens, num_heads, head_size_vo]

float16/bf16

ND

NPU

attention输出。

Ise

[num_tokens, num_heads, 1]

float16/bf16

ND

NPU

Ise输出,当calcType为CALC_TYPE_RING和CALC_TYPE_SPEC_AND_RING时需要此tensor。

当CalcType为CALC_TYPE_RING时,只支持MaskType为UNDEFINED。当CalcType为CALC_TYPE_SPEC_AND_RING时,支持MaskType为MASK_TYPE_SPEC,cacheMode为KROPE_CTKV场景。