Merge pull request #22995 from alalek:dnn_fix_opencl_matmul
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Tue, 20 Dec 2022 14:52:35 +0000 (14:52 +0000)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Tue, 20 Dec 2022 14:52:35 +0000 (14:52 +0000)
modules/dnn/src/layers/fully_connected_layer.cpp
modules/dnn/test/test_onnx_importer.cpp

index 321994c..505ea46 100644 (file)
@@ -510,7 +510,7 @@ public:
         CV_TRACE_FUNCTION();
         CV_TRACE_ARG_VALUE(name, "name", name.c_str());
 
-        CV_OCL_RUN(IS_DNN_OPENCL_TARGET(preferableTarget),
+        CV_OCL_RUN(IS_DNN_OPENCL_TARGET(preferableTarget) && !isMatMul,
                    forward_ocl(inputs_arr, outputs_arr, internals_arr))
 
         if (inputs_arr.depth() == CV_16S)
index e8350e4..4546dcc 100644 (file)
@@ -904,23 +904,37 @@ TEST_P(Test_ONNX_layers, Multiplication)
     testONNXModels("mul");
 }
 
-TEST_P(Test_ONNX_layers, MatMul)
+TEST_P(Test_ONNX_layers, MatMul_2d)
 {
-    if (backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019)
-        applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER);
-
     testONNXModels("matmul_2d");
+}
+TEST_P(Test_ONNX_layers, MatMul_3d)
+{
     testONNXModels("matmul_3d");
+}
+TEST_P(Test_ONNX_layers, MatMul_4d)
+{
     testONNXModels("matmul_4d");
 }
 
-TEST_P(Test_ONNX_layers, MatMul_init)
+TEST_P(Test_ONNX_layers, MatMul_2d_init)
 {
     testONNXModels("matmul_2d_init");
+}
+TEST_P(Test_ONNX_layers, MatMul_3d_init)
+{
     testONNXModels("matmul_3d_init");
+}
+TEST_P(Test_ONNX_layers, MatMul_4d_init)
+{
     testONNXModels("matmul_4d_init");
-
+}
+TEST_P(Test_ONNX_layers, MatMul_init_2)
+{
     testONNXModels("matmul_init_2");
+}
+TEST_P(Test_ONNX_layers, MatMul_init_bcast)
+{
     testONNXModels("matmul_init_bcast");
 }