已关闭
[Bug-Report|缺陷反馈]: 测试代码中 bias 形状定义错误 #2478
旋风地虎创建于  5月3日关闭于  5月7日
旋风地虎
旋风地虎
5月3日 创建

Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.

Describe the current behavior / 问题描述 (Mandatory / 必填)

在 ops-nn/matmul/quant_matmul/tests/ut/op_host/test_aclnn_quant_matmul.cpp:39 文件的第一个测试用例中:

TEST_F(l2_quant_matmul_test, ascend910B2_test_normal_input){
    auto x1_desc = TensorDesc({16, 32}, ACL_INT8, ACL_FORMAT_ND);
    auto x2_desc = TensorDesc({32, 16}, ACL_INT8, ACL_FORMAT_ND);
    auto bias_desc = TensorDesc({16, 16}, ACL_INT32, ACL_FORMAT_ND);  // 疑似存在错误!
    float deqScale = 1.0;
    auto out_desc = TensorDesc({16}, ACL_FLOAT16, ACL_FORMAT_ND);     //疑似存在错误
    ……
    // ut.TestPrecision();
}

Environment / 环境信息 (Mandatory / 必填)

昇腾,1*NPU 910C 40vCPUs 240GiB

Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)

根据算子文档和代码中的校验逻辑:

bias 形状错误:在 aclnn_quant_matmul.cpp:251-260 中有明确的 bias 校验:

// 检查bias是否与n一致
if (bias != nullptr) { 
	op::Shape biasShape = bias->GetViewShape();
    int64_t biasNDim = biasShape[0]; // 0: 取bias的N
    OP_CHECK(biasNDim == x2NDim, ...);
}

对于 x2 = {32, 16},N=16,所以 bias 应该是 {16} 而不是 {16, 16}
缺少 EXPECT 断言:即使定义了错误的参数,大部分测试用例的 EXPECT_EQ 都被注释掉了,无法捕获这类错误。

而作为对比,在同一文件的 V2 接口测试中(第79行),bias 定义是正确的
auto bias_desc = TensorDesc({3}, ACL_INT32, ACL_FORMAT_ND);

Describe the expected behavior / 预期结果 (Mandatory / 必填)

第一个测试用例应修改为:

auto bias_desc = TensorDesc({16}, ACL_INT32, ACL_FORMAT_ND); // 修正为 {16}

或者按照矩阵乘法的正确语义,需要同时修正 x1/x2/bias 的组合使得逻辑自洽。

屏幕截图 2026-05-03 191246.png
屏幕截图 2026-05-03 191257.png
屏幕截图 2026-05-03 191554.png

Special notes for this issue/备注 (Optional / 选填)

likedislike
旋风地虎旋风地虎
5月3日 修改了issue 的描述
oscillatedoscillated成员
5月5日 将 chaotang233 设为负责人
oscillated
oscillated成员
5月5日 评论:

您好,问题已收到,已安排对应负责人。

likedislike
oscillatedoscillated成员
5月6日 移除了负责人 chaotang233
oscillatedoscillated成员
5月6日 将 hid54649903 设为负责人
zhang-junming21zhang-junming21成员
5月6日 关联了pull request:修复问题:测试代码中 bias 形状定义错误
CANN-robotCANN-robot成员
5月7日 关闭了 issue
CANN-robotCANN-robot成员
5月7日 添加了label:resolved