From 0ae368396a5ca2c5925465b4a55442623c8e33ad Mon Sep 17 00:00:00 2001 From: Sergey Shlyapnikov Date: Thu, 3 Oct 2024 17:01:19 +0400 Subject: [PATCH 1/2] [GPU] Adjust usm_host memory usage for InferRequest tensors (#26896) ### Details: - Adjust usm_host memory usage for InferRequest tensors --- src/plugins/intel_gpu/src/plugin/sync_infer_request.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/intel_gpu/src/plugin/sync_infer_request.cpp b/src/plugins/intel_gpu/src/plugin/sync_infer_request.cpp index 346b4471779593..88d69dcd3e47b3 100644 --- a/src/plugins/intel_gpu/src/plugin/sync_infer_request.cpp +++ b/src/plugins/intel_gpu/src/plugin/sync_infer_request.cpp @@ -34,9 +34,12 @@ namespace { inline bool can_use_usm_host(const cldnn::engine& engine) { auto can_use_usm = engine.use_unified_shared_memory(); - if (engine.get_device_info().gfx_ver.major == 12 && engine.get_device_info().gfx_ver.minor == 60) { - // WA: Disable USM host memory for infer request`s tensors for PVC as - // it has performance issues in case of host <-> device data transfers inside kernels + const auto& device_info = engine.get_device_info(); + if ((device_info.gfx_ver.major == 12 && device_info.gfx_ver.minor == 60) || + (device_info.gfx_ver.major >= 20 && device_info.dev_type == cldnn::device_type::discrete_gpu)) { + // WA: Disable USM host memory for infer request`s tensors for PVC and subsequent dGPUs, as kernel access + // to system memory is slower than using an explicit memcpy (Host <-> Device) call with the copy engine + // Driver tickets with additional details: 6155, 10054 GPU_DEBUG_TRACE << "Do not use usm_host for performance issue" << std::endl; can_use_usm = false; } From 890f2e12c98fa53163439170eaa304e8bd45337b Mon Sep 17 00:00:00 2001 From: Pavel Durandin Date: Thu, 3 Oct 2024 17:48:26 +0400 Subject: [PATCH 2/2] [GPU] Fix empty oneDnn users (#26900) ### Details: - Fix empty oneDnn users --- src/plugins/intel_gpu/src/graph/layout_optimizer.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp b/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp index ae64846a0c9b5e..57f2fb41c7cc06 100644 --- a/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp +++ b/src/plugins/intel_gpu/src/graph/layout_optimizer.cpp @@ -1089,11 +1089,13 @@ format layout_optimizer::get_expected_format(quantize_node const& node) { auto use_onednn_impls = _optimization_attributes.use_onednn_impls; if (use_onednn_impls) { - auto& user = node.get_users().front(); - if (user != nullptr && user->get_preferred_input_fmt(user->get_dependency_index(node)) != format::any) { - expected = user->get_preferred_input_fmt(user->get_dependency_index(node)); - } else { - expected = format::any; + expected = format::any; + auto& users = node.get_users(); + if (users.size() != 0) { + auto& user = users.front(); + if (user != nullptr && user->get_preferred_input_fmt(user->get_dependency_index(node)) != format::any) { + expected = user->get_preferred_input_fmt(user->get_dependency_index(node)); + } } } else if (only_gemm_users(node)) { // TODO: Gemm is not supporting fsv layouts