AscendQuantV2
【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | × |
| Kirin X90 处理器系列产品 | √ |
| Kirin 9030 处理器系列产品 | √ |
功能说明
- 算子功能:对输入x进行量化操作,支持设置axis以指定scale和offset对应的轴,scale和offset的shape需要满足和axis指定x的轴相等或1。axis当前支持设置最后两个维度。
- 计算公式:
sqrt_mode为false时,计算公式为:
$$ y = round((x * scale) + offset) $$
sqrt_mode为true时,计算公式为:
$$ y = round((x * scale * scale) + offset) $$
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 需要执行量化的输入,对应公式中的`x`。 | FLOAT16、FLOAT32、BFLOAT16 | ND |
| scale | 输入 | 量化中的scale值,对应公式中的`scale`。 | FLOAT16、FLOAT32、BFLOAT16 | ND |
| offset | 可选输入 | 反量化中的offset值,对应公式中的`offset`。 | FLOAT16、FLOAT32、BFLOAT16 | ND |
| sqrt_mode | 可选属性 |
| BOOL | - |
| round_mode | 可选属性 |
| STRING | - |
| dst_type | 可选属性 |
| INT | - |
| axis | 可选属性 |
| INT | - |
| y | 输出 | 表示AscendQuantV2的结果输出`y`,对应公式中的`y`。shape与输入`x`的shape一致。 | INT8、INT4、HIFLOAT8、FLOAT8_E5M2、FLOAT8_E4M3FN | ND |
Atlas 推理系列产品 :
- 数据类型:
- 输入Tensor数据类型不支持BFLOAT16。
- 输出Tensor数据类型仅支持INT8。
- round_mode,支持取值round,ceil,trunc,floor。
- dst_type:支持取值2,表示INT8。
- axis:只支持指定x的最后一个维度(假设输入x维度是xDimNum,axis取值是-1或xDimNum-1)。
- 数据类型:
Atlas A2 训练系列产品/Atlas A2 推理系列产品 、 Atlas A3 训练系列产品/Atlas A3 推理系列产品 :
- 输出Tensor数据类型仅支持INT8、INT4。
- dst_type:支持取值2,29,分别表示INT8、INT4。
- axis:支持指定x的最后两个维度(假设输入x维度是xDimNum,axis取值范围是[-2,-1]或[xDimNum-2,xDimNum-1])。
Ascend 950PR/Ascend 950DT :
- round_mode:dst_type表示FLOAT8_E5M2或FLOAT8_E4M3FN时,只支持round。dst_type表示HIFLOAT8时,支持round和hybrid。dst_type表示其他类型时,支持round,ceil,trunc和floor。
- axis:支持指定x的最后两个维度(假设输入x维度是xDimNum,axis取值范围是[-2,-1]或[xDimNum-2,xDimNum-1])。
Kirin X90/Kirin 9030 处理器系列产品:
x、scale、offset不支持BFLOAT16;y数据类型不支持INT4、HIFLOAT8、FLOAT8_E5M2、FLOAT8_E4M3FN。
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_ascend_quant | 通过aclnnAscendQuant接口方式调用AscendQuantV2算子。 |
| aclnn接口 | test_aclnn_ascend_quant_v3 | 通过aclnnAscendQuantV3接口方式调用AscendQuantV2算子。 |
| 图模式 | - | 通过算子IR构图方式调用AscendQuantV2算子。 |
【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考