Cast 精度转换不正确
收藏回复举报
Cast 精度转换不正确
t('forum.solved') 已解决
发表于2024-11-30 18:29:08
0 查看

需求:把 float32 精度的 localtensor转换成 float16 精度,使用 Cast 转换后数据精度相差很大,如 12.1818 变成了-3.41211,我一直没找到问题在哪。

环境:社区版8.0.RC3.alpha003

核心代码如下:

LocalTensor<float> tem = inQueueTem.AllocTensor<float>();

DataCopy(tem, y32Global[i * tiling.N], align_num);

LocalTensor<half> xLocal = inQueueX.AllocTensor<half>();

Cast<half, float>(xLocal, tem, RoundMode::CAST_FLOOR, align_num);  // align_num=272

DumpTensor(tem, 1, 16);

DumpTensor(xLocal, 2, 16);

打印结果如下:

%E6%88%AA%E5%B1%8F2024-11-30%2018.11.22.png

本帖最后由 匿名用户2024/12/02 10:35:36 编辑

我要发帖子