已合并
修复tensor_equal某些场景下判断失效问题 #3910
m0_46386992创建于 7月8日
修复tensor_equal某些场景下判断失效问题 #3910
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 m0_46386992 的贡献)7月8日 创建了 pull request,commit 70cde4cd
atomgit-bot
7月8日 评论:
7月8日 评论:
变更摘要
此PR修复了 TensorEqualKernel::CopyIn 中因 GM 地址偏移计算错误导致 tensor_equal 在某些场景下判断失效的问题。当模板类型 T 与 InputType 的字节大小不一致时,原先直接使用 offset 索引访问 inputXGm_ 和 inputYGm_ 会产生错误的全局内存地址,导致数据拷贝到错误的 Local Tensor 上,进而使相等性判断结果不正确。修复方案引入 gmOffset,通过 offset * (sizeof(T) / sizeof(InputType)) 对偏移量进行缩放,确保 DataCopyPad 从正确的 GM 地址读取数据。
主要改动
TensorEqualKernel<T>::CopyIn中 GM 偏移计算修复:新增gmOffset = offset * (sizeof(T) / sizeof(InputType)),并将DataCopyPad调用中的索引从offset替换为gmOffset,解决当T与InputType大小不同时 GM 地址计算错误导致的tensor_equal判断失效问题。


atomgit-bot
7月8日 评论:
7月8日 评论:
7月8日 添加了label:cann-cla/yes
CANN-robot
7月8日 评论:
7月8日 评论:
此处折叠了63条消息 查看更多
CANN-robot
7月13日 评论:
7月13日 评论:
The following users do not have permission to comment /lgtm or /approve on any module in this PR:
黄迪


7月13日 添加了label:lgtm
7月13日 关闭了关联的issue
7月13日 合入了pull request
描述
修复tensor_equal在非int8的整型比较场景下的比较结果异常问题 & 修改算子图原型定义中将DT_INT16误写为DT_IN16的问题(关联issue https://gitcode.com/cann/ops-math/issues/2197)
根因分析
tensor_equal算子在整型模板下,会将其转化为uint8_t粒度进行比较,原有代码在CopyIn搬运数据过程中,对于GM offset的计算未同步调整,导致当整型长度大于8时,尾部元素无法参与比较,进而出现精度问题
变更内容
测试
ST、冒烟测试通过
文档更新
不涉及
类型标签