ToFloat
功能说明
bfloat16_t类型标量数据转换成float类型标量数据。
函数原型
__aicore__ inline float ToFloat(const bfloat16_t& bVal)
参数说明
参数名称 |
输入/输出 |
含义 |
---|---|---|
bVal |
输入 |
bfloat16_t类型标量数据 |
支持的型号
Atlas A2训练系列产品/Atlas 800I A2推理产品
注意事项
无
返回值
转换后的float类型标量数据。
调用示例
float m = 3.0f; bfloat16_t n = ToBfloat16(m); TPipe pipe; TQue<QuePosition::VECIN, 1> inQueueSrcVecIn; pipe.InitBuffer(inQueueSrcVecIn, 1, dataLen * sizeof(bfloat16_t)); LocalTensor<bfloat16_t> dstLocal = inQueueSrcVecIn.AllocTensor<bfloat16_t>(); // 输入bfloat16_t类型,做加法运算后,输出bfloat16_t类型tensor CalcFunc(n, dstLocal, dataLen) { TPipe pipe; TQue<QuePosition::VECIN, 1> inQueueSrcVecIn; pipe.InitBuffer(inQueueSrcVecIn, 1, dataLen * sizeof(float)); LocalTensor<float> srcLocal = inQueueSrcVecIn.AllocTensor<float>(); Duplicate(srcLocal, float(4.0f), dataLen); float t = ToFloat(n);// 对标量进行加法,不支持bfloat16_t,需要先转换成float Adds(srcLocal, srcLocal, t, dataLen); Cast(dstLocal, srcLocal, RoundMode::CAST_ROUND, dataLen); }
父主题: 标量计算