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


5月26日 将 chen-linxin4 设为负责人
weinachuan
5月26日 评论:
5月26日 评论:
您好,感谢您的关注,会尽快修改合入


6月1日 关闭了 issue
6月1日 添加了label:resolved
一、问题描述(必填)
在
gmm/grouped_matmul/op_host/op_tiling/grouped_matmul_tiling.cpp文件中,存在属性获取类型与 IR 原型定义不一致的问题:行1190:
group_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_成员变量类型也需要相应调整。