昇腾社区首页
中文
注册

FA支持Prefix Encoder

功能说明

FA支持按block存放的kvCache。BlockTables维度为[batch, maxBlockNum],其中每个batch对应存放当前query对应的key和value的index,maxBlockNum约为key,value中最长kvSeqLen,kvSeqLen/blockSize向上取整。

开启方式

calcType置为PREFIX_ENCODER。

约束说明

  • 不支持qScale,需设为1。
  • isTriuMask需设置为1。
  • kernelType必须设为KERNELTYPE_HIGH_PRECISION,因为kv计算内部均使用float32计算。
  • 不支持clamp,clampMin、clampMax需设置为0。
  • inputLayout只支持TYPE_BSND。
  • 不支持mla,mlaVHeadSize需设为0。
  • PrefixCacheLen的计算由kvseqlen减seqLen得到,由于实现方案限制,需要让prefixCacheLen 128对齐。
  • headNum有如下约束:
    • headNum > 0
    • headNum >= kvHeadNum
    • headNum是kvHeadNum的整数倍
  • maskType支持MASK_TYPE_ALIBI_COMPRESS、MASK_TYPE_ALIBI_COMPRESS_SQRT、MASK_TYPE_NORM_COMPRESS或MASK_TYPE_CAUSAL_MASK。