Skip to content

Conversation

@allnes
Copy link
Contributor

@allnes allnes commented Oct 31, 2025

Add NormalizeConvertPreLower (Android-only) and register in PostSnippets
Use ov::pass::ConvertFullyConnectedToFullyConnectedCompressed to avoid ambiguous namespace

… namespace\n\n- Add NormalizeConvertPreLower (Android-only) and register in PostSnippets\n- Use ov::pass::ConvertFullyConnectedToFullyConnectedCompressed to avoid ambiguous namespace\n- No other changes outside intel_cpu; no alias shim
@allnes allnes requested review from a team as code owners October 31, 2025 13:13
@github-actions github-actions bot added the category: CPU OpenVINO CPU plugin label Oct 31, 2025
@allnes allnes requested review from aobolensk and v-Golubev October 31, 2025 13:14
@allnes allnes added platform: android OpenVINO on Android platform: arm OpenVINO on ARM / ARM64 labels Oct 31, 2025
@@ -0,0 +1,65 @@
// Copyright (C) 2025 Intel Corporation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Copyright (C) 2025 Intel Corporation
// Copyright (C) 2018-2025 Intel Corporation

@@ -0,0 +1,23 @@
// Copyright (C) 2025 Intel Corporation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Copyright (C) 2025 Intel Corporation
// Copyright (C) 2018-2025 Intel Corporation

Comment on lines +12 to +14
// CPU-side pass: for every ov::snippets::op::Subgraph, replace any remaining
// ov::op::v0::Convert / opset1::Convert inside subgraph body with
// ov::snippets::op::ConvertTruncation right before lowering in CPU pipeline.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please specify more context in the pass description (That we workaround android specific problem, its details etc.)?

Comment on lines +22 to +23
auto m_v0 = ov::pass::pattern::wrap_type<ov::op::v0::Convert>();
auto m_v1 = ov::pass::pattern::wrap_type<ov::opset1::Convert>();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please try this option?

Suggested change
auto m_v0 = ov::pass::pattern::wrap_type<ov::op::v0::Convert>();
auto m_v1 = ov::pass::pattern::wrap_type<ov::opset1::Convert>();
auto convert_m = ov::pass::pattern::wrap_type<ov::op::v0::Convert, ov::opset1::Convert>();

If it works for android, I'd prefer leaving it since it is shorter

Comment on lines +28 to +35
ov::element::Type dst;
if (auto c0 = std::dynamic_pointer_cast<ov::op::v0::Convert>(cv)) {
dst = c0->get_destination_type();
} else if (auto c1 = std::dynamic_pointer_cast<ov::opset1::Convert>(cv)) {
dst = c1->get_destination_type();
} else {
return false;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dst can be always get as cv->get_output_element_type(0), we can avoid the casting here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: CPU OpenVINO CPU plugin platform: android OpenVINO on Android platform: arm OpenVINO on ARM / ARM64

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants