Cast(float转bfloat16_t)
产品支持情况
- 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_scalar_intf.h"。
float类型标量数据转换成bfloat16_t类型标量数据。
函数原型
C++
__aicore__ inline bfloat16_t Cast(const float& fVal)
参数说明
表1 参数说明
| 参数名称 | 输入/输出 | 描述 |
|---|---|---|
| fVal | 输入 | float类型标量数据。 |
返回值说明
转换后的bfloat16_t类型标量数据。
约束说明
float到bfloat16_t转换采用CAST_RINT舍入。
输入参数为立即数时,需要使用显式类型转换后输入,例如:
C++// 错误写法,AscendC暂不支持整数类型转bfloat16_t,编译报错 bfloat16_t x = AscendC::Cast(1); // 正确写法 bfloat16_t x = AscendC::Cast((float)1);
调用示例
C++
float m = 3.14159f;
bfloat16_t n = AscendC::Cast(m); // n = 3.140625 float到bfloat16_t进行了舍入