-
Notifications
You must be signed in to change notification settings - Fork 2.9k
[CPU][ARM] Enable subgraph tests #25399
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
[CPU][ARM] Enable subgraph tests #25399
Conversation
e9c1c60 to
d727e6a
Compare
EgorDuplensky
left a comment
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.
Can we try to enable causal mask preprocess fusion for ARM as well?
@usstq What do you think?
| }; | ||
|
|
||
| #if defined(OPENVINO_ARCH_ARM) | ||
| const ExpectedResult successfull_fuse_result{1, 1, 3}; |
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.
It seems the reason is an additional reorder appears in the graph because the Eltwise (bias?) is not fused into groupconvolution node
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, EltwiseAdd is not in the list of supported postops: https://github.com/alvoron/openvino/blob/37ab2c6abe2519e1ae2494e163798dfce7d8fce4/src/plugins/intel_cpu/src/dnnl_extension_utils.cpp#L227-L234
EgorDuplensky
left a comment
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.
@maxnick Can we use a planar layout for ReLuConcatConvSumInPlaceTest subgraph test? Since currently the test forces blocking layout it is impossible to run it on ARM
EgorDuplensky
left a comment
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.
let's remove layout specialization from interaction subgraph test and enable it for ARM as well.
| @@ -0,0 +1,90 @@ | |||
| // Copyright (C) 2018-2024 Intel Corporation | |||
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.
Why we have to make those instances x86 specific?
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.
Reference implementation (ref_any) does not support nchw/ndchw layouts on ARM. I've got the error No supported primitive descriptors matched the provided input / output memory format filters while pushing these layouts into the test.
nspc works well for reference on both ARM and x64. Can we replace nchw/ndchw with nhwc/ndhwc and keep conv tests common?
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.
Discussed with Dmitry, there is no need to enable ncsp descriptor for ARM in Convolution node. We will keep ncsp tests as x64-specific.
|
|
||
| TEST_P(FuseTransposeAndReorderTest3, CompareWithRefs) { | ||
| run(); | ||
| check_transpose_count(1); |
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.
what result do we get for ARM?
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.
There is no Transpose on ARM.
Yes, sure, but please use nspc layout instead as the main one for optimized convolution implementations. |
As discussed offline, Interaction node and interaction transformations are enabled on x64 only, so Interaction tests are x64 specific as well. |
5a9b362 to
37ab2c6
Compare
| selectedType += execType.get_type_name(); | ||
| } | ||
|
|
||
| std::vector<CPUSpecificParams> filterCPUSpecificParams(const std::vector<CPUSpecificParams>& paramsVector) { |
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.
Let's revert this change and fix the particular test cases which cause the issue
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 change is reverted (this method has been moved to utils/x64/filter_cpu_info.cpp
2 methods - getCPUParamsBlocked4D and getCPUParamsBlocked5D were implemented in single_layer_tests/slice.cpp to do x64-specific fintering
…openvino into alvoron_subgraph_tests2
### Details: - Subgraph tests are enabled on ARM platforms ### Tickets: - CVS-112267
Details:
Tickets: