已关闭
[Bug-Report|缺陷反馈]: gmm/grouped_matmul: Tiling 层 group_list_type 属性获取类型与 IR 原型不一致 #2685
zhu_qi创建于  5月26日关闭于  6月1日
zhu_qi
5月26日 创建

一、问题描述(必填)

gmm/grouped_matmul/op_host/op_tiling/grouped_matmul_tiling.cpp 文件中,存在属性获取类型与 IR 原型定义不一致的问题:

行1190group_list_type 属性使用 GetAttrPointer<uint32_t> 获取

但根据 IR 定义文件 grouped_matmul_def.cpp 中的声明:

  • group_list_type 声明为 .Attr("group_list_type").AttrType(OPTIONAL).Int(0) → 对应 int64_t

类型不匹配可能导致读取到错误数据。

二、问题影响(必填)

属性获取类型与 IR 原型不一致,可能导致在特定平台或编译环境下读取到截断或错误的属性值,影响算子行为的正确性。

三、问题代码片段

// grouped_matmul_tiling.cpp:1185-1191
const bool* transposeWeightPtr = attr->GetAttrPointer<bool>(ATTR_INDEX_TRANS_W);
const bool* transposeXPtr = attr->GetAttrPointer<bool>(ATTR_INDEX_TRANS_X);
const int64_t* groupTypePtr = attr->GetAttrPointer<int64_t>(ATTR_INDEX_GROUPTYPE);
const int64_t* splitItemPtr = attr->GetAttrPointer<int64_t>(ATTR_INDEX_SPLIT_ITEM);
const int64_t* actTypePtr = attr->GetAttrPointer<int64_t>(ATTR_INDEX_ACT_TYPE);
const uint32_t* groupListTypePtr = attr->GetAttrPointer<uint32_t>(ATTR_INDEX_GROUP_LIST_TYPE);  // 应为 int64_t

四、修改建议

GetAttrPointer 的模板参数类型修改为与 IR 定义一致的 int64_t

const int64_t* groupListTypePtr = attr->GetAttrPointer<int64_t>(ATTR_INDEX_GROUP_LIST_TYPE);

同时需要调整后续使用该变量的代码,确保类型一致。注意:同文件中的 groupListType_ 成员变量类型也需要相应调整。

likedislike
huang-chuhong成员
5月26日 评论:

/assign @chen-linxin4

likedislike
CANN-robotCANN-robot成员
5月26日 将 chen-linxin4 设为负责人
weinachuan成员
5月26日 评论:

您好,感谢您的关注,会尽快修改合入

likedislike
CANN-robotCANN-robot成员
6月1日 关闭了 issue
CANN-robotCANN-robot成员
6月1日 添加了label:resolved