---
title: qkv全量化
description: "支持量化好的q、k、v传入，降低显存占用。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendtb/ascendtb_01_0209.html
sourcePath: /source/zh/canncommercial/900/API/ascendtb/ascendtb_01_0209.html
indexId: 2e59b5e780fe278c7dbcab77b24f6780886b7c9ae8698614229b66b07aa85d2664
---
# qkv全量化

#### 功能说明

支持量化好的q、k、v传入，降低显存占用。


#### 开启方式

参数“quantType”置为TYPE_QUANT_QKV_OFFLINE或TYPE_QUANT_QKV_ONLINE，分别为离线量化与在线量化。

复用kDescale和vDescale，当采用离线量化时，额外传入pScale作为输入tensor。

若干输入tensor需要传入指定的维度，如下：

| 参数 | 维度 | 数据类型 | 格式 | cpu or npu |
| --- | --- | --- | --- | --- |
| query | [num\_tokens, num\_head, head\_size] | int8 | ND | npu |
| keyCache | [num\_blocks, block\_size, kv\_head\_num, head\_size] | int8 | ND | npu |
| valueCache | [num\_blocks, block\_size, kv\_head\_num, head\_size] | int8 | ND | npu |
| blockTables | [num\_tokens, max\_num\_blocks\_per\_query] | int32 | ND | npu |
| contextLens | [batch] | int32 | ND | cpu |
| kDescale | [head\_num] | float | ND | npu |
| vDescale | [head\_num] | float | ND | npu |
| pScale | [head\_num] | float | ND | npu |
| attnOut | [n\_tokens, num\_head, head\_size] | float16/bf16 | ND | npu |


其中pScale仅在离线量化场景传入，在线量化场景则不传此输入tensor。


#### 约束说明

使用全量化时需要指定输出tensor的数据类型，具体为使用参数outDataType，该参数只能是ACL_FLOAT16或ACL_BF16。

不支持 Atlas 推理系列产品 。
