文件最后提交记录最后更新时间
1 个月前
4 个月前
1 个月前
1 个月前
25 天前
1 个月前
6 个月前
4 个月前
README

DynamicMxQuant

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品 ×
Atlas A2 训练系列产品/Atlas A2 推理系列产品 ×
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • 算子功能:在给定的轴axis上,根据每blocksize个数,计算出这组数对应的量化尺度mxscale,然后对这组数每一个除以mxscale,根据round_mode转换到对应的dst_type,得到量化结果y。在dst_type为FLOAT8_E4M3FN、FLOAT8_E5M2时,根据scale_alg的取值来指定计算mxscale的不同算法。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 待量化数据。 FLOAT16、BFLOAT16 ND
axis 输入 量化发生的轴 INT64 ND
round_mode 可选属性 数据转换的模式 STRING ND
dst_type 输入 指定数据转换后y的类型 INT64 ND
blocksize 输入 每次量化的元素个数 INT64 ND
scale_alg 输入 mxscale的计算方法 INT64 ND
y 输出 输入x量化后的对应结果 FLOAT4_E2M1、FLOAT4_E1M2、FLOAT8_E4M3FN、FLOAT8_E5M2 ND
mxscale 输出 每个分组对应的量化尺度 FLOAT8_E8M0 ND

约束说明

  • 关于x、mxscale的shape约束说明如下:
    • rank(mxscale) = rank(x) + 1。
    • axis_change = axis if axis >= 0 else axis + rank(x)。
    • mxscale.shape[axis_change] = (ceil(x.shape[axis] / blocksize) + 2 - 1) / 2。
    • mxscale.shape[-1] = 2。
    • 其他维度与输入x一致。

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_dynamic_mx_quant 通过aclnnDynamicMxQuant接口方式调用DynamicMxQuant算子。