已关闭
[Bug-Report|缺陷反馈]: spmv/arch22 Host 侧 FLOAT 计算类型组合未约束,可能类型错配写坏输出 #190
gts_sjj创建于  19 天前关闭于  16 天前
gts_sjj
19 天前 创建

一、问题描述(必填)

sparse/spmv/arch22/spmv_host.cpp 对 FLOAT 计算类型不限制 outType,分发器却以 OutT=float 写入;如 computeType=FLOATvalType=I32outType=I32 被 host 放行,分发器以 float 写入 int32 的 y 缓冲区,造成类型混淆与数据损坏。SPMV_EXTERN 仅实例化 7 种组合。

涉及文件:

  • sparse/spmv/arch22/spmv_host.cpp:272

二、问题详情

C-32 | spmv FLOAT 计算类型组合未约束(spmv_host.cpp:272)

CHECK_RET(computeType != ACL_INT32 || (valType == ACL_INT32 && outType == ACL_INT32), ...);
  • 【确认】host 对 FLOAT 计算不限制 outType,分发器却以 OutT=float 写入;如 computeType=FLOAT、valType=I32、outType=I32 被 host 放行,分发器以 float 写入 int32 的 y 缓冲区——类型混淆、数据损坏。SPMV_EXTERN 仅实例化 7 种组合(spmv_kernel.h:686-692)。

三、影响

  • 正确性:类型错配致数据损坏。

四、建议修复

host 限制 (valType, outType) 落在 SPMV_EXTERN 实例化的 7 种组合内。

likedislike
Ggts_sjj
19 天前 issue类型由 任务 改变为 缺陷
HKFLYE
HKFLYE成员
19 天前 评论:

您好,感谢反馈,问题确认中。

likedislike
HKFLYEHKFLYE成员
18 天前 关联了pull request:fix issue
HKFLYE
HKFLYE成员
16 天前 评论:

已修复

likedislike
HKFLYEHKFLYE成员
16 天前 将 HuangKun8682 设为负责人
HKFLYEHKFLYE成员
16 天前 issue状态由 待办的 改变为 已完成
HKFLYEHKFLYE成员
16 天前 关闭了 issue
CANN-robotCANN-robot成员
16 天前 添加了label:resolved