-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[GPU] Conv should not extend strides and dilations for 3d output #26415
[GPU] Conv should not extend strides and dilations for 3d output #26415
Conversation
03c60d0
to
aec80e9
Compare
@@ -44,7 +44,7 @@ static void CreateConvolutionOp(ProgramBuilder& p, const std::shared_ptr<ov::int | |||
auto pads_end = op->get_pads_end(); | |||
auto auto_pad = op->get_auto_pad(); | |||
|
|||
if (!op->is_dynamic()) { | |||
if (!op->is_dynamic() && outDims.size() >= 4) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you explain more about this code? The commit message said "Conv doens't extend strides and dilations for 3d output". Does it mean that "conv should not extend ..."?
I think this code itself is about to handle 3d case properly because 1d vector is used when outDims.size() == 3
. Is there a case where this condition is true?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Yes it means, "conv should not extend ...".
- 1d conv has 3d input/output shape. The extension code looks like old style to handling minimum 4d tensor.
- "Is there a case where this condition is true?" --> stride is 1d at original model, but input/output becomes 4d case at original or during optimization possibly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then please update commit message accordingly. Could you check whether this code is executed? I think you can check it with the broader set of models that has 1d convolution. I think we need to remove this block if it is of no use. Also, please run jenkins testing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've update the condition with !p.use_new_shape_infer(). We may delete whole 'if' code block after old shpae infer is no more used.
::testing::Values(ov::test::static_partial_shapes_to_test_representation(std::vector<ov::PartialShape>({{1, 256, 1}}))), | ||
::testing::Values(ov::test::utils::DEVICE_GPU)), | ||
ConvolutionLayerTest::getTestCaseName); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does this test fail without fixing the code? I tried this and it succeeded without your fix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This 1D conv test is just for filling the 1d conv unit test to ensure 1d case because of it's missing part. This test is not related to the fix code.
"smoke_static_conv_n_dynamic_concat" functional test is related with the fix code.
aec80e9
to
155d849
Compare
ea3a185
to
75217ac
Compare
75217ac
to
3316fc2
Compare
Details:
Tickets: