DeNormMin
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
- Atlas 200I/500 A2 推理产品:不支持
- Atlas 推理系列产品AI Core:不支持
- Atlas 推理系列产品Vector Core:不支持
- Atlas 训练系列产品:不支持
功能说明
头文件路径为:"basic_api/kernel_operator_limits_intf.h"。
返回指定数据类型的最小正的非正规值。
函数原型
标量接口,返回值为标量:
C++constexpr __aicore__ static inline T DeNormMin()矢量接口,为dstLocal前count个元素赋最小正的非正规值:
C++__aicore__ static inline void DeNormMin(const LocalTensor<T>& dstLocal, uint32_t count)
参数说明
表1 参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| dstLocal | 输出 | 目的操作数。 类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。 LocalTensor的起始地址需要32字节对齐。 |
| count | 输入 | 输入数据元素个数。 |
数据类型
针对Ascend 950PR/Ascend 950DT,支持的数据类型为:half、bfloat16_t、float。
返回值说明
标量接口返回值为对应数据类型的最小正的非正规值。
矢量接口无返回值。
表 2 DeNormMin各数据类型输出
| 数据类型 | 十进制数 | 二进制各bit位 |
|---|---|---|
| half | 5.96e-8 | 0 00000 0000000001 |
| bfloat16_t | 9.2e-41 | 0 00000000 0000001 |
| float | 1.4e-45 | 0 00000000 00000000000000000000001 |
约束说明
标量接口无约束,矢量接口使用duplicate填充前count个元素赋最小正的非正规值,参照Memory矢量计算下的数据填充接口duplicate约束。
调用示例
标量接口
C++float value = AscendC::NumericLimits<float>::DeNormMin();矢量接口
C++AscendC::NumericLimits<float>::DeNormMin(dstLocal, 256); // 返回256个float类型的最小正的非正规值