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

GroupedDynamicBlockQuant

产品支持情况

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

功能说明

  • 算子功能:根据传入的分组索引的起始值(group_list)对各个group以基本块的粒度进行量化,量化为(FP8/HiFP8),并输出量化参数scale(FP32)。

  • 计算公式:

    input_max=block_reduce_max(abs(input)) input\_max = block\_reduce\_max(abs(input))

    scale=min(input_max/FP8_MAX(HiF8_MAX),1/min_scale) scale = min(input\_max/FP8\_MAX(HiF8\_MAX), 1/min\_scale)

    y=cast_to_[HiF8/FP8](input/scale) y = cast\_to\_[HiF8/FP8](input/scale)

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 表示算子输入的Tensor,形如[M, N]或[B, M, N],对应公式中的input。 FLOAT16、BFLOAT16 ND
group_list 输入 表示在M轴上每个group的偏移(cumsum模式)。 INT32 ND
min_scale 输入 表示参与scale计算的最小scale值,对应公式中的min_scale。 DOUBLE -
round_mode 可选属性 表示最后由高bit数据cast到目标数据类型的近似模式。 STRING -
dst_type 输入 表示数据转换后y的数据类型。 INT64 -
row_block_size 输入 表示指定M轴上的量化粒度。 INT64 -
col_block_size 输入 表示指定N轴上的量化粒度。 INT64 -
group_list_type 输入 表示group_list的功能类型。 INT64 -
y 输出 表示量化后的输出Tensor,对应公式中的y。 HIFLOAT8、FLOAT8_E4M3FN、FLOAT8_E5M2 ND
scale 输出 表示每个分组对应的量化尺度,对应公式中的scale。 FLOAT32 ND

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_grouped_dynamic_block_quant 通过aclnnGroupedDynamicBlockQuant接口方式调用GroupedDynamicBlockQuant算子。
图模式 - 通过算子IR构图方式调用GroupedDynamicBlockQuant算子。