From 8ad74c17a4bfcc5ec3fd7454ea30521300602b54 Mon Sep 17 00:00:00 2001 From: Tomasz Jankowski Date: Thu, 1 Dec 2022 11:10:05 +0100 Subject: [PATCH] Avoid Windows warnings in Transformantions (#14304) * Avoid Windows warnings * Don't change public API * Enhance input shape control --- .gitignore | 1 + src/common/transformations/CMakeLists.txt | 9 +-------- .../common_optimizations/gelu_fusion.cpp | 3 ++- .../mark_precision_sensitive_divides.cpp | 2 +- .../mark_precision_sensitive_subgraphs.cpp | 2 +- .../common_optimizations/ric_fusion.cpp | 12 ++++++++++-- 6 files changed, 16 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 9c0a6700507..4a656506786 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ cmake-build* # developer tools *.idea .vscode +.vs/ .DS_Store **/tags compile_commands.json diff --git a/src/common/transformations/CMakeLists.txt b/src/common/transformations/CMakeLists.txt index 7e0ae93c3d8..e61c48c028c 100644 --- a/src/common/transformations/CMakeLists.txt +++ b/src/common/transformations/CMakeLists.txt @@ -9,13 +9,6 @@ file(GLOB_RECURSE PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp) set(PUBLIC_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") -if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - ie_add_compiler_flags(/wd4018) - ie_add_compiler_flags(/wd4305) - ie_add_compiler_flags(/wd4267) -endif() - - # Create named folders for the sources within the .vcproj # Empty name lists them directly under the .vcproj @@ -63,7 +56,7 @@ set_target_properties(${TARGET_NAME}_obj PROPERTIES INTERPROCEDURAL_OPTIMIZATION openvino_developer_export_targets(COMPONENT core_legacy TARGETS ${TARGET_NAME}) -# temporary workaround for fatal error LNK1248: image size (1004722F6) exceeds maximum +# temporary workaround for fatal error LNK1248: image size (1004722F6) exceeds maximum # allowable size (FFFFFFFF) # the symbolic debugging information will be stored in a separate .pdb file. if(WIN32) diff --git a/src/common/transformations/src/transformations/common_optimizations/gelu_fusion.cpp b/src/common/transformations/src/transformations/common_optimizations/gelu_fusion.cpp index 23c606ac90c..e9fcf9c661a 100644 --- a/src/common/transformations/src/transformations/common_optimizations/gelu_fusion.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/gelu_fusion.cpp @@ -228,8 +228,9 @@ ov::pass::GeluFusionWithErfFour::GeluFusionWithErfFour() { return false; } + constexpr auto sqrt2 = static_cast(M_SQRT2); bool valid_constant_values = - ngraph::op::util::has_constant_value(mul1_const_value, 1.0f / M_SQRT2, 0.001f) && + ngraph::op::util::has_constant_value(mul1_const_value, 1.0f / sqrt2, 0.001f) && ngraph::op::util::has_constant_value(add_const_value, 0.5f) && ngraph::op::util::has_constant_value(mul2_const_value, 0.5f); diff --git a/src/common/transformations/src/transformations/common_optimizations/mark_precision_sensitive_divides.cpp b/src/common/transformations/src/transformations/common_optimizations/mark_precision_sensitive_divides.cpp index f4225f90ee1..15e6bdd683f 100644 --- a/src/common/transformations/src/transformations/common_optimizations/mark_precision_sensitive_divides.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/mark_precision_sensitive_divides.cpp @@ -56,7 +56,7 @@ bool ov::pass::MarkPrecisionSensitiveDivides::run_on_model(const std::shared_ptr if (auto sub_graph_node = ov::as_type(input_node)) { size_t sub_graphs_num = sub_graph_node->get_internal_subgraphs_size(); for (size_t sub_graph_ind = 0; sub_graph_ind < sub_graphs_num; ++sub_graph_ind) { - auto sub_graph = sub_graph_node->get_function(sub_graph_ind); + auto sub_graph = sub_graph_node->get_function(static_cast(sub_graph_ind)); run_on_model(sub_graph); } } diff --git a/src/common/transformations/src/transformations/common_optimizations/mark_precision_sensitive_subgraphs.cpp b/src/common/transformations/src/transformations/common_optimizations/mark_precision_sensitive_subgraphs.cpp index e8a2dce057d..6f6e6ae3b6d 100644 --- a/src/common/transformations/src/transformations/common_optimizations/mark_precision_sensitive_subgraphs.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/mark_precision_sensitive_subgraphs.cpp @@ -59,7 +59,7 @@ bool ov::pass::MarkPrecisionSensitiveSubgraphs::run_on_model(const std::shared_p if (auto sub_graph_node = ov::as_type(input_node)) { size_t sub_graphs_num = sub_graph_node->get_internal_subgraphs_size(); for (size_t sub_graph_ind = 0; sub_graph_ind < sub_graphs_num; ++sub_graph_ind) { - auto sub_graph = sub_graph_node->get_function(sub_graph_ind); + auto sub_graph = sub_graph_node->get_function(static_cast(sub_graph_ind)); run_on_model(sub_graph); } } diff --git a/src/common/transformations/src/transformations/common_optimizations/ric_fusion.cpp b/src/common/transformations/src/transformations/common_optimizations/ric_fusion.cpp index 1501d442e66..71da793aa17 100644 --- a/src/common/transformations/src/transformations/common_optimizations/ric_fusion.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/ric_fusion.cpp @@ -66,11 +66,19 @@ public: // Apply callback to materialize RIC inside graph void materialize(Input input, const ov::NodeVector& nodes) const { - if (get_axis() >= input.get_partial_shape().size()) { + const auto& input_pshape = input.get_partial_shape(); + const auto input_rank = input_pshape.rank(); + if (input_rank.is_dynamic()) { + NGRAPH_DEBUG << "Axis calculated to materialize RIC on input: input rank is dynamic"; + return; + } + const auto axis = get_axis(); + // Despite of m_axis is signed integer this transformartion does not handle negative axes values + if (axis < 0 || axis >= static_cast(input_pshape.size())) { NGRAPH_DEBUG << "Axis calculated to materialize RIC on input: " << input << " is out of range"; return; } - const auto& axis_dim = input.get_partial_shape()[get_axis()]; + const auto& axis_dim = input_pshape[axis]; if (axis_dim.is_dynamic()) { NGRAPH_DEBUG << "Axis calculated to materialize RIC on input: " << input << " is dynamic"; return;