文件最后提交记录最后更新时间
6 个月前
6 个月前
4 个月前
6 个月前
4 个月前
7 个月前
3 个月前
README.md

DynamicQuantUpdateScatterV2

产品支持情况

产品 是否支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品 ×
Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件
Kirin X90 处理器系列产品
Kirin 9030 处理器系列产品

功能说明

  • 算子功能:将DynamicQuantV2和ScatterUpdate单算子自动融合为DynamicQuantUpdateScatterV2融合算子,以实现INT4类型的非对称量化。
  • 过程描述:原始数据x首先经过DynamicQuantV2算子处理,将其转化为INT4类型,并输出对应的缩放因子scale和偏移量offset。随后,三个不同的ScatterUpdate以插入索引indices、三个初始数据(var,var_scale和var_offset)和DynamicQuantV2算子的三个输出(即量化后的数据,scale和offset)作为输入按指定位置执行写入更新操作,最终得到三个原地更新输出var,var_scale和var_offset,分别对应量化更新后的数据及其对应的量化参数。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 量化输入,对应过程描述中的"x" FLOAT16、BFLOAT16 ND
indices 输入 量化数据更新索引,对应过程描述中的"indices" INT32 ND
var 输入/输出 需要更新的量化结果,对应过程描述中的"var" INT4 ND
var_scale 输入/输出 需要更新的量化scale因子,对应过程描述中的"var_scale" FLOAT ND
var_offset 输入/输出 需要更新的量化offset因子,对应过程描述中的"var_offset" FLOAT ND
  • Kirin X90/Kirin 9030 处理器系列产品:
    • 输入x:数据类型仅支持FLOAT16。

约束说明

  • 量化方式支持非对称量化,量化数据类型支持INT4。
  • 量化不支持smooth_scale输入。
  • INT4量化情况下,输入x的尾轴要能被2整除。
  • DynamicQuantV2的output0为INT4类型,output1为FLOAT类型,output2为FLOAT类型。
  • DynamicQuantV2的输入dtype必须为FLOAT16或者BFLOAT16。input1如果存在,且input2如果不存在,input1的shape必须是1维,且等于input0的最后一维;若input2存在,input1是两维,第一维大小是专家数,不超过1024,第二维大小等于input0的最后一维。

调用说明

调用方式 调用样例 说明
图模式调用 test_geir_dynamic_quant_update_scatter_v2 通过算子IR构图方式调用DynamicQuantUpdateScatterV2算子。