openvino icon indicating copy to clipboard operation
openvino copied to clipboard

[OP CONFORMANCE][TEMPLATE] Convolution tests are failed in opset conformance

Open awayzjj opened this issue 10 months ago • 14 comments

Closes https://github.com/openvinotoolkit/openvino/issues/23554

Details:

  • item1
  • ...

Tickets:

  • ticket-id

awayzjj avatar Apr 22 '24 09:04 awayzjj

@awayzjj Many thanks for investigation and contribution to OpenVINO! Welcome to our project!

As I can see, we have two similar PR for two contributors: PR from @Vladislav-Denisov and PR from @awayzjj. So the main difference is fix static input static shape generation for different operations: first PR is for pooling ops, second one is for convolution.

The possible option is to merge 2 solution to one and develop static input generation for pooling and convolution over the solution. Second option is to merge first green PR with applied review comments as a source solution for input static shape generation, second PR should be based on first merged.

@Vladislav-Denisov @awayzjj Please discuss in PR comments?

FYI: Each of @Vladislav-Denisov @awayzjj will be a contributor to OpenVino. We need to decide merge order and align the solutions.

iefode avatar Apr 23 '24 09:04 iefode

@iefode Thank you for your comments! I have incorporated your suggestions. Can you please review this PR again?

awayzjj avatar Apr 24 '24 15:04 awayzjj

@awayzjj @Vladislav-Denisov Please check the comments under each of your PRs.

Many thanks!

iefode avatar Apr 25 '24 13:04 iefode

@iefode sorry for too many extra includes, I have incorporated your suggestions. Can you please review this PR again?

awayzjj avatar Apr 26 '24 11:04 awayzjj

In general, LGTM I have approved the CI pipeline run Please check

iefode avatar Apr 26 '24 11:04 iefode

@iefode Hi, the Conformance(OP) job failed, but failed tests did not include the failed tests described in this issue, is it ok ?

awayzjj avatar Apr 26 '24 13:04 awayzjj

@iefode Hi, the Conformance(OP) job failed, but failed tests did not include the failed tests described in this issue, is it ok ?

We implement this functionality for conformance. This statement means that we need to fix all conformance jobs :)

iefode avatar Apr 29 '24 09:04 iefode

@iefode Hi, the Conformance(OP) job failed, but failed tests did not include the failed tests described in this issue, is it ok ?

We implement this functionality for conformance. This statement means that we need to fix all conformance jobs :)

@iefode Thank you for your response! I'm a bit confused. The failed tests only seem to cover the CPU plugin, as shown here: 截屏2024-04-29 19 54 00 截屏2024-04-29 19 56 58 However, the issues seem to require addressing tests of the TEMPLATE plugin, as shown here: 截屏2024-04-29 19 58 56

Why did the Conformance(OP) job not cover the TEMPLATE plugin, and do I need to fix these tests of the CPU plugin?

awayzjj avatar Apr 29 '24 12:04 awayzjj

@iefode Hi, the Conformance(OP) job failed, but failed tests did not include the failed tests described in this issue, is it ok ?

We implement this functionality for conformance. This statement means that we need to fix all conformance jobs :)

@iefode Thank you for your response! I'm a bit confused. The failed tests only seem to cover the CPU plugin, as shown here: 截屏2024-04-29 19 54 00 截屏2024-04-29 19 56 58 However, the issues seem to require addressing tests of the TEMPLATE plugin, as shown here: 截屏2024-04-29 19 58 56

Why did the Conformance(OP) job not cover the TEMPLATE plugin, and do I need to fix these tests of the CPU plugin?

@awayzjj

Conformance tests are the same for all plugins (Including Template and CPU plugin), because they run the same executable file with the same conformance IRs over different devices. So in case fix of conformance/test infrastructure (like in our case), it should work for all plugins (the fix should improve the results, not corrupt). Have you checked the failures? Thanks!

iefode avatar Apr 29 '24 18:04 iefode

@iefode I almost addressing all failed tests, which can be categorizing into four types:

  1. ConvolutionBackpropData Operation
  2. Convolution Operation with kernel dims>3
  3. Kernel of Convolution Operation with attribute setting convert_to_const="false" in .meta file.
  4. Cases corrupted by unproper optimization changes
            if (range > std::numeric_limits<char>::max()) {
                ov::test::utils::fill_data_random(&range, 1, std::numeric_limits<char>::max(), s.get_min_length(), 1);
            }
            ov::test::utils::fill_data_random(&dimValue, 1, range, s.get_min_length(), 1);

->

            if (range > std::numeric_limits<char>::max()) {
                ov::test::utils::fill_data_random(&range, 1, std::numeric_limits<char>::max(), s.get_min_length(), 1);
            } else {
                ov::test::utils::fill_data_random(&dimValue, 1, range, s.get_min_length(), 1);
            }

Howerver, I failed to fix the test case below

openvino/bin/intel64/Release/ov_op_conformance_tests --device=CPU --input_folders=openvino/src/tests/test_utils/functional_test_utils/layer_tests_summary/temp/models/conformance_ir_files.lst, --report_unique_name --output_folder="openvino/src/tests/test_utils/functional_test_utils/layer_tests_summary/temp/report/parallel" --gtest_filter="conformance_Convolution/ReadIRTest.Inference/Op=Convolution.1_Type=f32_Shape=dynamic_IR=27d1a1cfdbadd9a8c2d0269f6177d6aabd55320aafe9a0047e90681dcad1cbe9_Device=CPU_Config=()"

It resulted in the following error:

MEM_USAGE=44504KB
[ CONFORMANCE ] Influence coefficient: 5.82331e-06
[ PLUGIN      ] `SubgraphBaseTest::compile_model()` is started
[ PLUGIN      ] `SubgraphBaseTest::compile_model()` is finished successfully. Duration is 0.0098428s
[ PLUGIN      ] `SubgraphBaseTest::get_plugin_outputs()` is started
[ REFERENCE   ] `SubgraphBaseTest::calculate_refs()` is started
[ REFERENCE   ] Calculate reference in runtime
[ REFERENCE   ] `SubgraphBaseTest::calculate_refs()` is started
[ PLUGIN      ] `SubgraphBaseTest::get_plugin_outputs()` is finished successfully. Duration is 0.0022608s
[ REFERENCE   ] `SubgraphBaseTest::calculate_refs()` is finished successfully. Duration is 0.0168911s
[ REFERENCE   ] `SubgraphBaseTest::calculate_refs()` is finished successfully. Duration is 0.0170173s
[ COMPARATION ] `ov_tensor_utils.hpp::compare()` is started
[ COMPARATION ] `ov_tensor_utils.hpp::compare()` is finished successfully. Duration is 0.00046426s
[ PLUGIN      ] `SubgraphBaseTest::get_plugin_outputs()` is started
[ REFERENCE   ] `SubgraphBaseTest::calculate_refs()` is started
[ REFERENCE   ] Calculate reference in runtime
[ REFERENCE   ] `SubgraphBaseTest::calculate_refs()` is started
[ PLUGIN      ] `SubgraphBaseTest::get_plugin_outputs()` is finished successfully. Duration is 0.470841s
[ REFERENCE   ] `SubgraphBaseTest::calculate_refs()` is finished successfully. Duration is 24.4001s
[ REFERENCE   ] `SubgraphBaseTest::calculate_refs()` is finished successfully. Duration is 24.4002s
[ COMPARATION ] `ov_tensor_utils.hpp::compare()` is started
[ COMPARATION ] `ov_tensor_utils.hpp::compare()` is finished successfully. Duration is 0.0936297s
[ PLUGIN      ] `SubgraphBaseTest::get_plugin_outputs()` is started
[ REFERENCE   ] `SubgraphBaseTest::calculate_refs()` is started
[ REFERENCE   ] Calculate reference in runtime
[ REFERENCE   ] `SubgraphBaseTest::calculate_refs()` is started
Unexpected application crash with code: 15

Upon further investigation, I found that the issue might be related to the input shape being too large for my 16GB machine.(The test case exit when the RES of the process reached about 10.8g) 截屏2024-05-01 11 56 44

The maximum shape of the input is (127, 512, 127, 127). When I restricted the shape to (64, 512, 127, 127), the test case passed.

Could you please review the changes and approved the CI pipeline run again? Thank you very much!

awayzjj avatar May 01 '24 03:05 awayzjj

@iefode Hi, could you please review the changes and approved the CI pipeline run again? Thank you very much!

awayzjj avatar May 06 '24 13:05 awayzjj

@iefode Hi, could you please review the changes and approved the CI pipeline run again? Thank you very much!

awayzjj avatar May 13 '24 08:05 awayzjj

@awayzjj Many thanks for an exploration! So sorry for late reply. I have checked the changes and run CI pipelines

iefode avatar May 13 '24 08:05 iefode

@iefode The Conformance(OP) job passed! I fixed the align issue. Could you please run the CI pipelines include ci/jenkins again?

awayzjj avatar May 13 '24 11:05 awayzjj

build_jenkins

andrei-kochin avatar May 13 '24 12:05 andrei-kochin

@iefode @andrei-kochin Hi, the full scope of CI is full green, could you please merge the PR into master branch? 😀

awayzjj avatar May 14 '24 02:05 awayzjj