文件最后提交记录最后更新时间
2 个月前
2 个月前
2 个月前
2 个月前
1 个月前
2 个月前
2 个月前
2 个月前
2 个月前
README

AntiMxQuant

产品支持情况

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

功能说明

  • 算子功能:将调用DynamicMxQuant量化得到的FLOAT4/FLOAT8的Tensor反量化为FLOAT16/BFLOAT16/FLOAT32格式。

  • 反量化公式:

    Xdq=Xq×2sf−biasX_{dq} = X_q \times 2^{sf - bias}

    • 其中sfsf是缩放因子,由输入mxscale提供;biasbias是指数位的偏移,对于FLOAT8_E8M0格式,bias=127bias=127XqX_q是量化得到的FLOAT4/FLOAT8张量;XdqX_{dq}是反量化得到的FLOAT16/BFLOAT16/FLOAT32张量。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 待反量化的数据。由DynamicMxQuant量化得到的FLOAT4/FLOAT8张量。 FLOAT4_E2M1、FLOAT4_E1M2、FLOAT8_E4M3FN、FLOAT8_E5M2 ND
mxscale 输入 调用DynamicMxQuant计算得到的量化尺度。 FLOAT8_E8M0 ND
axis 属性 指定反量化轴。 INT64 -
dst_type 属性 指定反量化后输出y的类型。 INT64 -
y 输出 输入x反量化后的对应结果。shape与x一致。 FLOAT16、BFLOAT16、FLOAT32 ND

约束说明

  • 关于x、mxscale的shape约束说明如下:
    • 如果输入x的数据类型是float4_e2m1或float4_e1m2,x.shape[-1]必须是偶数。
    • axis_change = axis if axis >= 0 else axis + rank(x)。
    • mxscale.shape[axis_change] = (ceil(x.shape[axis] / 32) + 2 - 1) / 2。
    • mxscale.shape[-1] = 2。
    • rank(mxscale) = rank(x) + 1。
    • 其它维度与输入x一致。

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_anti_mx_quant 通过aclnnAntiMxQuant接口方式调用AntiMxQuant算子。