开发者
下载
[object Object][object Object]
  • [object Object]Ascend 950PR/Ascend 950DT[object Object]:支持
  • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:不支持
  • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:不支持
  • [object Object]Atlas 200I/500 A2 推理产品[object Object]:不支持
  • [object Object]Atlas 推理系列产品[object Object]:不支持
  • [object Object]Atlas 训练系列产品[object Object]:不支持
[object Object]
  • 接口功能:

    在Indexer注意力机制的Epilog阶段对KV Cache进行原地动态量化压缩更新,封装aclnnIndexerQuantCache。将float16/bfloat16激活值x按量化粒度(mxfp8/mxfp4 模式每32个元素一组,fp8/hifloat8 模式整行一组)动态量化为FP8(E4M3/E5M2)或MX-FP4,并按slot_mapping将量化结果与对应scale散写到cache/cache_scale,slot_mapping中值为-1的token跳过不处理。支持 mxfp8、fp8、hifloat8、mxfp4 四种量化模式(各模式含义见参数说明 quant_mode)。

  • 语义说明:

    底层aclnn接口对cacheRef、cacheScaleRef为原地实现;本Python接口同为原地语义:直接在输入cache、cache_scale上更新,未被slot_mapping命中的行保留原值。schema中cache、cache_scale分别标注为[object Object][object Object]本接口无返回值,调用后直接使用入参cache、cache_scale。

[object Object]
[object Object]
[object Object][object Object][object Object]

该接口无返回值。计算结果直接原地写回输入张量[object Object][object Object],二者在计算后shape和dtype保持不变;未被[object Object]命中的行保留原值。

[object Object]
  • 该接口支持推理场景下使用。
  • 该接口支持单算子模式调用。
  • 仅支持[object Object]Ascend 950PR/Ascend 950DT[object Object]。
  • cache与cache_scale的数据类型组合需与quant_mode匹配:fp8/hifloat8 模式cache_scale为FLOAT;mxfp8/mxfp4 模式cache_scale为FLOAT8_E8M0;mxfp4 模式cache为FP4(uint8打包)。
  • cache 与 cache_scale(所有量化模式,含HiFloat8)均仅支持四维shape [object Object],倒数第二维固定为1(每token一个量化向量);num_slots = blockNum × blockSize。
  • cache/cache_scale仅在blockNum维支持非连续:各block可不紧密排布,但block内须连续。
  • headDim长度约束:
    • cache.headDim ≥ d(MX-FP4以fp4元素计,d个fp4值占⌈d/2⌉字节);
    • cache_scale.headDim ≥ scaleCol,scaleCol = mxfp8/mxfp4:⌈d/32⌉;fp8/hifloat8:1;
    • 示例:d=128、quant_mode=0 → scaleCol=4 → cache.headDim ≥ 128 且 cache_scale.headDim ≥ 4。
  • slot_mapping的维度应等于x的维度减1,即slot_mapping为x除最后一维外的所有维度展平。
  • slot_mapping中值为-1的token会被跳过不处理;其余有效元素取值范围为[0, num_slots - 1],且元素值应保证不重复,重复时不保证结果正确性。
  • 支持图模式(torchair)调用:经graph_convert注册的GE converter下沉为IndexerQuantCache算子,eager与图模式结果一致。
[object Object]

默认支持确定性计算。

[object Object]
  • 单算子模式调用

    [object Object]
  • 图模式(torchair)调用

    复用上面单算子示例构造的 cache/cache_scale/x/slot_mapping,用torchair后端编译后调用即可:

    [object Object]