---
title: MLA合并输入kvCache功能
description: "过去attention算子会将k和v存储在显存中，随着模型越来越大，输入序列越来越长，kvCache也越来越大，对显存的容量造成很大压力，造成性能上的瓶颈。因此Multi-Head Latent Attention提出将kvCache压缩成一个一个较小的向量，代替原来的kvCache输入进fa算子进行计算。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendtb/ascendtb_01_0281.html
sourcePath: /source/zh/canncommercial/900/API/ascendtb/ascendtb_01_0281.html
indexId: e111dd19750b0d4195f68990e9e437b4450b2fc2f07da58037ad645eb927666264
---
# MLA合并输入kvCache功能

#### 功能说明

过去attention算子会将k和v存储在显存中，随着模型越来越大，输入序列越来越长，kvCache也越来越大，对显存的容量造成很大压力，造成性能上的瓶颈。因此Multi-Head Latent Attention提出将kvCache压缩成一个一个较小的向量，代替原来的kvCache输入进fa算子进行计算。


#### 开启方式

- calcType= PA_ENCODER
- mlaVHeadSize > 0


#### 约束说明

- MLA合并输入kvCache功能不支持Atlas 推理系列产品，不支持alibi mask、多头自适应压缩（rope 场景）、多头自适应压缩（alibi 场景）、logN缩放和BNSD输入排布。
- 开启MLA合并输入kvCache功能后key和value的headSize范围为(0, 576]。
- mlaVHeadSize不能大于query和key的headSize。
- 开启MLA合并输入kvCache功能后query，key，value可传二维[nTokens, hiddenSize]或三维[nTokens, headNum, headSize]或四维[batch, seqLen, headNum, headSize]，且query，key的维度数可以不同。
- MLA合并kvCache功能支持全量化场景，一起开启时query和key的headSize范围为(0, 576]，mlaVHeadSize不能大于query和key的headSize。
