输入输出列表

列表中的shape仅为通用场景下的shape。特殊场景的shape见功能列表

参数

维度

数据类型

格式

cpu or npu

描述

使用场景

query

[num_tokens, num_head, head_size]

float16/bf16/int8

ND

npu

各batch的query在num_tokens轴合并;当开启全量化功能时仅支持int8。

基础场景

keyCache

  • Atlas 800I A2 推理产品/Atlas A2 训练系列产品:[num_blocks, block_size, kv_head_num, head_size_k];
  • Atlas 推理系列产品:[num_blocks, head_size *num_heads / 16 ,block_size, 16]

float16/bf16/int8

  • Atlas 800I A2 推理产品/Atlas A2 训练系列产品:ND
  • Atlas 推理系列产品:NZ

npu

cache好的key;当开启反量化融合功能和全量化功能时,只支持int8。

基础场景

valueCache

  • Atlas 800I A2 推理产品/Atlas A2 训练系列产品:[num_blocks, block_size, kv_head_num, head_size_v];
  • Atlas 推理系列产品:[num_blocks, head_size *num_heads / 16 ,block_size, 16]

float16/bf16/int8

  • Atlas 800I A2 推理产品/Atlas A2 训练系列产品:ND
  • Atlas 推理系列产品:NZ

npu

cache好的value;当开启反量化融合功能和全量化功能时,只支持int8。当开启mla合并输出kvcache功能时不传入。

基础场景

blockTables

[num_tokens, max_num_blocks_per_query]

int32

ND

npu

每个query的kvcache的block table,第一维是token索引,第二维表示block索引。

基础场景

contextLens

[batch]

int32

ND

cpu

每个query对应的key/value的token数量。

基础场景

mask

较复杂,见功能列表mask类型

float16/bf16

  • Atlas 800I A2 推理产品/Atlas A2 训练系列产品:ND
  • Atlas 推理系列产品:NZ

npu

Atlas 800I A2 推理产品/Atlas A2 训练系列产品:当“maskType”不为UNDEFINED时输入。

mask场景

batchRunStatus

[batch]

int32

ND

cpu

当开启控制可计算batch功能时需要传此tensor以作为哪些batch参与计算的标志位。

控制可计算batch场景

kDescale

[k_head_num*head_size]

int64/float

ND

npu

当量化类型为反量化时,步长tensor;数据类型需与vDescale保持一致。

反量化融合场景或全量化场景

kOffset

[k_head_num*head_size]

int32

ND

npu

当量化类型为反量化,且“hasQuantOffset”为true时,输入k的偏移量。

非对称反量化场景

vDescale

[v_head_num*head_size]

int64/float

ND

npu

当量化类型为反量化时,步长tensor。

反量化融合场景或全量化场景

vOffset

[v_head_num*head_size]

int32

ND

npu

当量化类型为反量化,且“hasQuantOffset”为true时,输入v的偏移量。

非对称反量化场景

qSeqLens

[batch]

int32

ND

cpu

当开启并行解码功能时需要传此tensor,每个batch对应的seqLen。

并行解码场景

razorOffset

[num_blocks, block_size]

float

ND

npu

当开启Razor Rope功能时需要传此tensor。

多头自适应压缩(rope场景)

pScale

[q_head_num]

float

ND

npu

当开启离线全量化时需要传此tensor,传入attention计算中间值p_score的量化scale。

离线全量化场景

logN

[batch]

float

ND

npu

当scale类型为logN时需要传此tensor,为各batch对应的缩放系数。

LogN场景

attnOut

[num_tokens, num_head, head_size_v]

float16/bf16

ND

npu

经过计算输出的query。

基础场景

上表中,contextLens和qSeqLens较为特殊,其虽为输入tensor,在使用时却是当做param使用,故需要有一个bind tensor的操作,使其从device侧提取出来绑定到host侧。contextLens在Atlas 800I A2 推理产品/Atlas A2 训练系列产品的runner中为CPU侧,在非Atlas 800I A2 推理产品/Atlas A2 训练系列产品的runner中为NPU侧。

上表中,使用场景表示各个输入tensor所对应的场景,其中基础场景是指该tensor为必须项,PA所有情况均有此tensor,其中包含5个输入tensor和1个输出tensor。而属于其他使用场景的输入tensor则是在对应场景下才能够传此输入tensor,非对应场景下不能传此输入tensor。以下为不同场景的定义: