From 91d922b4bbf0c30aa7110bf661b3205fee0fc01b Mon Sep 17 00:00:00 2001 From: Wang Wangwang Date: Mon, 1 Apr 2024 14:42:06 +0800 Subject: [PATCH] [HETERO] Fix some scan coverity issues (#23788) ### Details: - Fix some scan coverity issues ### Tickets: - CVS-137445 --- src/plugins/hetero/src/compiled_model.cpp | 4 ++-- src/plugins/hetero/src/graph_debug_dump.cpp | 6 +++--- src/plugins/hetero/src/plugin.cpp | 12 ++++++++---- src/plugins/hetero/src/subgraph_collector.cpp | 12 ++++++------ 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/plugins/hetero/src/compiled_model.cpp b/src/plugins/hetero/src/compiled_model.cpp index eb55cbb2012ad8..a62ebff86112a9 100644 --- a/src/plugins/hetero/src/compiled_model.cpp +++ b/src/plugins/hetero/src/compiled_model.cpp @@ -284,7 +284,7 @@ ov::Any ov::hetero::CompiledModel::get_property(const std::string& name) const { add_ro_properties(ov::supported_properties.name(), supported_properties); add_ro_properties(ov::device::properties.name(), supported_properties); add_ro_properties(ov::device::priorities.name(), supported_properties); - return decltype(ov::supported_properties)::value_type(supported_properties); + return decltype(ov::supported_properties)::value_type(std::move(supported_properties)); } else if (ov::device::properties == name) { ov::AnyMap all_devices = {}; for (const auto& comp_model_desc : m_compiled_submodels) { @@ -319,7 +319,7 @@ ov::Any ov::hetero::CompiledModel::get_property(const std::string& name) const { s.insert(comp_model_desc.device); device_names.push_back(comp_model_desc.device); } - return decltype(ov::execution_devices)::value_type{device_names}; + return decltype(ov::execution_devices)::value_type{std::move(device_names)}; } else if (ov::hetero::number_of_submodels == name) { return decltype(ov::hetero::number_of_submodels)::value_type{m_compiled_submodels.size()}; } diff --git a/src/plugins/hetero/src/graph_debug_dump.cpp b/src/plugins/hetero/src/graph_debug_dump.cpp index c4d0b755d609f2..737b7f2c33ba75 100644 --- a/src/plugins/hetero/src/graph_debug_dump.cpp +++ b/src/plugins/hetero/src/graph_debug_dump.cpp @@ -29,12 +29,12 @@ static const std::vector colors = { void dump_affinities(const std::shared_ptr& model, const std::map& supported_ops_map, const std::unordered_set& devices) { - auto name = model->get_friendly_name(); + const auto& name = model->get_friendly_name(); // clang-format off ov::pass::VisualizeTree{ "hetero_affinity_" + name + ".dot", [&](const ov::Node& node, std::vector& attributes) { - auto nodeDevice = supported_ops_map.at(node.get_friendly_name()); + const auto& nodeDevice = supported_ops_map.at(node.get_friendly_name()); int colorIndex = 0; for (auto&& device : devices) { if (device == nodeDevice) { @@ -60,7 +60,7 @@ void dump_affinities(const std::shared_ptr& model, void dump_subgraphs(const std::shared_ptr& model, const std::map& supported_ops_map, const std::map& map_id) { - auto name = model->get_friendly_name(); + const auto& name = model->get_friendly_name(); // clang-format off ov::pass::VisualizeTree{ "hetero_subgraphs_" + name + ".dot", diff --git a/src/plugins/hetero/src/plugin.cpp b/src/plugins/hetero/src/plugin.cpp index 0c48703aabd404..0e88e3c68b3108 100644 --- a/src/plugins/hetero/src/plugin.cpp +++ b/src/plugins/hetero/src/plugin.cpp @@ -162,14 +162,18 @@ std::pair ov::hetero::Plu } else if (available_discrete_device_memory >= 1.2 * total_ops_size || available_device_mem_map.count("CPU")) { float model_ratio = - static_cast(available_device_mem_map[device_name] * 1.0 / (1.2 * total_ops_size)); + total_ops_size > 0 + ? static_cast(available_device_mem_map[device_name] * 1.0 / (1.2 * total_ops_size)) + : 1.0f; if (total_ops_size < available_device_mem_map[device_name]) { model_ratio = 1.0f; } device_config[ov::internal::query_model_ratio.name()] = model_ratio; } else { - float model_ratio = static_cast(available_device_mem_map[device_name] * 1.0 / - available_discrete_device_memory); + float model_ratio = available_discrete_device_memory > 0 + ? static_cast(available_device_mem_map[device_name] * 1.0 / + available_discrete_device_memory) + : 1.0f; device_config[ov::internal::query_model_ratio.name()] = model_ratio; } // Remove the current device @@ -275,7 +279,7 @@ ov::Any ov::hetero::Plugin::get_property(const std::string& name, const ov::AnyM supported_properties.reserve(ro_properties.size() + rw_properties.size()); supported_properties.insert(supported_properties.end(), ro_properties.begin(), ro_properties.end()); supported_properties.insert(supported_properties.end(), rw_properties.begin(), rw_properties.end()); - return decltype(ov::supported_properties)::value_type(supported_properties); + return decltype(ov::supported_properties)::value_type(std::move(supported_properties)); } else if (ov::internal::supported_properties == name) { return decltype(ov::internal::supported_properties)::value_type{ ov::PropertyName{ov::internal::caching_properties.name(), ov::PropertyMutability::RO}}; diff --git a/src/plugins/hetero/src/subgraph_collector.cpp b/src/plugins/hetero/src/subgraph_collector.cpp index 2cde737d5a8c28..d1c9c4d18aebff 100644 --- a/src/plugins/hetero/src/subgraph_collector.cpp +++ b/src/plugins/hetero/src/subgraph_collector.cpp @@ -236,8 +236,8 @@ void ov::hetero::SubgraphCollector::split_subgraphs_by_parameter_results() { _subgraph_ids.emplace(result, output_subgraph_id); _intermediate_results.push_back(result); for (const auto& input_subset : input_subsets) { - const auto input_subgraph_id = input_subset.first; - const auto inputs = input_subset.second; + const auto& input_subgraph_id = input_subset.first; + const auto& inputs = input_subset.second; // Avoid duplicate parameters in the same subgraph auto parameter = std::make_shared(output.get_element_type(), output.get_partial_shape()); @@ -428,9 +428,9 @@ void ov::hetero::merge_submodels(std::vector>& submod port_in_index++; continue; } - auto submodel_out_index = item->second.first; - auto submodel_out_result_name = item->second.second; - auto submodel_out = submodels.at(submodel_out_index); + const auto& submodel_out_index = item->second.first; + const auto& submodel_out_result_name = item->second.second; + const auto& submodel_out = submodels.at(submodel_out_index); std::shared_ptr result_to_replace = nullptr; for (auto& result : submodel_out->get_results()) { @@ -600,7 +600,7 @@ ov::hetero::SubgraphsMappingInfo ov::hetero::mask_model_subgraphs_by_ops(std::sh const std::string subgraph_id_rt_info_name = "HETERO_SUBGRAPH_ID"; const std::string input_id_rt_info_name = "HETERO_INPUT_ID"; const std::string output_id_rt_info_name = "HETERO_OUTPUT_ID"; - const auto name = model->get_friendly_name(); + const auto& name = model->get_friendly_name(); SubgraphsVector ordered_subgraphs; SubgraphsMappingInfo mapping_info;