Cast(float转half、int32_t)
产品支持情况
产品 |
是否支持 |
|---|---|
√ |
|
√ |
|
x |
|
√ |
|
x |
|
x |
功能说明
对标量的数据类型进行转换。
函数原型
1 2 | template <typename T, typename U, RoundMode roundMode> __aicore__ inline U Cast(T valueIn) |
参数说明
参数名 |
描述 |
||
|---|---|---|---|
T |
valueIn的数据类型,支持float。 |
||
U |
转换后的数据类型,支持half、int32_t。 |
||
roundMode |
精度转换处理模式,类型是RoundMode。 RoundMode为枚举类型,用以控制精度转换处理模式,具体定义为:
对于Cast,转换类型仅支持float转half(f322f16)与float转int32_t(f322s32),相应支持的RoundMode如下:
Cast的精度转换规则具体可参考表1。 |
参数名 |
输入/输出 |
描述 |
|---|---|---|
valueIn |
输入 |
被转换数据类型的标量。 |
返回值说明
U类型的valueIn。
约束说明
无
调用示例
1 2 3 | float valueIn = 2.5; // 输出数据valueOut:3, 2.5向上取整为3 int32_t valueOut = AscendC::Cast<float, int32_t, AscendC::RoundMode::CAST_ROUND>(valueIn); |
父主题: 标量计算