diff --git a/docs/articles_en/openvino-workflow/running-inference/inference-devices-and-modes/cpu-device.rst b/docs/articles_en/openvino-workflow/running-inference/inference-devices-and-modes/cpu-device.rst index 30d376e18a608a..00fd19dd404b11 100644 --- a/docs/articles_en/openvino-workflow/running-inference/inference-devices-and-modes/cpu-device.rst +++ b/docs/articles_en/openvino-workflow/running-inference/inference-devices-and-modes/cpu-device.rst @@ -355,6 +355,7 @@ All parameters must be set before calling ``ov::Core::compile_model()`` in order - ``ov::hint::num_request`` - ``ov::hint::scheduling_core_type`` - ``ov::hint::enable_hyper_threading`` +- ``ov::hint::enable_cpu_reservation`` - ``ov::hint::enable_cpu_pinning`` - ``ov::num_streams`` - ``ov::inference_num_threads`` diff --git a/src/inference/dev_api/openvino/runtime/system_conf.hpp b/src/inference/dev_api/openvino/runtime/system_conf.hpp index 12a625c112d342..617e4eeff1146b 100644 --- a/src/inference/dev_api/openvino/runtime/system_conf.hpp +++ b/src/inference/dev_api/openvino/runtime/system_conf.hpp @@ -219,6 +219,13 @@ OPENVINO_RUNTIME_API std::vector> get_proc_type_table(); */ OPENVINO_RUNTIME_API int get_current_socket_id(); +/** + * @brief Returns the numa node ID in cpu mapping table of the currently running thread. + * @ingroup ov_dev_api_system_conf + * @return numa node ID in cpu mapping + */ +OPENVINO_RUNTIME_API int get_current_numa_node_id(); + /** * @brief Returns a table of original number of processor types without filtering other plugins occupying CPU * resources. The difference from get_proc_type_table: This is used to get the configuration of current machine. For diff --git a/src/inference/dev_api/openvino/runtime/threading/cpu_streams_executor.hpp b/src/inference/dev_api/openvino/runtime/threading/cpu_streams_executor.hpp index 26b0592c94ce10..2ee4aa6fe05871 100644 --- a/src/inference/dev_api/openvino/runtime/threading/cpu_streams_executor.hpp +++ b/src/inference/dev_api/openvino/runtime/threading/cpu_streams_executor.hpp @@ -57,6 +57,8 @@ class OPENVINO_RUNTIME_API CPUStreamsExecutor : public IStreamsExecutor { std::vector get_rank() override; + void cpu_reset() override; + private: struct Impl; std::unique_ptr _impl; diff --git a/src/inference/dev_api/openvino/runtime/threading/istreams_executor.hpp b/src/inference/dev_api/openvino/runtime/threading/istreams_executor.hpp index 4ce7a76cbd7743..efb9d41a4dd5a6 100644 --- a/src/inference/dev_api/openvino/runtime/threading/istreams_executor.hpp +++ b/src/inference/dev_api/openvino/runtime/threading/istreams_executor.hpp @@ -12,6 +12,7 @@ #include #include #include +#include #include "openvino/runtime/common.hpp" #include "openvino/runtime/properties.hpp" @@ -89,14 +90,15 @@ class OPENVINO_RUNTIME_API IStreamsExecutor : virtual public ITaskExecutor { ov::hint::SchedulingCoreType::ANY_CORE; //!< PCORE_ONLY and ECORE_ONLY are valid in hybrid core machine, //!< ANY_CORE is valid in all machines. Core type priority: //!< physical PCore, ECore, logical PCore - bool _cpu_reservation = false; //!< Whether to reserve current cores which will not be used by other plugin. - //!< If it is true, cpu_pinning defaults to true. + bool _cpu_reservation = false; //!< Whether to reserve current cores which will not be used by other plugin or + //!< compiled model. If it is true, cpu_pinning defaults to true. bool _cpu_pinning = false; //!< Whether to bind threads to cores. bool _cores_limit = true; //!< Whether to limit the number of streams and threads by the number of cpu cores std::vector> _streams_info_table = {}; std::vector> _stream_processor_ids; int _sub_streams = 0; std::vector _rank = {}; + bool _add_lock = true; /** * @brief Get and reserve cpu ids based on configuration and hardware information, @@ -109,6 +111,8 @@ class OPENVINO_RUNTIME_API IStreamsExecutor : virtual public ITaskExecutor { */ void update_executor_config(); + void update_executor_config(bool lock); + /** * @brief Set _streams_info_table and _cpu_reservation in cpu streams executor config when nstreams = 0, * that is, only create one thread with TBB @@ -136,7 +140,8 @@ class OPENVINO_RUNTIME_API IStreamsExecutor : virtual public ITaskExecutor { bool cpu_pinning = false, bool cores_limit = true, std::vector> streams_info_table = {}, - std::vector rank = {}) + std::vector rank = {}, + bool add_lock = true) : _name{std::move(name)}, _streams{streams}, _threads_per_stream{threads_per_stream}, @@ -145,8 +150,9 @@ class OPENVINO_RUNTIME_API IStreamsExecutor : virtual public ITaskExecutor { _cpu_pinning{cpu_pinning}, _cores_limit{cores_limit}, _streams_info_table{std::move(streams_info_table)}, - _rank{rank} { - update_executor_config(); + _rank{rank}, + _add_lock(add_lock) { + update_executor_config(_add_lock); } // These APIs which includes set_property and get_property can not be removed until they will never be called by @@ -266,6 +272,11 @@ class OPENVINO_RUNTIME_API IStreamsExecutor : virtual public ITaskExecutor { */ virtual std::vector get_rank() = 0; + /** + * @brief Reset cpu map table when user set enable_cpu_reservation = true + */ + virtual void cpu_reset() = 0; + /** * @brief Execute the task in the current thread using streams executor configuration and constraints * @param task A task to start @@ -273,5 +284,7 @@ class OPENVINO_RUNTIME_API IStreamsExecutor : virtual public ITaskExecutor { virtual void execute(Task task) = 0; }; +static std::mutex _streams_executor_mutex; + } // namespace threading } // namespace ov diff --git a/src/inference/include/openvino/runtime/properties.hpp b/src/inference/include/openvino/runtime/properties.hpp index fb4f8d2af17f67..5917cb33373e8b 100644 --- a/src/inference/include/openvino/runtime/properties.hpp +++ b/src/inference/include/openvino/runtime/properties.hpp @@ -479,6 +479,23 @@ static constexpr Property> model_distribution_ */ static constexpr Property enable_cpu_pinning{"ENABLE_CPU_PINNING"}; +/** + * @brief This property allows CPU reservation during inference. + * @ingroup ov_runtime_cpp_prop_api + * + * Cpu Reservation means reserve cpus which will not be used by other plugin or compiled model. Developer can use this + * property to enable or disable CPU reservation during inference on Windows and Linux. MacOS does not support CPU + * reservation, and this property is always disabled. This property defaults to false. + * + * The following code is example to use this property. + * + * @code + * ie.set_property(ov::hint::enable_cpu_reservation(true)); + * ie.set_property(ov::hint::enable_cpu_reservation(false)); + * @endcode + */ +static constexpr Property enable_cpu_reservation{"ENABLE_CPU_RESERVATION"}; + /** * @brief This property define if using hyper threading during inference. * @ingroup ov_runtime_cpp_prop_api diff --git a/src/inference/src/dev/threading/cpu_streams_executor.cpp b/src/inference/src/dev/threading/cpu_streams_executor.cpp index b51289dabc2735..a10709aa6db3df 100644 --- a/src/inference/src/dev/threading/cpu_streams_executor.cpp +++ b/src/inference/src/dev/threading/cpu_streams_executor.cpp @@ -92,14 +92,6 @@ struct CPUStreamsExecutor::Impl { _impl->_streamIdQueue.push(_streamId); } #if OV_THREAD == OV_THREAD_TBB || OV_THREAD == OV_THREAD_TBB_AUTO - if (_impl->_config.get_name().find("StreamsExecutor") == std::string::npos) { - try { - set_cpu_used(_cpu_ids, NOT_USED); - } catch (const ov::Exception&) { - // Destructor should not throw - catch needed for static analysis. - // CPU::CPU() won't throw here as cpu_info() is called from Stream constructor. - } - } if (nullptr != _observer) { _observer->observe(false); } @@ -345,6 +337,7 @@ struct CPUStreamsExecutor::Impl { _exectorMgr = executor_manager(); auto numaNodes = get_available_numa_nodes(); int streams_num = _config.get_streams(); + auto processor_ids = _config.get_stream_processor_ids(); if (streams_num != 0) { std::copy_n(std::begin(numaNodes), std::min(streams_num, numaNodes.size()), @@ -353,6 +346,10 @@ struct CPUStreamsExecutor::Impl { _usedNumaNodes = std::move(numaNodes); } for (auto streamId = 0; streamId < streams_num; ++streamId) { + if (_config.get_cpu_reservation()) { + std::lock_guard lock(_cpu_ids_mutex); + _cpu_ids_all.insert(_cpu_ids_all.end(), processor_ids[streamId].begin(), processor_ids[streamId].end()); + } _threads.emplace_back([this, streamId] { openvino::itt::threadName(_config.get_name() + "_" + std::to_string(streamId)); for (bool stopped = false; !stopped;) { @@ -457,6 +454,8 @@ struct CPUStreamsExecutor::Impl { CustomThreadLocal _streams; std::shared_ptr _exectorMgr; bool _isExit = false; + std::vector _cpu_ids_all; + std::mutex _cpu_ids_mutex; }; int CPUStreamsExecutor::get_stream_id() { @@ -492,9 +491,20 @@ std::vector CPUStreamsExecutor::get_rank() { return stream->_rank; } +void CPUStreamsExecutor::cpu_reset() { + if (!_impl->_cpu_ids_all.empty()) { + set_cpu_used(_impl->_cpu_ids_all, NOT_USED); + { + std::lock_guard lock(_impl->_cpu_ids_mutex); + _impl->_cpu_ids_all.clear(); + } + } +} + CPUStreamsExecutor::CPUStreamsExecutor(const IStreamsExecutor::Config& config) : _impl{new Impl{config}} {} CPUStreamsExecutor::~CPUStreamsExecutor() { + cpu_reset(); { std::lock_guard lock(_impl->_mutex); _impl->_isStopped = true; diff --git a/src/inference/src/dev/threading/istreams_executor.cpp b/src/inference/src/dev/threading/istreams_executor.cpp index 5563232ca87e7f..59201baadfd387 100644 --- a/src/inference/src/dev/threading/istreams_executor.cpp +++ b/src/inference/src/dev/threading/istreams_executor.cpp @@ -159,27 +159,32 @@ void IStreamsExecutor::Config::update_executor_config() { const auto proc_type_table = get_proc_type_table(); bool streams_info_available = false; - if (proc_type_table.empty()) { - return; - } - - if (_cpu_reservation && !_cpu_pinning) { - _cpu_pinning = true; + if (proc_type_table.empty() || proc_type_table[0][ALL_PROC] == 0) { + if (_cpu_reservation) { + OPENVINO_THROW("[ Config ] proc_type_table is empty. No CPU resources available!"); + } else { + return; + } } if (!_streams_info_table.empty()) { streams_info_available = true; std::vector threads_proc_type(HYPER_THREADING_PROC + 1, 0); + int threads_all = 0; for (size_t i = 0; i < _streams_info_table.size(); i++) { if (_streams_info_table[i][NUMBER_OF_STREAMS] > 0) { - threads_proc_type[_streams_info_table[i][PROC_TYPE]] += + int num_threads = _streams_info_table[i][THREADS_PER_STREAM] * _streams_info_table[i][NUMBER_OF_STREAMS]; + threads_proc_type[_streams_info_table[i][PROC_TYPE]] += num_threads; + threads_all += num_threads; } } + if (threads_all == 0) { + OPENVINO_THROW("streams_info_table is invalid!"); + } for (size_t i = ALL_PROC; i < threads_proc_type.size(); i++) { if (threads_proc_type[i] > proc_type_table[0][i]) { - streams_info_available = false; - break; + OPENVINO_THROW("Not enough CPU resources!"); } } } @@ -269,7 +274,7 @@ void IStreamsExecutor::Config::update_executor_config() { } } - if (_cpu_pinning) { + if (_cpu_pinning || _cpu_reservation) { reserve_available_cpus(_streams_info_table, _stream_processor_ids, _cpu_reservation ? CPU_USED : NOT_USED); } @@ -319,6 +324,17 @@ void IStreamsExecutor::Config::update_executor_config() { #endif } +void IStreamsExecutor::Config::update_executor_config(bool lock) { + if (lock) { + { + std::lock_guard lock{_streams_executor_mutex}; + update_executor_config(); + } + } else { + update_executor_config(); + } +} + void IStreamsExecutor::Config::set_config_zero_stream() { std::vector> proc_type_table = get_proc_type_table(); int core_type = MAIN_CORE_PROC; @@ -333,6 +349,7 @@ void IStreamsExecutor::Config::set_config_zero_stream() { socket_id = std::max(0, proc_type_table[0][PROC_SOCKET_ID]); } _streams_info_table.push_back({1, core_type, 1, numa_id, socket_id}); + _cpu_reservation = false; _cpu_pinning = false; } diff --git a/src/inference/src/os/cpu_map_info.hpp b/src/inference/src/os/cpu_map_info.hpp index aaac930b167ee0..097057bc054b28 100644 --- a/src/inference/src/os/cpu_map_info.hpp +++ b/src/inference/src/os/cpu_map_info.hpp @@ -54,38 +54,6 @@ class CPU { std::mutex _cpu_mutex; int _socket_idx = 0; -private: - /** - * @brief Sort proc_type_table by CPU ID on which application is running. The numa node containing this CPU ID - * will move to first row. - * @param[in] _processor_id CPU ID on which application is running. - * @param[in] _proc_type_table summary table of number of processors per type - * @param[in] _cpu_mapping_table CPU mapping table for each processor - * @return - */ - void sort_table_by_cpu_id(const int _processor_id, - std::vector>& _proc_type_table, - const std::vector>& _cpu_mapping_table) { - int current_numa_node = 0; - int current_socket = 0; - - for (auto& row : _cpu_mapping_table) { - if (_processor_id == row[CPU_MAP_PROCESSOR_ID]) { - current_numa_node = row[CPU_MAP_NUMA_NODE_ID]; - current_socket = row[CPU_MAP_SOCKET_ID]; - break; - } - } - for (size_t i = 1; i < _proc_type_table.size(); i++) { - if ((current_numa_node == _proc_type_table[i][PROC_NUMA_NODE_ID]) && - (current_socket == _proc_type_table[i][PROC_SOCKET_ID])) { - std::rotate(_proc_type_table.begin() + 1, _proc_type_table.begin() + i, _proc_type_table.end()); - break; - } - } - }; - - friend class LinuxSortProcTableTests; }; CPU& cpu_info(); diff --git a/src/inference/src/os/lin/lin_system_conf.cpp b/src/inference/src/os/lin/lin_system_conf.cpp index 6a6f02799cae46..a235227a4b56f0 100644 --- a/src/inference/src/os/lin/lin_system_conf.cpp +++ b/src/inference/src/os/lin/lin_system_conf.cpp @@ -320,11 +320,6 @@ CPU::CPU() { OPENVINO_THROW("CPU affinity check failed. No CPU is eligible to run inference."); }; - if (_proc_type_table.size() > 1) { - int cur_processor_id = sched_getcpu(); - sort_table_by_cpu_id(cur_processor_id, _proc_type_table, _cpu_mapping_table); - } - _org_proc_type_table = _proc_type_table; cpu_debug(); diff --git a/src/inference/src/os/win/win_system_conf.cpp b/src/inference/src/os/win/win_system_conf.cpp index 8f468cbaeafe6d..fd26dcd4bc4741 100644 --- a/src/inference/src/os/win/win_system_conf.cpp +++ b/src/inference/src/os/win/win_system_conf.cpp @@ -52,11 +52,6 @@ CPU::CPU() { } } - if (_proc_type_table.size() > 1) { - int cur_processor_id = GetCurrentProcessorNumber(); - sort_table_by_cpu_id(cur_processor_id, _proc_type_table, _cpu_mapping_table); - } - cpu_debug(); } diff --git a/src/inference/src/system_conf.cpp b/src/inference/src/system_conf.cpp index 9fab3591493f6f..b25c16da6494da 100644 --- a/src/inference/src/system_conf.cpp +++ b/src/inference/src/system_conf.cpp @@ -261,6 +261,10 @@ int get_current_socket_id() { return 0; } +int get_current_numa_node_id() { + return 0; +} + std::vector> get_proc_type_table() { return {{-1}}; } @@ -322,6 +326,10 @@ int get_current_socket_id() { return 0; } +int get_current_numa_node_id() { + return 0; +} + std::vector> get_proc_type_table() { CPU& cpu = cpu_info(); std::lock_guard lock{cpu._cpu_mutex}; @@ -411,8 +419,43 @@ int get_current_socket_id() { return 0; } + +int get_current_numa_node_id() { + CPU& cpu = cpu_info(); + int cur_processor_id = sched_getcpu(); + + for (auto& row : cpu._cpu_mapping_table) { + if (cur_processor_id == row[CPU_MAP_PROCESSOR_ID]) { + return row[CPU_MAP_NUMA_NODE_ID]; + } + } + + return 0; +} # else int get_current_socket_id() { + CPU& cpu = cpu_info(); + int cur_processor_id = GetCurrentProcessorNumber(); + + for (auto& row : cpu._cpu_mapping_table) { + if (cur_processor_id == row[CPU_MAP_PROCESSOR_ID]) { + return row[CPU_MAP_SOCKET_ID]; + } + } + + return 0; +} + +int get_current_numa_node_id() { + CPU& cpu = cpu_info(); + int cur_processor_id = GetCurrentProcessorNumber(); + + for (auto& row : cpu._cpu_mapping_table) { + if (cur_processor_id == row[CPU_MAP_PROCESSOR_ID]) { + return row[CPU_MAP_NUMA_NODE_ID]; + } + } + return 0; } # endif diff --git a/src/inference/tests/unit/cpu_map_parser/update_proc_table.cpp b/src/inference/tests/unit/cpu_map_parser/update_proc_table.cpp deleted file mode 100644 index fd78974da3fde9..00000000000000 --- a/src/inference/tests/unit/cpu_map_parser/update_proc_table.cpp +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright (C) 2018-2025 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 -// - -#include - -#include "common_test_utils/test_common.hpp" -#include "openvino/runtime/system_conf.hpp" -#include "os/cpu_map_info.hpp" - -using namespace testing; - -namespace ov { - -#ifdef __linux__ - -struct LinuxSortProcTableTestCase { - int current_processor_id; - std::vector> _proc_type_table_input; - std::vector> _cpu_mapping_table; - std::vector> _proc_type_table_output; -}; - -class LinuxSortProcTableTests : public ov::test::TestsCommon, - public testing::WithParamInterface> { -public: - void SetUp() override { - const auto& test_data = std::get<0>(GetParam()); - - CPU& cpu = cpu_info(); - std::vector> test_proc_type_table = test_data._proc_type_table_input; - - cpu.sort_table_by_cpu_id(test_data.current_processor_id, test_proc_type_table, test_data._cpu_mapping_table); - - ASSERT_EQ(test_proc_type_table, test_data._proc_type_table_output); - } -}; - -LinuxSortProcTableTestCase proc_table_2sockets_24cores_hyperthreading_1 = { - 2, - {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}}, - { - {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 2, 1, 12, HYPER_THREADING_PROC, 12, -1}, - {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, {3, 2, 1, 13, HYPER_THREADING_PROC, 13, -1}, - {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {5, 2, 1, 14, HYPER_THREADING_PROC, 14, -1}, - {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, {7, 2, 1, 15, HYPER_THREADING_PROC, 15, -1}, - {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {9, 2, 1, 16, HYPER_THREADING_PROC, 16, -1}, - {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 2, 1, 17, HYPER_THREADING_PROC, 17, -1}, - {12, 1, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 3, 1, 18, HYPER_THREADING_PROC, 18, -1}, - {14, 1, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 3, 1, 19, HYPER_THREADING_PROC, 19, -1}, - {16, 1, 0, 8, HYPER_THREADING_PROC, 8, -1}, {17, 3, 1, 20, HYPER_THREADING_PROC, 20, -1}, - {18, 1, 0, 9, HYPER_THREADING_PROC, 9, -1}, {19, 3, 1, 21, HYPER_THREADING_PROC, 21, -1}, - {20, 1, 0, 10, HYPER_THREADING_PROC, 10, -1}, {21, 3, 1, 22, HYPER_THREADING_PROC, 22, -1}, - {22, 1, 0, 11, HYPER_THREADING_PROC, 11, -1}, {23, 3, 1, 23, HYPER_THREADING_PROC, 23, -1}, - {24, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {25, 2, 1, 12, MAIN_CORE_PROC, 12, -1}, - {26, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, {27, 2, 1, 13, MAIN_CORE_PROC, 13, -1}, - {28, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {29, 2, 1, 14, MAIN_CORE_PROC, 14, -1}, - {30, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, {31, 2, 1, 15, MAIN_CORE_PROC, 15, -1}, - {32, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {33, 2, 1, 16, MAIN_CORE_PROC, 16, -1}, - {34, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, {35, 2, 1, 17, MAIN_CORE_PROC, 17, -1}, - {36, 1, 0, 6, MAIN_CORE_PROC, 6, -1}, {37, 3, 1, 18, MAIN_CORE_PROC, 18, -1}, - {38, 1, 0, 7, MAIN_CORE_PROC, 7, -1}, {39, 3, 1, 19, MAIN_CORE_PROC, 19, -1}, - {40, 1, 0, 8, MAIN_CORE_PROC, 8, -1}, {41, 3, 1, 20, MAIN_CORE_PROC, 20, -1}, - {42, 1, 0, 9, MAIN_CORE_PROC, 9, -1}, {43, 3, 1, 21, MAIN_CORE_PROC, 21, -1}, - {44, 1, 0, 10, MAIN_CORE_PROC, 10, -1}, {45, 3, 1, 22, MAIN_CORE_PROC, 22, -1}, - {46, 1, 0, 11, MAIN_CORE_PROC, 11, -1}, {47, 3, 1, 23, MAIN_CORE_PROC, 23, -1}, - }, - {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}}, -}; -LinuxSortProcTableTestCase proc_table_2sockets_24cores_hyperthreading_2 = { - 16, - {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}}, - { - {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 2, 1, 12, HYPER_THREADING_PROC, 12, -1}, - {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, {3, 2, 1, 13, HYPER_THREADING_PROC, 13, -1}, - {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {5, 2, 1, 14, HYPER_THREADING_PROC, 14, -1}, - {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, {7, 2, 1, 15, HYPER_THREADING_PROC, 15, -1}, - {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {9, 2, 1, 16, HYPER_THREADING_PROC, 16, -1}, - {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 2, 1, 17, HYPER_THREADING_PROC, 17, -1}, - {12, 1, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 3, 1, 18, HYPER_THREADING_PROC, 18, -1}, - {14, 1, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 3, 1, 19, HYPER_THREADING_PROC, 19, -1}, - {16, 1, 0, 8, HYPER_THREADING_PROC, 8, -1}, {17, 3, 1, 20, HYPER_THREADING_PROC, 20, -1}, - {18, 1, 0, 9, HYPER_THREADING_PROC, 9, -1}, {19, 3, 1, 21, HYPER_THREADING_PROC, 21, -1}, - {20, 1, 0, 10, HYPER_THREADING_PROC, 10, -1}, {21, 3, 1, 22, HYPER_THREADING_PROC, 22, -1}, - {22, 1, 0, 11, HYPER_THREADING_PROC, 11, -1}, {23, 3, 1, 23, HYPER_THREADING_PROC, 23, -1}, - {24, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {25, 2, 1, 12, MAIN_CORE_PROC, 12, -1}, - {26, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, {27, 2, 1, 13, MAIN_CORE_PROC, 13, -1}, - {28, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {29, 2, 1, 14, MAIN_CORE_PROC, 14, -1}, - {30, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, {31, 2, 1, 15, MAIN_CORE_PROC, 15, -1}, - {32, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {33, 2, 1, 16, MAIN_CORE_PROC, 16, -1}, - {34, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, {35, 2, 1, 17, MAIN_CORE_PROC, 17, -1}, - {36, 1, 0, 6, MAIN_CORE_PROC, 6, -1}, {37, 3, 1, 18, MAIN_CORE_PROC, 18, -1}, - {38, 1, 0, 7, MAIN_CORE_PROC, 7, -1}, {39, 3, 1, 19, MAIN_CORE_PROC, 19, -1}, - {40, 1, 0, 8, MAIN_CORE_PROC, 8, -1}, {41, 3, 1, 20, MAIN_CORE_PROC, 20, -1}, - {42, 1, 0, 9, MAIN_CORE_PROC, 9, -1}, {43, 3, 1, 21, MAIN_CORE_PROC, 21, -1}, - {44, 1, 0, 10, MAIN_CORE_PROC, 10, -1}, {45, 3, 1, 22, MAIN_CORE_PROC, 22, -1}, - {46, 1, 0, 11, MAIN_CORE_PROC, 11, -1}, {47, 3, 1, 23, MAIN_CORE_PROC, 23, -1}, - }, - {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}, {12, 6, 0, 6, 0, 0}}, -}; -LinuxSortProcTableTestCase proc_table_2sockets_24cores_hyperthreading_3 = { - 7, - {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}}, - { - {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 2, 1, 12, HYPER_THREADING_PROC, 12, -1}, - {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, {3, 2, 1, 13, HYPER_THREADING_PROC, 13, -1}, - {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {5, 2, 1, 14, HYPER_THREADING_PROC, 14, -1}, - {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, {7, 2, 1, 15, HYPER_THREADING_PROC, 15, -1}, - {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {9, 2, 1, 16, HYPER_THREADING_PROC, 16, -1}, - {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 2, 1, 17, HYPER_THREADING_PROC, 17, -1}, - {12, 1, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 3, 1, 18, HYPER_THREADING_PROC, 18, -1}, - {14, 1, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 3, 1, 19, HYPER_THREADING_PROC, 19, -1}, - {16, 1, 0, 8, HYPER_THREADING_PROC, 8, -1}, {17, 3, 1, 20, HYPER_THREADING_PROC, 20, -1}, - {18, 1, 0, 9, HYPER_THREADING_PROC, 9, -1}, {19, 3, 1, 21, HYPER_THREADING_PROC, 21, -1}, - {20, 1, 0, 10, HYPER_THREADING_PROC, 10, -1}, {21, 3, 1, 22, HYPER_THREADING_PROC, 22, -1}, - {22, 1, 0, 11, HYPER_THREADING_PROC, 11, -1}, {23, 3, 1, 23, HYPER_THREADING_PROC, 23, -1}, - {24, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {25, 2, 1, 12, MAIN_CORE_PROC, 12, -1}, - {26, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, {27, 2, 1, 13, MAIN_CORE_PROC, 13, -1}, - {28, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {29, 2, 1, 14, MAIN_CORE_PROC, 14, -1}, - {30, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, {31, 2, 1, 15, MAIN_CORE_PROC, 15, -1}, - {32, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {33, 2, 1, 16, MAIN_CORE_PROC, 16, -1}, - {34, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, {35, 2, 1, 17, MAIN_CORE_PROC, 17, -1}, - {36, 1, 0, 6, MAIN_CORE_PROC, 6, -1}, {37, 3, 1, 18, MAIN_CORE_PROC, 18, -1}, - {38, 1, 0, 7, MAIN_CORE_PROC, 7, -1}, {39, 3, 1, 19, MAIN_CORE_PROC, 19, -1}, - {40, 1, 0, 8, MAIN_CORE_PROC, 8, -1}, {41, 3, 1, 20, MAIN_CORE_PROC, 20, -1}, - {42, 1, 0, 9, MAIN_CORE_PROC, 9, -1}, {43, 3, 1, 21, MAIN_CORE_PROC, 21, -1}, - {44, 1, 0, 10, MAIN_CORE_PROC, 10, -1}, {45, 3, 1, 22, MAIN_CORE_PROC, 22, -1}, - {46, 1, 0, 11, MAIN_CORE_PROC, 11, -1}, {47, 3, 1, 23, MAIN_CORE_PROC, 23, -1}, - }, - {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}}, -}; -LinuxSortProcTableTestCase proc_table_2sockets_24cores_hyperthreading_4 = { - 21, - {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}}, - { - {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 2, 1, 12, HYPER_THREADING_PROC, 12, -1}, - {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, {3, 2, 1, 13, HYPER_THREADING_PROC, 13, -1}, - {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {5, 2, 1, 14, HYPER_THREADING_PROC, 14, -1}, - {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, {7, 2, 1, 15, HYPER_THREADING_PROC, 15, -1}, - {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {9, 2, 1, 16, HYPER_THREADING_PROC, 16, -1}, - {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 2, 1, 17, HYPER_THREADING_PROC, 17, -1}, - {12, 1, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 3, 1, 18, HYPER_THREADING_PROC, 18, -1}, - {14, 1, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 3, 1, 19, HYPER_THREADING_PROC, 19, -1}, - {16, 1, 0, 8, HYPER_THREADING_PROC, 8, -1}, {17, 3, 1, 20, HYPER_THREADING_PROC, 20, -1}, - {18, 1, 0, 9, HYPER_THREADING_PROC, 9, -1}, {19, 3, 1, 21, HYPER_THREADING_PROC, 21, -1}, - {20, 1, 0, 10, HYPER_THREADING_PROC, 10, -1}, {21, 3, 1, 22, HYPER_THREADING_PROC, 22, -1}, - {22, 1, 0, 11, HYPER_THREADING_PROC, 11, -1}, {23, 3, 1, 23, HYPER_THREADING_PROC, 23, -1}, - {24, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {25, 2, 1, 12, MAIN_CORE_PROC, 12, -1}, - {26, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, {27, 2, 1, 13, MAIN_CORE_PROC, 13, -1}, - {28, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {29, 2, 1, 14, MAIN_CORE_PROC, 14, -1}, - {30, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, {31, 2, 1, 15, MAIN_CORE_PROC, 15, -1}, - {32, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {33, 2, 1, 16, MAIN_CORE_PROC, 16, -1}, - {34, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, {35, 2, 1, 17, MAIN_CORE_PROC, 17, -1}, - {36, 1, 0, 6, MAIN_CORE_PROC, 6, -1}, {37, 3, 1, 18, MAIN_CORE_PROC, 18, -1}, - {38, 1, 0, 7, MAIN_CORE_PROC, 7, -1}, {39, 3, 1, 19, MAIN_CORE_PROC, 19, -1}, - {40, 1, 0, 8, MAIN_CORE_PROC, 8, -1}, {41, 3, 1, 20, MAIN_CORE_PROC, 20, -1}, - {42, 1, 0, 9, MAIN_CORE_PROC, 9, -1}, {43, 3, 1, 21, MAIN_CORE_PROC, 21, -1}, - {44, 1, 0, 10, MAIN_CORE_PROC, 10, -1}, {45, 3, 1, 22, MAIN_CORE_PROC, 22, -1}, - {46, 1, 0, 11, MAIN_CORE_PROC, 11, -1}, {47, 3, 1, 23, MAIN_CORE_PROC, 23, -1}, - }, - {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 3, 1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}}, -}; - -TEST_P(LinuxSortProcTableTests, LinuxProcTable) {} - -INSTANTIATE_TEST_SUITE_P(CPUMap, - LinuxSortProcTableTests, - testing::Values(proc_table_2sockets_24cores_hyperthreading_1, - proc_table_2sockets_24cores_hyperthreading_2, - proc_table_2sockets_24cores_hyperthreading_3, - proc_table_2sockets_24cores_hyperthreading_4)); -#endif -} // namespace ov diff --git a/src/inference/tests/unit/executor_config_test.cpp b/src/inference/tests/unit/executor_config_test.cpp index 5da183d5257899..90ab9c630c70f1 100644 --- a/src/inference/tests/unit/executor_config_test.cpp +++ b/src/inference/tests/unit/executor_config_test.cpp @@ -5,6 +5,7 @@ #include #include "common_test_utils/test_common.hpp" +#include "openvino/runtime/threading/cpu_streams_info.hpp" #include "openvino/runtime/threading/istreams_executor.hpp" #include "os/cpu_map_info.hpp" @@ -22,6 +23,7 @@ struct ExecutorConfigTestCase { int _num_streams; int _threads_per_stream; ov::hint::SchedulingCoreType _core_type; + bool _cpu_reservation; bool _cpu_pinning; bool _cores_limit; std::vector> _streams_info_table_in; @@ -46,11 +48,11 @@ class ExecutorConfigTest : public ov::test::TestsCommon, test_data._num_streams, test_data._threads_per_stream, test_data._core_type, - false, + test_data._cpu_reservation, test_data._cpu_pinning, test_data._cores_limit, test_data._streams_info_table_in}; - + ASSERT_EQ(test_data._cpu_reservation, config.get_cpu_reservation()); ASSERT_EQ(test_data._cpu_pinning, config.get_cpu_pinning()); ASSERT_EQ(test_data._streams_info_table, config.get_streams_info_table()); ASSERT_EQ(test_data._stream_processors, config.get_stream_processor_ids()); @@ -58,6 +60,35 @@ class ExecutorConfigTest : public ov::test::TestsCommon, ASSERT_EQ(test_data._num_streams, config.get_streams()); ASSERT_EQ(0, config.get_threads_per_stream()); } + if (test_data._cpu_reservation) { + std::vector> proc_type_table = test_data._proc_type_table; + for (size_t i = 0; i < test_data._streams_info_table.size(); i++) { + if (test_data._streams_info_table[i][PROC_TYPE] >= MAIN_CORE_PROC && + test_data._streams_info_table[i][PROC_TYPE] <= HYPER_THREADING_PROC) { + int nstreams = test_data._streams_info_table[i][NUMBER_OF_STREAMS] > 0 + ? test_data._streams_info_table[i][NUMBER_OF_STREAMS] + : 1; + int nthreads = nstreams * test_data._streams_info_table[i][THREADS_PER_STREAM]; + if (proc_type_table.size() > 1) { + for (size_t j = 0; j < proc_type_table.size(); j++) { + if (proc_type_table[j][PROC_NUMA_NODE_ID] == + test_data._streams_info_table[i][STREAM_NUMA_NODE_ID] && + proc_type_table[j][PROC_SOCKET_ID] == + test_data._streams_info_table[i][STREAM_SOCKET_ID]) { + proc_type_table[j][test_data._streams_info_table[i][PROC_TYPE]] -= nthreads; + proc_type_table[j][ALL_PROC] -= nthreads; + proc_type_table[0][test_data._streams_info_table[i][PROC_TYPE]] -= nthreads; + proc_type_table[0][ALL_PROC] -= nthreads; + } + } + } else { + proc_type_table[0][test_data._streams_info_table[i][PROC_TYPE]] -= nthreads; + proc_type_table[0][ALL_PROC] -= nthreads; + } + } + } + ASSERT_EQ(proc_type_table, cpu._proc_type_table); + } } }; @@ -85,6 +116,7 @@ ExecutorConfigTestCase _1sockets_streams_4_threads_1 = { 4, // param[in]: the number of streams 1, // param[in]: the number of threads per stream ov::hint::SchedulingCoreType::ANY_CORE, // param[in]: specified cpu core type + false, // param[in]: specified cpu reservation false, // param[in]: specified cpu pinning true, // param[in]: specified cores limit {}, // param[in]: streams info table @@ -119,6 +151,7 @@ ExecutorConfigTestCase _1sockets_streams_4_threads_0 = { 0, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, {}, @@ -147,6 +180,7 @@ ExecutorConfigTestCase _1sockets_streams_1_threads_12 = { 12, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -179,6 +213,7 @@ ExecutorConfigTestCase _1sockets_streams_1_threads_10 = { 10, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -211,6 +246,7 @@ ExecutorConfigTestCase _1sockets_streams_12_threads_1 = { 1, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -242,6 +278,7 @@ ExecutorConfigTestCase _1sockets_streams_13_threads_1 = { 1, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -273,6 +310,7 @@ ExecutorConfigTestCase _1sockets_streams_6_threads_1_core_e = { 1, ov::hint::SchedulingCoreType::ECORE_ONLY, false, + false, true, {}, { @@ -303,6 +341,69 @@ ExecutorConfigTestCase _1sockets_streams_5_threads_1_binding = { 5, 1, ov::hint::SchedulingCoreType::ANY_CORE, + false, + true, + true, + {}, + { + {5, MAIN_CORE_PROC, 1, 0, 0}, + }, + {{0}, {2}, {4}, {6}, {8}}, +}; + +ExecutorConfigTestCase _1sockets_streams_5_threads_1_reservation = { + { + {12, 6, 0, 6, 0, 0}, + }, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, + {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, + {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, + {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, + {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, + {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, + {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + }, + 5, + 1, + ov::hint::SchedulingCoreType::ANY_CORE, + true, + false, + true, + {}, + { + {5, MAIN_CORE_PROC, 1, 0, 0}, + }, + {{0}, {2}, {4}, {6}, {8}}, +}; + +ExecutorConfigTestCase _1sockets_streams_5_threads_1_binding_reservation = { + { + {12, 6, 0, 6, 0, 0}, + }, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, + {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, + {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, + {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, + {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, + {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, + {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + }, + 5, + 1, + ov::hint::SchedulingCoreType::ANY_CORE, + true, true, true, {}, @@ -360,6 +461,7 @@ ExecutorConfigTestCase _2sockets_streams_36_threads_1 = { 1, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -417,6 +519,7 @@ ExecutorConfigTestCase _2sockets_streams_4_threads_5 = { 5, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -474,6 +577,7 @@ ExecutorConfigTestCase _2sockets_streams_1_threads_36 = { 36, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -532,6 +636,7 @@ ExecutorConfigTestCase _2sockets_streams_1_threads_30 = { 30, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -542,6 +647,126 @@ ExecutorConfigTestCase _2sockets_streams_1_threads_30 = { {}, }; +ExecutorConfigTestCase _2sockets_streams_1_threads_30_binding = { + { + {72, 36, 0, 36, -1, -1}, + {36, 18, 0, 18, 0, 0}, + {36, 18, 0, 18, 1, 1}, + }, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 0, 0, 36, MAIN_CORE_PROC, 36, -1}, {37, 0, 0, 37, MAIN_CORE_PROC, 37, -1}, + {38, 0, 0, 38, MAIN_CORE_PROC, 38, -1}, {39, 0, 0, 39, MAIN_CORE_PROC, 39, -1}, + {40, 0, 0, 40, MAIN_CORE_PROC, 40, -1}, {41, 0, 0, 41, MAIN_CORE_PROC, 41, -1}, + {42, 0, 0, 42, MAIN_CORE_PROC, 42, -1}, {43, 0, 0, 43, MAIN_CORE_PROC, 43, -1}, + {44, 0, 0, 44, MAIN_CORE_PROC, 44, -1}, {45, 0, 0, 45, MAIN_CORE_PROC, 45, -1}, + {46, 0, 0, 46, MAIN_CORE_PROC, 46, -1}, {47, 0, 0, 47, MAIN_CORE_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 1, 1, 54, MAIN_CORE_PROC, 54, -1}, {55, 1, 1, 55, MAIN_CORE_PROC, 55, -1}, + {56, 1, 1, 56, MAIN_CORE_PROC, 56, -1}, {57, 1, 1, 57, MAIN_CORE_PROC, 57, -1}, + {58, 1, 1, 58, MAIN_CORE_PROC, 58, -1}, {59, 1, 1, 59, MAIN_CORE_PROC, 59, -1}, + {60, 1, 1, 60, MAIN_CORE_PROC, 60, -1}, {61, 1, 1, 61, MAIN_CORE_PROC, 61, -1}, + {62, 1, 1, 62, MAIN_CORE_PROC, 62, -1}, {63, 1, 1, 63, MAIN_CORE_PROC, 63, -1}, + {64, 1, 1, 64, MAIN_CORE_PROC, 64, -1}, {65, 1, 1, 65, MAIN_CORE_PROC, 65, -1}, + {66, 1, 1, 66, MAIN_CORE_PROC, 66, -1}, {67, 1, 1, 67, MAIN_CORE_PROC, 67, -1}, + {68, 1, 1, 68, MAIN_CORE_PROC, 68, -1}, {69, 1, 1, 69, MAIN_CORE_PROC, 69, -1}, + {70, 1, 1, 70, MAIN_CORE_PROC, 70, -1}, {71, 1, 1, 71, MAIN_CORE_PROC, 71, -1}, + }, + 1, + 30, + ov::hint::SchedulingCoreType::ANY_CORE, + false, + true, + true, + {}, + { + {1, ALL_PROC, 30, -1, -1}, + {0, MAIN_CORE_PROC, 18, 0, 0}, + {0, MAIN_CORE_PROC, 12, 1, 1}, + }, + {{36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65}}, +}; + +ExecutorConfigTestCase _2sockets_streams_1_threads_30_reservation = { + { + {72, 36, 0, 36, -1, -1}, + {36, 18, 0, 18, 0, 0}, + {36, 18, 0, 18, 1, 1}, + }, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 0, 0, 36, MAIN_CORE_PROC, 36, -1}, {37, 0, 0, 37, MAIN_CORE_PROC, 37, -1}, + {38, 0, 0, 38, MAIN_CORE_PROC, 38, -1}, {39, 0, 0, 39, MAIN_CORE_PROC, 39, -1}, + {40, 0, 0, 40, MAIN_CORE_PROC, 40, -1}, {41, 0, 0, 41, MAIN_CORE_PROC, 41, -1}, + {42, 0, 0, 42, MAIN_CORE_PROC, 42, -1}, {43, 0, 0, 43, MAIN_CORE_PROC, 43, -1}, + {44, 0, 0, 44, MAIN_CORE_PROC, 44, -1}, {45, 0, 0, 45, MAIN_CORE_PROC, 45, -1}, + {46, 0, 0, 46, MAIN_CORE_PROC, 46, -1}, {47, 0, 0, 47, MAIN_CORE_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 1, 1, 54, MAIN_CORE_PROC, 54, -1}, {55, 1, 1, 55, MAIN_CORE_PROC, 55, -1}, + {56, 1, 1, 56, MAIN_CORE_PROC, 56, -1}, {57, 1, 1, 57, MAIN_CORE_PROC, 57, -1}, + {58, 1, 1, 58, MAIN_CORE_PROC, 58, -1}, {59, 1, 1, 59, MAIN_CORE_PROC, 59, -1}, + {60, 1, 1, 60, MAIN_CORE_PROC, 60, -1}, {61, 1, 1, 61, MAIN_CORE_PROC, 61, -1}, + {62, 1, 1, 62, MAIN_CORE_PROC, 62, -1}, {63, 1, 1, 63, MAIN_CORE_PROC, 63, -1}, + {64, 1, 1, 64, MAIN_CORE_PROC, 64, -1}, {65, 1, 1, 65, MAIN_CORE_PROC, 65, -1}, + {66, 1, 1, 66, MAIN_CORE_PROC, 66, -1}, {67, 1, 1, 67, MAIN_CORE_PROC, 67, -1}, + {68, 1, 1, 68, MAIN_CORE_PROC, 68, -1}, {69, 1, 1, 69, MAIN_CORE_PROC, 69, -1}, + {70, 1, 1, 70, MAIN_CORE_PROC, 70, -1}, {71, 1, 1, 71, MAIN_CORE_PROC, 71, -1}, + }, + 1, + 30, + ov::hint::SchedulingCoreType::ANY_CORE, + true, + false, + true, + {}, + { + {1, ALL_PROC, 30, -1, -1}, + {0, MAIN_CORE_PROC, 18, 0, 0}, + {0, MAIN_CORE_PROC, 12, 1, 1}, + }, + {{36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65}}, +}; + ExecutorConfigTestCase _pecore_streams_5_threads_2 = { { {24, 8, 8, 8, 0, 0}, @@ -564,6 +789,7 @@ ExecutorConfigTestCase _pecore_streams_5_threads_2 = { 2, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -595,6 +821,7 @@ ExecutorConfigTestCase _pecore_streams_5_threads_5 = { 5, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -627,6 +854,7 @@ ExecutorConfigTestCase _pecore_streams_4_threads_5 = { 5, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -659,6 +887,7 @@ ExecutorConfigTestCase _pecore_streams_4_threads_1 = { 1, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -689,6 +918,7 @@ ExecutorConfigTestCase _pecore_streams_5_threads_10 = { 10, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -721,6 +951,7 @@ ExecutorConfigTestCase _pecore_streams_26_threads_1 = { 1, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, { @@ -753,6 +984,7 @@ ExecutorConfigTestCase _pecore_streams_26_threads_1_p = { 1, ov::hint::SchedulingCoreType::PCORE_ONLY, false, + false, true, {}, { @@ -784,6 +1016,7 @@ ExecutorConfigTestCase _pecore_streams_26_threads_1_e = { 1, ov::hint::SchedulingCoreType::ECORE_ONLY, false, + false, true, {}, { @@ -814,6 +1047,7 @@ ExecutorConfigTestCase _pecore_streams_1_threads_0 = { 0, ov::hint::SchedulingCoreType::ANY_CORE, false, + false, true, {}, {}, @@ -842,6 +1076,7 @@ ExecutorConfigTestCase _pecore_streams_1_threads_1_p = { 1, ov::hint::SchedulingCoreType::PCORE_ONLY, false, + false, true, {}, { @@ -872,6 +1107,7 @@ ExecutorConfigTestCase _pecore_streams_1_threads_1_e = { 1, ov::hint::SchedulingCoreType::ECORE_ONLY, false, + false, true, {}, { @@ -902,6 +1138,7 @@ ExecutorConfigTestCase _pecore_streams_1_threads_16_p = { 16, ov::hint::SchedulingCoreType::PCORE_ONLY, false, + false, true, {}, { @@ -934,6 +1171,7 @@ ExecutorConfigTestCase _pecore_streams_1_threads_18_p = { 18, ov::hint::SchedulingCoreType::PCORE_ONLY, false, + false, true, {}, { @@ -966,6 +1204,7 @@ ExecutorConfigTestCase _pecore_streams_1_threads_10_p = { 10, ov::hint::SchedulingCoreType::PCORE_ONLY, false, + false, true, {}, { @@ -998,6 +1237,7 @@ ExecutorConfigTestCase _pecore_streams_10_threads_1_e = { 1, ov::hint::SchedulingCoreType::ECORE_ONLY, false, + false, true, {}, { @@ -1029,6 +1269,7 @@ ExecutorConfigTestCase _pecore_streams_10_threads_1_binding = { ov::hint::SchedulingCoreType::ANY_CORE, true, true, + true, {}, { {4, MAIN_CORE_PROC, 2, 0, 0}, @@ -1038,7 +1279,7 @@ ExecutorConfigTestCase _pecore_streams_10_threads_1_binding = { {{0, 2}, {4, 6}, {8, 10}, {12, 14}, {16, 17}, {18, 19}, {20, 21}, {22, 23}, {1, 3}, {5, 7}}, }; -ExecutorConfigTestCase _pecore_streams_info_table_1 = { +ExecutorConfigTestCase _pecore_streams_10_threads_2_reservation = { { {24, 8, 8, 8, 0, 0}, }, @@ -1056,23 +1297,22 @@ ExecutorConfigTestCase _pecore_streams_info_table_1 = { {20, 0, 0, 12, EFFICIENT_CORE_PROC, 20, -1}, {21, 0, 0, 13, EFFICIENT_CORE_PROC, 21, -1}, {22, 0, 0, 14, EFFICIENT_CORE_PROC, 22, -1}, {23, 0, 0, 15, EFFICIENT_CORE_PROC, 23, -1}, }, - 1, - 8, - ov::hint::SchedulingCoreType::PCORE_ONLY, + 10, + 2, + ov::hint::SchedulingCoreType::ANY_CORE, + true, false, true, + {}, { - {2, MAIN_CORE_PROC, 2, 0, 0}, - {2, EFFICIENT_CORE_PROC, 2, 0, 0}, - }, - { - {2, MAIN_CORE_PROC, 2, 0, 0}, - {2, EFFICIENT_CORE_PROC, 2, 0, 0}, + {4, MAIN_CORE_PROC, 2, 0, 0}, + {4, EFFICIENT_CORE_PROC, 2, 0, 0}, + {2, HYPER_THREADING_PROC, 2, 0, 0}, }, - {}, + {{0, 2}, {4, 6}, {8, 10}, {12, 14}, {16, 17}, {18, 19}, {20, 21}, {22, 23}, {1, 3}, {5, 7}}, }; -ExecutorConfigTestCase _pecore_streams_info_table_2 = { +ExecutorConfigTestCase _pecore_streams_info_table_1 = { { {24, 8, 8, 8, 0, 0}, }, @@ -1094,18 +1334,20 @@ ExecutorConfigTestCase _pecore_streams_info_table_2 = { 8, ov::hint::SchedulingCoreType::PCORE_ONLY, false, + false, true, { - {5, MAIN_CORE_PROC, 2, 0, 0}, + {2, MAIN_CORE_PROC, 2, 0, 0}, {2, EFFICIENT_CORE_PROC, 2, 0, 0}, }, { - {1, MAIN_CORE_PROC, 8, 0, 0}, + {2, MAIN_CORE_PROC, 2, 0, 0}, + {2, EFFICIENT_CORE_PROC, 2, 0, 0}, }, {}, }; -ExecutorConfigTestCase _pecore_streams_info_table_3 = { +ExecutorConfigTestCase _pecore_streams_info_table_2 = { { {24, 8, 8, 8, 0, 0}, }, @@ -1128,6 +1370,7 @@ ExecutorConfigTestCase _pecore_streams_info_table_3 = { ov::hint::SchedulingCoreType::PCORE_ONLY, true, true, + true, { {2, MAIN_CORE_PROC, 2, 0, 0}, {2, EFFICIENT_CORE_PROC, 2, 0, 0}, @@ -1153,6 +1396,7 @@ ExecutorConfigTestCase _streams_info_table_cores_limit_false_1 = { ov::hint::SchedulingCoreType::PCORE_ONLY, false, false, + false, {}, {}, {}, @@ -1170,6 +1414,7 @@ ExecutorConfigTestCase _streams_info_table_cores_limit_false_2 = { ov::hint::SchedulingCoreType::PCORE_ONLY, false, false, + false, {}, {}, {}, @@ -1187,10 +1432,14 @@ INSTANTIATE_TEST_SUITE_P(smoke_ExecutorConfig, _1sockets_streams_13_threads_1, _1sockets_streams_6_threads_1_core_e, _1sockets_streams_5_threads_1_binding, + _1sockets_streams_5_threads_1_reservation, + _1sockets_streams_5_threads_1_binding_reservation, _2sockets_streams_36_threads_1, _2sockets_streams_4_threads_5, _2sockets_streams_1_threads_36, _2sockets_streams_1_threads_30, + _2sockets_streams_1_threads_30_binding, + _2sockets_streams_1_threads_30_reservation, _pecore_streams_5_threads_2, _pecore_streams_5_threads_5, _pecore_streams_4_threads_5, @@ -1207,9 +1456,9 @@ INSTANTIATE_TEST_SUITE_P(smoke_ExecutorConfig, _pecore_streams_1_threads_10_p, _pecore_streams_10_threads_1_e, _pecore_streams_10_threads_1_binding, + _pecore_streams_10_threads_2_reservation, _pecore_streams_info_table_1, _pecore_streams_info_table_2, - _pecore_streams_info_table_3, _streams_info_table_cores_limit_false_1, _streams_info_table_cores_limit_false_2)); #endif diff --git a/src/plugins/intel_cpu/src/compiled_model.cpp b/src/plugins/intel_cpu/src/compiled_model.cpp index 7c1eb44ab37bc4..3b560cf5518ba4 100644 --- a/src/plugins/intel_cpu/src/compiled_model.cpp +++ b/src/plugins/intel_cpu/src/compiled_model.cpp @@ -248,6 +248,7 @@ ov::Any CompiledModel::get_property(const std::string& name) const { RO_property(ov::hint::execution_mode.name()), RO_property(ov::hint::num_requests.name()), RO_property(ov::hint::enable_cpu_pinning.name()), + RO_property(ov::hint::enable_cpu_reservation.name()), RO_property(ov::hint::scheduling_core_type.name()), RO_property(ov::hint::model_distribution_policy.name()), RO_property(ov::hint::enable_hyper_threading.name()), @@ -293,6 +294,9 @@ ov::Any CompiledModel::get_property(const std::string& name) const { } else if (name == ov::hint::enable_cpu_pinning.name()) { const bool use_pin = config.enableCpuPinning; return decltype(ov::hint::enable_cpu_pinning)::value_type(use_pin); + } else if (name == ov::hint::enable_cpu_reservation.name()) { + const bool use_reserve = config.enableCpuReservation; + return decltype(ov::hint::enable_cpu_reservation)::value_type(use_reserve); } else if (name == ov::hint::scheduling_core_type) { const auto stream_mode = config.schedulingCoreType; return stream_mode; diff --git a/src/plugins/intel_cpu/src/compiled_model.h b/src/plugins/intel_cpu/src/compiled_model.h index ee55002dbb3eb9..68e82bee77ae38 100644 --- a/src/plugins/intel_cpu/src/compiled_model.h +++ b/src/plugins/intel_cpu/src/compiled_model.h @@ -43,6 +43,8 @@ class CompiledModel : public ov::ICompiledModel { m_sub_compiled_models.clear(); m_sub_memory_manager->_memorys_table.clear(); } + auto streamsExecutor = std::dynamic_pointer_cast(m_task_executor); + streamsExecutor->cpu_reset(); } std::shared_ptr create_infer_request() const override; diff --git a/src/plugins/intel_cpu/src/config.cpp b/src/plugins/intel_cpu/src/config.cpp index 8267a0c6c66e34..db53bb0c531b1a 100644 --- a/src/plugins/intel_cpu/src/config.cpp +++ b/src/plugins/intel_cpu/src/config.cpp @@ -115,6 +115,16 @@ void Config::readProperties(const ov::AnyMap& prop, const ModelType modelType) { ov::hint::enable_cpu_pinning.name(), ". Expected only true/false."); } + } else if (key == ov::hint::enable_cpu_reservation.name()) { + try { + enableCpuReservation = val.as(); + } catch (ov::Exception&) { + OPENVINO_THROW("Wrong value ", + val.as(), + "for property key ", + ov::hint::enable_cpu_reservation.name(), + ". Expected only true/false."); + } } else if (key == ov::hint::scheduling_core_type.name()) { try { schedulingCoreType = val.as(); diff --git a/src/plugins/intel_cpu/src/config.h b/src/plugins/intel_cpu/src/config.h index 2abf45d20ca46a..c8a215e76a7573 100644 --- a/src/plugins/intel_cpu/src/config.h +++ b/src/plugins/intel_cpu/src/config.h @@ -81,6 +81,7 @@ struct Config { uint32_t hintNumRequests = 0; bool enableCpuPinning = true; bool changedCpuPinning = false; + bool enableCpuReservation = false; ov::hint::SchedulingCoreType schedulingCoreType = ov::hint::SchedulingCoreType::ANY_CORE; std::set modelDistributionPolicy = {}; int streamsRankLevel = 1; diff --git a/src/plugins/intel_cpu/src/cpu_map_scheduling.cpp b/src/plugins/intel_cpu/src/cpu_map_scheduling.cpp index c8b3f400bbc8dc..e9855a01309564 100644 --- a/src/plugins/intel_cpu/src/cpu_map_scheduling.cpp +++ b/src/plugins/intel_cpu/src/cpu_map_scheduling.cpp @@ -72,6 +72,7 @@ std::vector> apply_hyper_threading(bool& input_ht_hint, bool get_cpu_pinning(bool& input_value, const bool input_changed, + const bool cpu_reservation, const std::vector>& proc_type_table, const std::vector>& streams_info_table) { bool result_value; @@ -79,7 +80,11 @@ bool get_cpu_pinning(bool& input_value, #if defined(__APPLE__) result_value = false; #elif defined(_WIN32) - result_value = ((input_changed) && (proc_type_table.size() == 1)) ? input_value : false; + if (proc_type_table.size() == 1) { + result_value = input_changed ? input_value : cpu_reservation; + } else { + result_value = false; + } #else if (input_changed) { result_value = input_value; @@ -90,7 +95,7 @@ bool get_cpu_pinning(bool& input_value, if ((streams_info_table[0][PROC_TYPE] == ALL_PROC) && (streams_info_table[1][PROC_TYPE] != EFFICIENT_CORE_PROC) && (streams_info_table[2][PROC_TYPE] == EFFICIENT_CORE_PROC)) { - result_value = false; + result_value = cpu_reservation; } } } diff --git a/src/plugins/intel_cpu/src/cpu_map_scheduling.hpp b/src/plugins/intel_cpu/src/cpu_map_scheduling.hpp index 43cd0e8ec33f01..2d6a29f38bf595 100644 --- a/src/plugins/intel_cpu/src/cpu_map_scheduling.hpp +++ b/src/plugins/intel_cpu/src/cpu_map_scheduling.hpp @@ -44,12 +44,14 @@ std::vector> apply_hyper_threading(bool& input_ht_hint, * @brief whether pinning cpu cores according to enableCpuPinning property * @param[in] input_type indicate value of property enableCpuPinning. * @param[in] input_changed indicate if value is set by user. + * @param[in] cpu_reservation indicate if cpu need to be reserved * @param[in] proc_type_table indicate processors information of this platform * @param[in] streams_info_table indicate streams detail of this model * @return whether pinning threads to cpu cores */ bool get_cpu_pinning(bool& input_value, const bool input_changed, + const bool cpu_reservation, const std::vector>& proc_type_table, const std::vector>& streams_info_table); diff --git a/src/plugins/intel_cpu/src/cpu_streams_calculation.cpp b/src/plugins/intel_cpu/src/cpu_streams_calculation.cpp index e30dfe42fcba4d..a88ec8e4a1da4a 100644 --- a/src/plugins/intel_cpu/src/cpu_streams_calculation.cpp +++ b/src/plugins/intel_cpu/src/cpu_streams_calculation.cpp @@ -30,13 +30,25 @@ using namespace ov::threading; namespace ov { namespace intel_cpu { +void sort_table_by_numa_node_id(const int current_numa_node, std::vector>& proc_type_table) { + if (proc_type_table.size() > 1) { + for (size_t i = 1; i < proc_type_table.size(); i++) { + if (current_numa_node == proc_type_table[i][PROC_NUMA_NODE_ID]) { + std::rotate(proc_type_table.begin() + 1, proc_type_table.begin() + i, proc_type_table.end()); + break; + } + } + } + + return; +}; + std::vector> get_streams_info_table( const int input_streams, const bool input_streams_changed, const int input_threads, const int input_infer_requests, const int model_prefer_threads, - const int input_current_socket_id, const std::string input_perf_hint, const std::set hint_model_distribution_policy, const std::vector>& proc_type_table) { @@ -179,11 +191,7 @@ std::vector> get_streams_info_table( std::unordered_set socket_id_list(proc_type_table.size()); for (size_t i = 1; i < proc_type_table.size(); i++) { if (!socket_id_list.count(proc_type_table[i][PROC_SOCKET_ID])) { - if (proc_type_table[i][PROC_SOCKET_ID] == input_current_socket_id) { - proc_socket_table.insert(proc_socket_table.begin(), proc_type_table[i]); - } else { - proc_socket_table.push_back(proc_type_table[i]); - } + proc_socket_table.push_back(proc_type_table[i]); socket_id_list.insert(proc_type_table[i][PROC_SOCKET_ID]); } else { for (auto& row : proc_socket_table) { @@ -205,7 +213,12 @@ std::vector> get_streams_info_table( ((input_streams_changed == true) && (input_streams == 1))) { n_streams = 1; stream_info[NUMBER_OF_STREAMS] = n_streams; - current_socket_id = input_current_socket_id == -1 ? get_current_socket_id() : input_current_socket_id; + for (size_t n = 0; n < proc_socket_table.size(); n++) { + if (proc_socket_table[n][ALL_PROC] > 0) { + current_socket_id = proc_socket_table[n][PROC_SOCKET_ID]; + break; + } + } if (input_threads > 0) { if (hint_model_distribution_policy.size() == 0) { n_threads_per_stream = std::min(input_threads, proc_type_table[0][ALL_PROC]); @@ -677,11 +690,14 @@ int get_model_prefer_threads(const int num_streams, } std::vector> generate_stream_info(const int streams, - const int input_current_socket_id, + const int input_numa_node_id, const std::shared_ptr& model, Config& config, std::vector>& proc_type_table, int preferred_nthreads_per_stream) { + if (proc_type_table.empty() || proc_type_table[0][ALL_PROC] == 0) { + OPENVINO_THROW("proc_type_table is empty. No CPU resources available!"); + } int model_prefer_threads = preferred_nthreads_per_stream; proc_type_table = apply_scheduling_core_type(config.schedulingCoreType, proc_type_table); @@ -693,41 +709,56 @@ std::vector> generate_stream_info(const int streams, model_prefer_threads = get_model_prefer_threads(streams, proc_type_table, model, config); } + if (proc_type_table.size() > 1) { + const auto cur_numa_node_id = input_numa_node_id < 0 ? get_current_numa_node_id() : input_numa_node_id; + sort_table_by_numa_node_id(cur_numa_node_id, proc_type_table); + } + if (proc_type_table.empty() || proc_type_table[0][ALL_PROC] == 0) { + OPENVINO_THROW("proc_type_table is empty. No valid CPU resources available!"); + } auto streams_info_table = get_streams_info_table(config.streams, config.streamsChanged, config.threads, config.hintNumRequests, model_prefer_threads, - input_current_socket_id, ov::util::to_string(config.hintPerfMode), config.modelDistributionPolicy, proc_type_table); - // streams_info_table = {{1, 1, 56, 1, 1}, {-1, 1, 28, 1, 1}, {-1, 1, 28, 0, 0}}; + if (streams_info_table.empty()) { + OPENVINO_THROW("streams_info_table is empty!"); + } if (config.modelDistributionPolicy.find(ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL) != config.modelDistributionPolicy.end()) { config.streamsRankTable = get_streams_rank_table(streams_info_table, config.streamsRankLevel, config.numSubStreams); } - auto cpu_pinning = - get_cpu_pinning(config.enableCpuPinning, config.changedCpuPinning, proc_type_table, streams_info_table); + auto cpu_pinning = get_cpu_pinning(config.enableCpuPinning, + config.changedCpuPinning, + config.enableCpuReservation, + proc_type_table, + streams_info_table); config.streamExecutorConfig = IStreamsExecutor::Config{"CPUStreamsExecutor", config.streams, config.threadsPerStream, ov::hint::SchedulingCoreType::ANY_CORE, - false, + config.enableCpuReservation, cpu_pinning, true, - std::move(streams_info_table)}; - + std::move(streams_info_table), + {}, + false}; return proc_type_table; } void get_num_streams(const int streams, const std::shared_ptr& model, Config& config) { - std::vector> proc_type_table = get_proc_type_table(); + { + std::lock_guard lock{_streams_executor_mutex}; + std::vector> proc_type_table = get_proc_type_table(); - generate_stream_info(streams, -1, model, config, proc_type_table); + generate_stream_info(streams, -1, model, config, proc_type_table); + } } } // namespace intel_cpu diff --git a/src/plugins/intel_cpu/src/cpu_streams_calculation.hpp b/src/plugins/intel_cpu/src/cpu_streams_calculation.hpp index 96564e0a22eb81..2af57e05bfd53d 100644 --- a/src/plugins/intel_cpu/src/cpu_streams_calculation.hpp +++ b/src/plugins/intel_cpu/src/cpu_streams_calculation.hpp @@ -35,8 +35,6 @@ namespace intel_cpu { * function. * - input "0" indicates that the function generates the optimal number of threads per stream based on * processors type information. - * @param[in] input_current_socket_id is the socket ID in cpu mapping table of the currently running thread - * - input "-1" indicates that the function get_streams_info_table will query this id internally. * @param[in] input_perf_hint is performance hint set by user via ov::hint::performance_mode or the default value. * @param[in] hint_llm_distribution_policy is the distribution policy for Large language models * @param[in] proc_type_table is currently available candidate processors. @@ -50,7 +48,6 @@ std::vector> get_streams_info_table( const int input_threads, const int input_infer_requests, const int model_prefer_threads, - const int input_current_socket_id, const std::string input_perf_hint, const std::set hint_llm_distribution_policy, const std::vector>& proc_type_table); @@ -85,7 +82,7 @@ int get_model_prefer_threads(const int num_streams, /** * @brief Generate streams information according to processors type table * @param[in] streams number of streams - * @param[in] input_current_socket_id is the socket ID in cpu mapping table of the currently running thread + * @param[in] input_numa_node_id is the numa node ID in cpu mapping table of the currently running thread * - input "-1" indicates that the function get_streams_info_table will query this id internally. * @param[in] model graph handle * @param[in] config intel cpu configuration @@ -95,7 +92,7 @@ int get_model_prefer_threads(const int num_streams, * ov::hint::enable_hyper_threading */ std::vector> generate_stream_info(const int streams, - const int input_current_socket_id, + const int input_numa_node_id, const std::shared_ptr& model, Config& config, std::vector>& proc_type_table, @@ -109,5 +106,13 @@ std::vector> generate_stream_info(const int streams, */ void get_num_streams(const int streams, const std::shared_ptr& model, Config& config); +/** + * @brief Sort proc_type_table by numa node id on which application is running. The numa node will move to first + * row. + * @param[in] current_numa_node numa node ID on which application is running. + * @param[in] proc_type_table summary table of number of processors per type + */ +void sort_table_by_numa_node_id(const int current_numa_node, std::vector>& proc_type_table); + } // namespace intel_cpu } // namespace ov diff --git a/src/plugins/intel_cpu/src/plugin.cpp b/src/plugins/intel_cpu/src/plugin.cpp index 4369588182ac5c..f2494e061c8301 100644 --- a/src/plugins/intel_cpu/src/plugin.cpp +++ b/src/plugins/intel_cpu/src/plugin.cpp @@ -335,6 +335,9 @@ ov::Any Plugin::get_property(const std::string& name, const ov::AnyMap& options) } else if (name == ov::hint::enable_cpu_pinning) { const bool pin_value = engConfig.enableCpuPinning; return decltype(ov::hint::enable_cpu_pinning)::value_type(pin_value); + } else if (name == ov::hint::enable_cpu_reservation) { + const bool reserve_value = engConfig.enableCpuReservation; + return decltype(ov::hint::enable_cpu_reservation)::value_type(reserve_value); } else if (name == ov::hint::scheduling_core_type) { const auto core_type = engConfig.schedulingCoreType; return core_type; @@ -419,6 +422,7 @@ ov::Any Plugin::get_ro_property(const std::string& name, const ov::AnyMap& optio RW_property(ov::hint::execution_mode.name()), RW_property(ov::hint::num_requests.name()), RW_property(ov::hint::enable_cpu_pinning.name()), + RW_property(ov::hint::enable_cpu_reservation.name()), RW_property(ov::hint::scheduling_core_type.name()), RW_property(ov::hint::model_distribution_policy.name()), RW_property(ov::hint::enable_hyper_threading.name()), diff --git a/src/plugins/intel_cpu/tests/functional/custom/behavior/ov_executable_network/properties.cpp b/src/plugins/intel_cpu/tests/functional/custom/behavior/ov_executable_network/properties.cpp index 6655a2a5e7d48d..fd9b5084a0c768 100644 --- a/src/plugins/intel_cpu/tests/functional/custom/behavior/ov_executable_network/properties.cpp +++ b/src/plugins/intel_cpu/tests/functional/custom/behavior/ov_executable_network/properties.cpp @@ -32,6 +32,7 @@ TEST_F(OVClassConfigTestCPU, smoke_CpuExecNetworkSupportedPropertiesAreAvailable RO_property(ov::hint::execution_mode.name()), RO_property(ov::hint::num_requests.name()), RO_property(ov::hint::enable_cpu_pinning.name()), + RO_property(ov::hint::enable_cpu_reservation.name()), RO_property(ov::hint::scheduling_core_type.name()), RO_property(ov::hint::model_distribution_policy.name()), RO_property(ov::hint::enable_hyper_threading.name()), diff --git a/src/plugins/intel_cpu/tests/functional/custom/behavior/ov_plugin/properties.cpp b/src/plugins/intel_cpu/tests/functional/custom/behavior/ov_plugin/properties.cpp index 5adf6cbb125185..f8a9558b308dad 100644 --- a/src/plugins/intel_cpu/tests/functional/custom/behavior/ov_plugin/properties.cpp +++ b/src/plugins/intel_cpu/tests/functional/custom/behavior/ov_plugin/properties.cpp @@ -46,6 +46,7 @@ TEST_F(OVClassConfigTestCPU, smoke_PluginAllSupportedPropertiesAreAvailable) { RW_property(ov::hint::execution_mode.name()), RW_property(ov::hint::num_requests.name()), RW_property(ov::hint::enable_cpu_pinning.name()), + RW_property(ov::hint::enable_cpu_reservation.name()), RW_property(ov::hint::scheduling_core_type.name()), RW_property(ov::hint::model_distribution_policy.name()), RW_property(ov::hint::enable_hyper_threading.name()), diff --git a/src/plugins/intel_cpu/tests/functional/shared_tests_instances/behavior/compiled_model/cpu_reservation_test.cpp b/src/plugins/intel_cpu/tests/functional/shared_tests_instances/behavior/compiled_model/cpu_reservation_test.cpp new file mode 100644 index 00000000000000..78ee401d169cbb --- /dev/null +++ b/src/plugins/intel_cpu/tests/functional/shared_tests_instances/behavior/compiled_model/cpu_reservation_test.cpp @@ -0,0 +1,90 @@ +// Copyright (C) 2018-2024 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include +#include + +#include "common_test_utils/test_constants.hpp" +#include "common_test_utils/subgraph_builders/2_input_subtract.hpp" +#include "common_test_utils/subgraph_builders/multi_single_conv.hpp" +#include "openvino/openvino.hpp" +#include "common_test_utils/ov_plugin_cache.hpp" +#include "openvino/runtime/properties.hpp" +#include "openvino/util/file_util.hpp" + +using namespace testing; +using Device = std::string; +using Config = ov::AnyMap; +using CpuReservationTest = ::testing::Test; + +TEST_F(CpuReservationTest, Mutiple_CompiledModel_Reservation) { + std::vector> models; + Config config = {ov::enable_profiling(true)}; + Device target_device(ov::test::utils::DEVICE_CPU); + std::atomic counter{0u}; + + models.emplace_back(ov::test::utils::make_2_input_subtract()); + models.emplace_back(ov::test::utils::make_multi_single_conv()); + + std::shared_ptr core = ov::test::utils::PluginCache::get().core(); + core->set_property(target_device, config); + ov::AnyMap property_config_reserve = {{ov::num_streams.name(), ov::streams::Num(1)}, + {ov::inference_num_threads.name(), 1}, + {ov::hint::enable_cpu_reservation.name(), true}}; + ov::AnyMap property_config = {{ov::num_streams.name(), ov::streams::Num(1)}, {ov::inference_num_threads.name(), 1}}; + + std::vector threads(2); + for (auto& thread : threads) { + thread = std::thread([&]() { + auto value = counter++; + auto compiled_model = core->compile_model(models[value % models.size()], + target_device, + value == 1 ? property_config : property_config_reserve); + auto cpu_reservation = compiled_model.get_property(ov::hint::enable_cpu_reservation.name()); + auto num_streams = compiled_model.get_property(ov::num_streams.name()); + ASSERT_EQ(cpu_reservation, value == 1 ? false : true); + ASSERT_EQ(num_streams, ov::streams::Num(1)); + }); + } + + for (auto& thread : threads) { + if (thread.joinable()) + thread.join(); + } +} + +TEST_F(CpuReservationTest, Cpu_Reservation_NoAvailableCores) { + std::vector> models; + Config config = {ov::enable_profiling(true)}; + Device target_device(ov::test::utils::DEVICE_CPU); + models.emplace_back(ov::test::utils::make_2_input_subtract()); + + std::shared_ptr core = ov::test::utils::PluginCache::get().core(); + core->set_property(target_device, config); + ov::AnyMap property_config = {{ov::num_streams.name(), 1}, + {ov::inference_num_threads.name(), 2000}, + {ov::hint::enable_hyper_threading.name(), true}, + {ov::hint::enable_cpu_reservation.name(), true}}; + auto compiled_model = core->compile_model(models[0], target_device, property_config); + EXPECT_THROW(core->compile_model(models[0], target_device, property_config), ov::Exception); +} + +#if defined(__linux__) +TEST_F(CpuReservationTest, Cpu_Reservation_CpuPinning) { + std::vector> models; + Config config = {ov::enable_profiling(true)}; + Device target_device(ov::test::utils::DEVICE_CPU); + models.emplace_back(ov::test::utils::make_2_input_subtract()); + + std::shared_ptr core = ov::test::utils::PluginCache::get().core(); + core->set_property(target_device, config); + ov::AnyMap property_config = {{ov::inference_num_threads.name(), 1}, + {ov::hint::enable_cpu_reservation.name(), true}}; + auto compiled_model = core->compile_model(models[0], target_device, property_config); + auto cpu_pinning = compiled_model.get_property(ov::hint::enable_cpu_pinning.name()); + ASSERT_EQ(cpu_pinning, true); +} +#endif diff --git a/src/plugins/intel_cpu/tests/functional/shared_tests_instances/behavior/ov_plugin/properties_tests.cpp b/src/plugins/intel_cpu/tests/functional/shared_tests_instances/behavior/ov_plugin/properties_tests.cpp index 12231dfb3c72f0..6d288d9f5ede8b 100644 --- a/src/plugins/intel_cpu/tests/functional/shared_tests_instances/behavior/ov_plugin/properties_tests.cpp +++ b/src/plugins/intel_cpu/tests/functional/shared_tests_instances/behavior/ov_plugin/properties_tests.cpp @@ -30,6 +30,7 @@ auto cpu_properties = []() -> std::vector { // check that hints doesn't override customer value (now for streams and later for other config opts) {{ov::hint::performance_mode(ov::hint::PerformanceMode::THROUGHPUT)}, {ov::hint::num_requests(3)}}, {{ov::hint::performance_mode(ov::hint::PerformanceMode::LATENCY)}, {ov::hint::num_requests(3)}}, + {{ov::hint::enable_cpu_reservation(true)}, {ov::num_streams(1)}, {ov::inference_num_threads(2)}}, }; auto numa_nodes = ov::get_available_numa_nodes(); diff --git a/src/plugins/intel_cpu/tests/unit/streams_info/cpu_pinning_test.cpp b/src/plugins/intel_cpu/tests/unit/streams_info/cpu_pinning_test.cpp index 23cc7a04cdfb9e..60d058a6cd0ce0 100644 --- a/src/plugins/intel_cpu/tests/unit/streams_info/cpu_pinning_test.cpp +++ b/src/plugins/intel_cpu/tests/unit/streams_info/cpu_pinning_test.cpp @@ -29,6 +29,7 @@ class CpuPinningTests : public ov::test::TestsCommon, auto test_output = ov::intel_cpu::get_cpu_pinning(test_data.input_cpu_pinning, test_data.input_changed, + false, test_data.input_proc_type_table, test_data.input_stream_info_table); diff --git a/src/plugins/intel_cpu/tests/unit/streams_info/streams_e2e_test.cpp b/src/plugins/intel_cpu/tests/unit/streams_info/streams_e2e_test.cpp index 5cd43bbcb56d04..a6981cfbbe1498 100644 --- a/src/plugins/intel_cpu/tests/unit/streams_info/streams_e2e_test.cpp +++ b/src/plugins/intel_cpu/tests/unit/streams_info/streams_e2e_test.cpp @@ -8,6 +8,7 @@ #include "cpu_map_scheduling.hpp" #include "cpu_streams_calculation.hpp" #include "openvino/runtime/system_conf.hpp" +#include "openvino/runtime/threading/cpu_streams_info.hpp" #include "os/cpu_map_info.hpp" using namespace testing; @@ -21,14 +22,16 @@ struct StreamGenerateionTestCase { int input_thread; int input_request; int input_model_prefer; - int input_socket_id; + int input_numa_node_id; ov::hint::SchedulingCoreType input_type; bool input_ht_value; bool input_ht_changed; + bool input_cpu_reservation; bool input_cpu_value; bool input_cpu_changed; ov::hint::PerformanceMode input_pm_hint; std::set hint_llm_distribution_policy; + std::vector> cpu_mapping_table; std::vector> input_proc_type_table; ov::hint::SchedulingCoreType output_type; bool output_ht_value; @@ -40,6 +43,7 @@ struct StreamGenerateionTestCase { void make_config(StreamGenerateionTestCase& test_data, ov::intel_cpu::Config& config) { config.schedulingCoreType = test_data.input_type; + config.enableCpuReservation = test_data.input_cpu_reservation; config.enableCpuPinning = test_data.input_cpu_value; config.changedCpuPinning = test_data.input_cpu_changed; config.enableHyperThreading = test_data.input_ht_value; @@ -62,21 +66,65 @@ class StreamGenerationTests : public ov::test::TestsCommon, make_config(test_data, config); CPU& cpu = cpu_info(); + cpu._cpu_mapping_table = test_data.cpu_mapping_table; cpu._proc_type_table = test_data.input_proc_type_table; + cpu._org_proc_type_table = test_data.input_proc_type_table; + cpu._numa_nodes = cpu._proc_type_table.size() > 1 ? static_cast(cpu._proc_type_table.size()) - 1 : 1; + cpu._sockets = cpu._numa_nodes; + std::vector> res_proc_type_table = test_data.input_proc_type_table; - auto proc_type_table = ov::intel_cpu::generate_stream_info(test_data.input_stream, - test_data.input_socket_id, - nullptr, - config, - test_data.input_proc_type_table, - test_data.input_model_prefer); - - ASSERT_EQ(test_data.output_stream_info_table, config.streamExecutorConfig.get_streams_info_table()); - ASSERT_EQ(test_data.output_proc_type_table, proc_type_table); - ASSERT_EQ(test_data.output_cpu_value, config.streamExecutorConfig.get_cpu_pinning()); - ASSERT_EQ(test_data.output_ht_value, config.enableHyperThreading); - ASSERT_EQ(test_data.output_type, config.schedulingCoreType); - ASSERT_EQ(test_data.output_pm_hint, config.hintPerfMode); + if (cpu._cpu_mapping_table.empty()) { + EXPECT_THROW(ov::intel_cpu::generate_stream_info(test_data.input_stream, + test_data.input_numa_node_id, + nullptr, + config, + test_data.input_proc_type_table, + test_data.input_model_prefer), + ov::Exception); + } else { + auto proc_type_table = ov::intel_cpu::generate_stream_info(test_data.input_stream, + test_data.input_numa_node_id, + nullptr, + config, + test_data.input_proc_type_table, + test_data.input_model_prefer); + ASSERT_EQ(test_data.output_stream_info_table, config.streamExecutorConfig.get_streams_info_table()); + ASSERT_EQ(test_data.output_proc_type_table, proc_type_table); + ASSERT_EQ(test_data.output_cpu_value, config.streamExecutorConfig.get_cpu_pinning()); + ASSERT_EQ(test_data.output_ht_value, config.enableHyperThreading); + ASSERT_EQ(test_data.output_type, config.schedulingCoreType); + ASSERT_EQ(test_data.output_pm_hint, config.hintPerfMode); + if (config.enableCpuReservation) { + for (size_t i = 0; i < test_data.output_stream_info_table.size(); i++) { + if (test_data.output_stream_info_table[i][PROC_TYPE] >= MAIN_CORE_PROC && + test_data.output_stream_info_table[i][PROC_TYPE] <= HYPER_THREADING_PROC) { + int nstreams = test_data.output_stream_info_table[i][NUMBER_OF_STREAMS] > 0 + ? test_data.output_stream_info_table[i][NUMBER_OF_STREAMS] + : 1; + int nthreads = nstreams * test_data.output_stream_info_table[i][THREADS_PER_STREAM]; + if (res_proc_type_table.size() > 1) { + for (size_t j = 0; j < proc_type_table.size(); j++) { + if (res_proc_type_table[j][PROC_NUMA_NODE_ID] == + test_data.output_stream_info_table[i][STREAM_NUMA_NODE_ID] && + res_proc_type_table[j][PROC_SOCKET_ID] == + test_data.output_stream_info_table[i][STREAM_SOCKET_ID]) { + res_proc_type_table[j][test_data.output_stream_info_table[i][PROC_TYPE]] -= + nthreads; + res_proc_type_table[j][ALL_PROC] -= nthreads; + res_proc_type_table[0][test_data.output_stream_info_table[i][PROC_TYPE]] -= + nthreads; + res_proc_type_table[0][ALL_PROC] -= nthreads; + } + } + } else { + res_proc_type_table[0][test_data.output_stream_info_table[i][PROC_TYPE]] -= nthreads; + res_proc_type_table[0][ALL_PROC] -= nthreads; + } + } + } + ASSERT_EQ(res_proc_type_table, cpu._proc_type_table); + } + } } }; @@ -93,10 +141,23 @@ StreamGenerateionTestCase generation_latency_1sockets_14cores_1_pinning = { // (PCORE_ONLY/ECORE_ONLY/ANY_CORE) true, // param[in]: simulated setting for enableHyperThreading true, // param[in]: simulated settting for changedHyperThreading + false, // param[in]: simulated settting for enableCpuReservation true, // param[in]: simulated setting for enableCpuPinning true, // param[in]: simulated setting for changedCpuPinning ov::hint::PerformanceMode::LATENCY, // param[in]: simulated setting for performance mode (throughput/latency) - {}, // param[in]: simulated setting for model distribution policy + {}, // param[in]: simulated setting for model distribution policy + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 6, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 7, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 8, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 9, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 10, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 11, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 12, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 13, EFFICIENT_CORE_PROC, 19, -1}, + }, {{20, 6, 8, 6, 0, 0}}, // param[in]: simulated proc_type_table for platform which has one socket, 6 Pcores, 8 // Ecores and hyper threading enabled ov::hint::SchedulingCoreType::ANY_CORE, // param[expected out]: scheduling core type needs to be the same as input @@ -122,10 +183,27 @@ StreamGenerateionTestCase generation_latency_1sockets_14cores_2_pinning = { ov::hint::SchedulingCoreType::ANY_CORE, true, true, + false, true, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, + {1, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, + {2, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, + {3, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, + {4, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, + {5, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, + {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, + {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, + {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, + {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + }, {{14, 6, 8, 0, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -145,10 +223,23 @@ StreamGenerateionTestCase generation_tput_1sockets_14cores_1_pinning = { ov::hint::SchedulingCoreType::ANY_CORE, true, true, + false, true, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 6, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 7, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 8, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 9, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 10, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 11, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 12, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 13, EFFICIENT_CORE_PROC, 19, -1}, + }, {{20, 6, 8, 6, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, true, @@ -168,10 +259,23 @@ StreamGenerateionTestCase generation_latency_1sockets_14cores_1_unpinning = { ov::hint::SchedulingCoreType::ANY_CORE, true, true, + false, true, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 6, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 7, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 8, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 9, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 10, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 11, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 12, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 13, EFFICIENT_CORE_PROC, 19, -1}, + }, {{20, 6, 8, 6, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, true, @@ -194,10 +298,27 @@ StreamGenerateionTestCase generation_latency_1sockets_14cores_2_unpinning = { ov::hint::SchedulingCoreType::ANY_CORE, true, true, + false, true, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, + {1, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, + {2, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, + {3, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, + {4, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, + {5, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, + {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, + {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, + {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, + {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + }, {{14, 6, 8, 0, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -217,10 +338,23 @@ StreamGenerateionTestCase generation_tput_1sockets_14cores_1_unpinning = { ov::hint::SchedulingCoreType::ANY_CORE, true, true, + false, true, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 6, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 7, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 8, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 9, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 10, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 11, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 12, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 13, EFFICIENT_CORE_PROC, 19, -1}, + }, {{20, 6, 8, 6, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, true, @@ -241,9 +375,66 @@ StreamGenerateionTestCase generation_latency_1sockets_14cores_3 = { true, true, false, + false, + true, + ov::hint::PerformanceMode::LATENCY, + {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, + {1, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, + {2, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, + {3, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, + {4, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, + {5, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, + {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, + {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, + {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, + {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + }, + {{14, 6, 8, 0, 0, 0}}, + ov::hint::SchedulingCoreType::PCORE_ONLY, + false, + false, + ov::hint::PerformanceMode::LATENCY, + {{6, 6, 0, 0, 0, 0}}, + {{1, MAIN_CORE_PROC, 6, 0, 0}}, +}; + +StreamGenerateionTestCase generation_latency_1sockets_14cores_3_reservation = { + 1, + false, + 0, + 0, + 0, + 0, + ov::hint::SchedulingCoreType::PCORE_ONLY, + true, + true, + true, + false, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, + {1, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, + {2, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, + {3, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, + {4, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, + {5, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, + {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, + {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, + {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, + {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + }, {{14, 6, 8, 0, 0, 0}}, ov::hint::SchedulingCoreType::PCORE_ONLY, false, @@ -253,6 +444,46 @@ StreamGenerateionTestCase generation_latency_1sockets_14cores_3 = { {{1, MAIN_CORE_PROC, 6, 0, 0}}, }; +StreamGenerateionTestCase generation_latency_1sockets_14cores_4_reservation = { + 1, + false, + 0, + 0, + 0, + 0, + ov::hint::SchedulingCoreType::PCORE_ONLY, + true, + true, + true, + false, + false, + ov::hint::PerformanceMode::LATENCY, + {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, + {1, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, + {2, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, + {3, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, + {4, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, + {5, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, + {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, + {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, + {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, + {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + }, + {{14, 6, 8, 0, 0, 0}}, + ov::hint::SchedulingCoreType::PCORE_ONLY, + false, + true, + ov::hint::PerformanceMode::LATENCY, + {{6, 6, 0, 0, 0, 0}}, + {{1, MAIN_CORE_PROC, 6, 0, 0}}, +}; + StreamGenerateionTestCase generation_latency_1sockets_14cores_4 = { 1, false, @@ -264,9 +495,22 @@ StreamGenerateionTestCase generation_latency_1sockets_14cores_4 = { true, true, false, + false, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 6, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 7, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 8, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 9, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 10, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 11, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 12, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 13, EFFICIENT_CORE_PROC, 19, -1}, + }, {{20, 6, 8, 6, 0, 0}}, ov::hint::SchedulingCoreType::PCORE_ONLY, true, @@ -287,9 +531,22 @@ StreamGenerateionTestCase generation_latency_1sockets_14cores_5 = { false, true, false, + false, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 6, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 7, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 8, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 9, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 10, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 11, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 12, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 13, EFFICIENT_CORE_PROC, 19, -1}, + }, {{20, 6, 8, 6, 0, 0}}, ov::hint::SchedulingCoreType::PCORE_ONLY, false, @@ -310,9 +567,134 @@ StreamGenerateionTestCase generation_latency_2sockets_48cores_6 = { false, true, false, + false, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1}, + {38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1}, + {40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1}, + {42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1}, + {44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1}, + {46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {55, 0, 0, 55, MAIN_CORE_PROC, 55, -1}, + {56, 0, 0, 56, MAIN_CORE_PROC, 56, -1}, {57, 0, 0, 57, MAIN_CORE_PROC, 57, -1}, + {58, 0, 0, 58, MAIN_CORE_PROC, 58, -1}, {59, 0, 0, 59, MAIN_CORE_PROC, 59, -1}, + {60, 0, 0, 60, MAIN_CORE_PROC, 60, -1}, {61, 0, 0, 61, MAIN_CORE_PROC, 61, -1}, + {62, 0, 0, 62, MAIN_CORE_PROC, 62, -1}, {63, 0, 0, 63, MAIN_CORE_PROC, 63, -1}, + {64, 0, 0, 64, MAIN_CORE_PROC, 64, -1}, {65, 0, 0, 65, MAIN_CORE_PROC, 65, -1}, + {66, 0, 0, 66, MAIN_CORE_PROC, 66, -1}, {67, 0, 0, 67, MAIN_CORE_PROC, 67, -1}, + {68, 0, 0, 68, MAIN_CORE_PROC, 68, -1}, {69, 0, 0, 69, MAIN_CORE_PROC, 69, -1}, + {70, 0, 0, 70, MAIN_CORE_PROC, 70, -1}, {71, 0, 0, 71, MAIN_CORE_PROC, 71, -1}, + {72, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {73, 1, 1, 73, MAIN_CORE_PROC, 73, -1}, + {74, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {75, 1, 1, 75, MAIN_CORE_PROC, 75, -1}, + {76, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {77, 1, 1, 77, MAIN_CORE_PROC, 77, -1}, + {78, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {79, 1, 1, 79, MAIN_CORE_PROC, 79, -1}, + {80, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {81, 1, 1, 81, MAIN_CORE_PROC, 81, -1}, + {82, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {83, 1, 1, 83, MAIN_CORE_PROC, 83, -1}, + {84, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {85, 1, 1, 85, MAIN_CORE_PROC, 85, -1}, + {86, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {87, 1, 1, 87, MAIN_CORE_PROC, 87, -1}, + {88, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {89, 1, 1, 89, MAIN_CORE_PROC, 89, -1}, + {90, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {91, 1, 1, 91, MAIN_CORE_PROC, 91, -1}, + {92, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {93, 1, 1, 93, MAIN_CORE_PROC, 93, -1}, + {94, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {95, 1, 1, 95, MAIN_CORE_PROC, 95, -1}, + }, + {{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}}, + ov::hint::SchedulingCoreType::PCORE_ONLY, + false, + false, + ov::hint::PerformanceMode::LATENCY, + {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, + {{1, MAIN_CORE_PROC, 24, 0, 0}}, +}; + +StreamGenerateionTestCase generation_latency_2sockets_48cores_6_reservation = { + 1, + false, + 0, + 0, + 0, + 0, + ov::hint::SchedulingCoreType::PCORE_ONLY, + false, + true, + true, + false, + true, + ov::hint::PerformanceMode::LATENCY, + {}, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1}, + {38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1}, + {40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1}, + {42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1}, + {44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1}, + {46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {55, 0, 0, 55, MAIN_CORE_PROC, 55, -1}, + {56, 0, 0, 56, MAIN_CORE_PROC, 56, -1}, {57, 0, 0, 57, MAIN_CORE_PROC, 57, -1}, + {58, 0, 0, 58, MAIN_CORE_PROC, 58, -1}, {59, 0, 0, 59, MAIN_CORE_PROC, 59, -1}, + {60, 0, 0, 60, MAIN_CORE_PROC, 60, -1}, {61, 0, 0, 61, MAIN_CORE_PROC, 61, -1}, + {62, 0, 0, 62, MAIN_CORE_PROC, 62, -1}, {63, 0, 0, 63, MAIN_CORE_PROC, 63, -1}, + {64, 0, 0, 64, MAIN_CORE_PROC, 64, -1}, {65, 0, 0, 65, MAIN_CORE_PROC, 65, -1}, + {66, 0, 0, 66, MAIN_CORE_PROC, 66, -1}, {67, 0, 0, 67, MAIN_CORE_PROC, 67, -1}, + {68, 0, 0, 68, MAIN_CORE_PROC, 68, -1}, {69, 0, 0, 69, MAIN_CORE_PROC, 69, -1}, + {70, 0, 0, 70, MAIN_CORE_PROC, 70, -1}, {71, 0, 0, 71, MAIN_CORE_PROC, 71, -1}, + {72, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {73, 1, 1, 73, MAIN_CORE_PROC, 73, -1}, + {74, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {75, 1, 1, 75, MAIN_CORE_PROC, 75, -1}, + {76, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {77, 1, 1, 77, MAIN_CORE_PROC, 77, -1}, + {78, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {79, 1, 1, 79, MAIN_CORE_PROC, 79, -1}, + {80, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {81, 1, 1, 81, MAIN_CORE_PROC, 81, -1}, + {82, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {83, 1, 1, 83, MAIN_CORE_PROC, 83, -1}, + {84, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {85, 1, 1, 85, MAIN_CORE_PROC, 85, -1}, + {86, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {87, 1, 1, 87, MAIN_CORE_PROC, 87, -1}, + {88, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {89, 1, 1, 89, MAIN_CORE_PROC, 89, -1}, + {90, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {91, 1, 1, 91, MAIN_CORE_PROC, 91, -1}, + {92, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {93, 1, 1, 93, MAIN_CORE_PROC, 93, -1}, + {94, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {95, 1, 1, 95, MAIN_CORE_PROC, 95, -1}, + }, {{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}}, ov::hint::SchedulingCoreType::PCORE_ONLY, false, @@ -333,9 +715,36 @@ StreamGenerateionTestCase generation_latency_2sockets_48cores_7 = { true, true, false, + false, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, + {2, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, + {4, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, + {6, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 7, MAIN_CORE_PROC, 7, -1}, + {8, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 9, MAIN_CORE_PROC, 9, -1}, + {10, 0, 0, 10, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 11, MAIN_CORE_PROC, 11, -1}, + {12, 0, 0, 12, MAIN_CORE_PROC, 12, -1}, {13, 0, 0, 13, MAIN_CORE_PROC, 13, -1}, + {14, 0, 0, 14, MAIN_CORE_PROC, 14, -1}, {15, 0, 0, 15, MAIN_CORE_PROC, 15, -1}, + {16, 0, 0, 16, MAIN_CORE_PROC, 16, -1}, {17, 0, 0, 17, MAIN_CORE_PROC, 17, -1}, + {18, 0, 0, 18, MAIN_CORE_PROC, 18, -1}, {19, 0, 0, 19, MAIN_CORE_PROC, 19, -1}, + {20, 0, 0, 20, MAIN_CORE_PROC, 20, -1}, {21, 0, 0, 21, MAIN_CORE_PROC, 21, -1}, + {22, 0, 0, 22, MAIN_CORE_PROC, 22, -1}, {23, 0, 0, 23, MAIN_CORE_PROC, 23, -1}, + {24, 1, 1, 24, MAIN_CORE_PROC, 24, -1}, {25, 1, 1, 25, MAIN_CORE_PROC, 25, -1}, + {26, 1, 1, 26, MAIN_CORE_PROC, 26, -1}, {27, 1, 1, 27, MAIN_CORE_PROC, 27, -1}, + {28, 1, 1, 28, MAIN_CORE_PROC, 28, -1}, {29, 1, 1, 29, MAIN_CORE_PROC, 29, -1}, + {30, 1, 1, 30, MAIN_CORE_PROC, 30, -1}, {31, 1, 1, 31, MAIN_CORE_PROC, 31, -1}, + {32, 1, 1, 32, MAIN_CORE_PROC, 32, -1}, {33, 1, 1, 33, MAIN_CORE_PROC, 33, -1}, + {34, 1, 1, 34, MAIN_CORE_PROC, 34, -1}, {35, 1, 1, 35, MAIN_CORE_PROC, 35, -1}, + {36, 1, 1, 36, MAIN_CORE_PROC, 36, -1}, {37, 1, 1, 37, MAIN_CORE_PROC, 37, -1}, + {38, 1, 1, 38, MAIN_CORE_PROC, 38, -1}, {39, 1, 1, 39, MAIN_CORE_PROC, 39, -1}, + {40, 1, 1, 40, MAIN_CORE_PROC, 40, -1}, {41, 1, 1, 41, MAIN_CORE_PROC, 41, -1}, + {42, 1, 1, 42, MAIN_CORE_PROC, 42, -1}, {43, 1, 1, 43, MAIN_CORE_PROC, 43, -1}, + {44, 1, 1, 44, MAIN_CORE_PROC, 44, -1}, {45, 1, 1, 45, MAIN_CORE_PROC, 45, -1}, + {46, 1, 1, 46, MAIN_CORE_PROC, 46, -1}, {47, 1, 1, 47, MAIN_CORE_PROC, 47, -1}, + }, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, ov::hint::SchedulingCoreType::PCORE_ONLY, false, @@ -356,9 +765,60 @@ StreamGenerateionTestCase generation_latency_2sockets_48cores_8 = { false, true, false, + false, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1}, + {38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1}, + {40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1}, + {42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1}, + {44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1}, + {46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {55, 0, 0, 55, MAIN_CORE_PROC, 55, -1}, + {56, 0, 0, 56, MAIN_CORE_PROC, 56, -1}, {57, 0, 0, 57, MAIN_CORE_PROC, 57, -1}, + {58, 0, 0, 58, MAIN_CORE_PROC, 58, -1}, {59, 0, 0, 59, MAIN_CORE_PROC, 59, -1}, + {60, 0, 0, 60, MAIN_CORE_PROC, 60, -1}, {61, 0, 0, 61, MAIN_CORE_PROC, 61, -1}, + {62, 0, 0, 62, MAIN_CORE_PROC, 62, -1}, {63, 0, 0, 63, MAIN_CORE_PROC, 63, -1}, + {64, 0, 0, 64, MAIN_CORE_PROC, 64, -1}, {65, 0, 0, 65, MAIN_CORE_PROC, 65, -1}, + {66, 0, 0, 66, MAIN_CORE_PROC, 66, -1}, {67, 0, 0, 67, MAIN_CORE_PROC, 67, -1}, + {68, 0, 0, 68, MAIN_CORE_PROC, 68, -1}, {69, 0, 0, 69, MAIN_CORE_PROC, 69, -1}, + {70, 0, 0, 70, MAIN_CORE_PROC, 70, -1}, {71, 0, 0, 71, MAIN_CORE_PROC, 71, -1}, + {72, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {73, 1, 1, 73, MAIN_CORE_PROC, 73, -1}, + {74, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {75, 1, 1, 75, MAIN_CORE_PROC, 75, -1}, + {76, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {77, 1, 1, 77, MAIN_CORE_PROC, 77, -1}, + {78, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {79, 1, 1, 79, MAIN_CORE_PROC, 79, -1}, + {80, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {81, 1, 1, 81, MAIN_CORE_PROC, 81, -1}, + {82, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {83, 1, 1, 83, MAIN_CORE_PROC, 83, -1}, + {84, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {85, 1, 1, 85, MAIN_CORE_PROC, 85, -1}, + {86, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {87, 1, 1, 87, MAIN_CORE_PROC, 87, -1}, + {88, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {89, 1, 1, 89, MAIN_CORE_PROC, 89, -1}, + {90, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {91, 1, 1, 91, MAIN_CORE_PROC, 91, -1}, + {92, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {93, 1, 1, 93, MAIN_CORE_PROC, 93, -1}, + {94, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {95, 1, 1, 95, MAIN_CORE_PROC, 95, -1}, + }, {{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}}, ov::hint::SchedulingCoreType::PCORE_ONLY, false, @@ -379,9 +839,36 @@ StreamGenerateionTestCase generation_latency_2sockets_48cores_9 = { true, true, false, + false, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, + {2, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, + {4, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, + {6, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 7, MAIN_CORE_PROC, 7, -1}, + {8, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 9, MAIN_CORE_PROC, 9, -1}, + {10, 0, 0, 10, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 11, MAIN_CORE_PROC, 11, -1}, + {12, 0, 0, 12, MAIN_CORE_PROC, 12, -1}, {13, 0, 0, 13, MAIN_CORE_PROC, 13, -1}, + {14, 0, 0, 14, MAIN_CORE_PROC, 14, -1}, {15, 0, 0, 15, MAIN_CORE_PROC, 15, -1}, + {16, 0, 0, 16, MAIN_CORE_PROC, 16, -1}, {17, 0, 0, 17, MAIN_CORE_PROC, 17, -1}, + {18, 0, 0, 18, MAIN_CORE_PROC, 18, -1}, {19, 0, 0, 19, MAIN_CORE_PROC, 19, -1}, + {20, 0, 0, 20, MAIN_CORE_PROC, 20, -1}, {21, 0, 0, 21, MAIN_CORE_PROC, 21, -1}, + {22, 0, 0, 22, MAIN_CORE_PROC, 22, -1}, {23, 0, 0, 23, MAIN_CORE_PROC, 23, -1}, + {24, 1, 1, 24, MAIN_CORE_PROC, 24, -1}, {25, 1, 1, 25, MAIN_CORE_PROC, 25, -1}, + {26, 1, 1, 26, MAIN_CORE_PROC, 26, -1}, {27, 1, 1, 27, MAIN_CORE_PROC, 27, -1}, + {28, 1, 1, 28, MAIN_CORE_PROC, 28, -1}, {29, 1, 1, 29, MAIN_CORE_PROC, 29, -1}, + {30, 1, 1, 30, MAIN_CORE_PROC, 30, -1}, {31, 1, 1, 31, MAIN_CORE_PROC, 31, -1}, + {32, 1, 1, 32, MAIN_CORE_PROC, 32, -1}, {33, 1, 1, 33, MAIN_CORE_PROC, 33, -1}, + {34, 1, 1, 34, MAIN_CORE_PROC, 34, -1}, {35, 1, 1, 35, MAIN_CORE_PROC, 35, -1}, + {36, 1, 1, 36, MAIN_CORE_PROC, 36, -1}, {37, 1, 1, 37, MAIN_CORE_PROC, 37, -1}, + {38, 1, 1, 38, MAIN_CORE_PROC, 38, -1}, {39, 1, 1, 39, MAIN_CORE_PROC, 39, -1}, + {40, 1, 1, 40, MAIN_CORE_PROC, 40, -1}, {41, 1, 1, 41, MAIN_CORE_PROC, 41, -1}, + {42, 1, 1, 42, MAIN_CORE_PROC, 42, -1}, {43, 1, 1, 43, MAIN_CORE_PROC, 43, -1}, + {44, 1, 1, 44, MAIN_CORE_PROC, 44, -1}, {45, 1, 1, 45, MAIN_CORE_PROC, 45, -1}, + {46, 1, 1, 46, MAIN_CORE_PROC, 46, -1}, {47, 1, 1, 47, MAIN_CORE_PROC, 47, -1}, + }, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, ov::hint::SchedulingCoreType::PCORE_ONLY, false, @@ -402,9 +889,60 @@ StreamGenerateionTestCase generation_latency_2sockets_48cores_10 = { false, true, false, + false, true, ov::hint::PerformanceMode::LATENCY, {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1}, + {38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1}, + {40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1}, + {42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1}, + {44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1}, + {46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {55, 0, 0, 55, MAIN_CORE_PROC, 55, -1}, + {56, 0, 0, 56, MAIN_CORE_PROC, 56, -1}, {57, 0, 0, 57, MAIN_CORE_PROC, 57, -1}, + {58, 0, 0, 58, MAIN_CORE_PROC, 58, -1}, {59, 0, 0, 59, MAIN_CORE_PROC, 59, -1}, + {60, 0, 0, 60, MAIN_CORE_PROC, 60, -1}, {61, 0, 0, 61, MAIN_CORE_PROC, 61, -1}, + {62, 0, 0, 62, MAIN_CORE_PROC, 62, -1}, {63, 0, 0, 63, MAIN_CORE_PROC, 63, -1}, + {64, 0, 0, 64, MAIN_CORE_PROC, 64, -1}, {65, 0, 0, 65, MAIN_CORE_PROC, 65, -1}, + {66, 0, 0, 66, MAIN_CORE_PROC, 66, -1}, {67, 0, 0, 67, MAIN_CORE_PROC, 67, -1}, + {68, 0, 0, 68, MAIN_CORE_PROC, 68, -1}, {69, 0, 0, 69, MAIN_CORE_PROC, 69, -1}, + {70, 0, 0, 70, MAIN_CORE_PROC, 70, -1}, {71, 0, 0, 71, MAIN_CORE_PROC, 71, -1}, + {72, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {73, 1, 1, 73, MAIN_CORE_PROC, 73, -1}, + {74, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {75, 1, 1, 75, MAIN_CORE_PROC, 75, -1}, + {76, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {77, 1, 1, 77, MAIN_CORE_PROC, 77, -1}, + {78, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {79, 1, 1, 79, MAIN_CORE_PROC, 79, -1}, + {80, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {81, 1, 1, 81, MAIN_CORE_PROC, 81, -1}, + {82, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {83, 1, 1, 83, MAIN_CORE_PROC, 83, -1}, + {84, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {85, 1, 1, 85, MAIN_CORE_PROC, 85, -1}, + {86, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {87, 1, 1, 87, MAIN_CORE_PROC, 87, -1}, + {88, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {89, 1, 1, 89, MAIN_CORE_PROC, 89, -1}, + {90, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {91, 1, 1, 91, MAIN_CORE_PROC, 91, -1}, + {92, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {93, 1, 1, 93, MAIN_CORE_PROC, 93, -1}, + {94, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {95, 1, 1, 95, MAIN_CORE_PROC, 95, -1}, + }, {{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}}, ov::hint::SchedulingCoreType::PCORE_ONLY, false, @@ -425,9 +963,36 @@ StreamGenerateionTestCase generation_latency_2sockets_48cores_11 = { true, true, false, + false, true, ov::hint::PerformanceMode::LATENCY, {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 1, MAIN_CORE_PROC, 1, -1}, + {2, 0, 0, 2, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 3, MAIN_CORE_PROC, 3, -1}, + {4, 0, 0, 4, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 5, MAIN_CORE_PROC, 5, -1}, + {6, 0, 0, 6, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 7, MAIN_CORE_PROC, 7, -1}, + {8, 0, 0, 8, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 9, MAIN_CORE_PROC, 9, -1}, + {10, 0, 0, 10, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 11, MAIN_CORE_PROC, 11, -1}, + {12, 0, 0, 12, MAIN_CORE_PROC, 12, -1}, {13, 0, 0, 13, MAIN_CORE_PROC, 13, -1}, + {14, 0, 0, 14, MAIN_CORE_PROC, 14, -1}, {15, 0, 0, 15, MAIN_CORE_PROC, 15, -1}, + {16, 0, 0, 16, MAIN_CORE_PROC, 16, -1}, {17, 0, 0, 17, MAIN_CORE_PROC, 17, -1}, + {18, 0, 0, 18, MAIN_CORE_PROC, 18, -1}, {19, 0, 0, 19, MAIN_CORE_PROC, 19, -1}, + {20, 0, 0, 20, MAIN_CORE_PROC, 20, -1}, {21, 0, 0, 21, MAIN_CORE_PROC, 21, -1}, + {22, 0, 0, 22, MAIN_CORE_PROC, 22, -1}, {23, 0, 0, 23, MAIN_CORE_PROC, 23, -1}, + {24, 1, 1, 24, MAIN_CORE_PROC, 24, -1}, {25, 1, 1, 25, MAIN_CORE_PROC, 25, -1}, + {26, 1, 1, 26, MAIN_CORE_PROC, 26, -1}, {27, 1, 1, 27, MAIN_CORE_PROC, 27, -1}, + {28, 1, 1, 28, MAIN_CORE_PROC, 28, -1}, {29, 1, 1, 29, MAIN_CORE_PROC, 29, -1}, + {30, 1, 1, 30, MAIN_CORE_PROC, 30, -1}, {31, 1, 1, 31, MAIN_CORE_PROC, 31, -1}, + {32, 1, 1, 32, MAIN_CORE_PROC, 32, -1}, {33, 1, 1, 33, MAIN_CORE_PROC, 33, -1}, + {34, 1, 1, 34, MAIN_CORE_PROC, 34, -1}, {35, 1, 1, 35, MAIN_CORE_PROC, 35, -1}, + {36, 1, 1, 36, MAIN_CORE_PROC, 36, -1}, {37, 1, 1, 37, MAIN_CORE_PROC, 37, -1}, + {38, 1, 1, 38, MAIN_CORE_PROC, 38, -1}, {39, 1, 1, 39, MAIN_CORE_PROC, 39, -1}, + {40, 1, 1, 40, MAIN_CORE_PROC, 40, -1}, {41, 1, 1, 41, MAIN_CORE_PROC, 41, -1}, + {42, 1, 1, 42, MAIN_CORE_PROC, 42, -1}, {43, 1, 1, 43, MAIN_CORE_PROC, 43, -1}, + {44, 1, 1, 44, MAIN_CORE_PROC, 44, -1}, {45, 1, 1, 45, MAIN_CORE_PROC, 45, -1}, + {46, 1, 1, 46, MAIN_CORE_PROC, 46, -1}, {47, 1, 1, 47, MAIN_CORE_PROC, 47, -1}, + }, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, ov::hint::SchedulingCoreType::PCORE_ONLY, false, @@ -448,9 +1013,22 @@ StreamGenerateionTestCase generation_tput_1sockets_14cores_2 = { false, true, false, + false, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 6, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 7, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 8, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 9, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 10, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 11, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 12, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 13, EFFICIENT_CORE_PROC, 19, -1}, + }, {{20, 6, 8, 6, 0, 0}}, ov::hint::SchedulingCoreType::PCORE_ONLY, false, @@ -471,9 +1049,22 @@ StreamGenerateionTestCase generation_tput_1sockets_14cores_3 = { true, true, false, + false, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 6, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 7, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 8, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 9, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 10, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 11, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 12, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 13, EFFICIENT_CORE_PROC, 19, -1}, + }, {{20, 6, 8, 6, 0, 0}}, ov::hint::SchedulingCoreType::PCORE_ONLY, true, @@ -494,9 +1085,22 @@ StreamGenerateionTestCase generation_tput_1sockets_14cores_4 = { true, true, false, + false, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, MAIN_CORE_PROC, 0, -1}, {1, 0, 0, 0, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 1, MAIN_CORE_PROC, 2, -1}, {3, 0, 0, 1, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 2, MAIN_CORE_PROC, 4, -1}, {5, 0, 0, 2, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 3, MAIN_CORE_PROC, 6, -1}, {7, 0, 0, 3, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 4, MAIN_CORE_PROC, 8, -1}, {9, 0, 0, 4, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 5, MAIN_CORE_PROC, 10, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 6, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 7, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 8, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 9, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 10, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 11, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 12, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 13, EFFICIENT_CORE_PROC, 19, -1}, + }, {{20, 6, 8, 6, 0, 0}}, ov::hint::SchedulingCoreType::PCORE_ONLY, true, @@ -517,9 +1121,60 @@ StreamGenerateionTestCase generation_tput_2sockets_48cores_5 = { true, true, false, + false, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1}, + {38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1}, + {40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1}, + {42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1}, + {44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1}, + {46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {55, 0, 0, 55, MAIN_CORE_PROC, 55, -1}, + {56, 0, 0, 56, MAIN_CORE_PROC, 56, -1}, {57, 0, 0, 57, MAIN_CORE_PROC, 57, -1}, + {58, 0, 0, 58, MAIN_CORE_PROC, 58, -1}, {59, 0, 0, 59, MAIN_CORE_PROC, 59, -1}, + {60, 0, 0, 60, MAIN_CORE_PROC, 60, -1}, {61, 0, 0, 61, MAIN_CORE_PROC, 61, -1}, + {62, 0, 0, 62, MAIN_CORE_PROC, 62, -1}, {63, 0, 0, 63, MAIN_CORE_PROC, 63, -1}, + {64, 0, 0, 64, MAIN_CORE_PROC, 64, -1}, {65, 0, 0, 65, MAIN_CORE_PROC, 65, -1}, + {66, 0, 0, 66, MAIN_CORE_PROC, 66, -1}, {67, 0, 0, 67, MAIN_CORE_PROC, 67, -1}, + {68, 0, 0, 68, MAIN_CORE_PROC, 68, -1}, {69, 0, 0, 69, MAIN_CORE_PROC, 69, -1}, + {70, 0, 0, 70, MAIN_CORE_PROC, 70, -1}, {71, 0, 0, 71, MAIN_CORE_PROC, 71, -1}, + {72, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {73, 1, 1, 73, MAIN_CORE_PROC, 73, -1}, + {74, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {75, 1, 1, 75, MAIN_CORE_PROC, 75, -1}, + {76, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {77, 1, 1, 77, MAIN_CORE_PROC, 77, -1}, + {78, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {79, 1, 1, 79, MAIN_CORE_PROC, 79, -1}, + {80, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {81, 1, 1, 81, MAIN_CORE_PROC, 81, -1}, + {82, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {83, 1, 1, 83, MAIN_CORE_PROC, 83, -1}, + {84, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {85, 1, 1, 85, MAIN_CORE_PROC, 85, -1}, + {86, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {87, 1, 1, 87, MAIN_CORE_PROC, 87, -1}, + {88, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {89, 1, 1, 89, MAIN_CORE_PROC, 89, -1}, + {90, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {91, 1, 1, 91, MAIN_CORE_PROC, 91, -1}, + {92, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {93, 1, 1, 93, MAIN_CORE_PROC, 93, -1}, + {94, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {95, 1, 1, 95, MAIN_CORE_PROC, 95, -1}, + }, {{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}}, ov::hint::SchedulingCoreType::ANY_CORE, true, @@ -543,9 +1198,60 @@ StreamGenerateionTestCase generation_tput_2sockets_48cores_6 = { false, true, false, + false, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1}, + {38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1}, + {40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1}, + {42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1}, + {44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1}, + {46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {55, 0, 0, 55, MAIN_CORE_PROC, 55, -1}, + {56, 0, 0, 56, MAIN_CORE_PROC, 56, -1}, {57, 0, 0, 57, MAIN_CORE_PROC, 57, -1}, + {58, 0, 0, 58, MAIN_CORE_PROC, 58, -1}, {59, 0, 0, 59, MAIN_CORE_PROC, 59, -1}, + {60, 0, 0, 60, MAIN_CORE_PROC, 60, -1}, {61, 0, 0, 61, MAIN_CORE_PROC, 61, -1}, + {62, 0, 0, 62, MAIN_CORE_PROC, 62, -1}, {63, 0, 0, 63, MAIN_CORE_PROC, 63, -1}, + {64, 0, 0, 64, MAIN_CORE_PROC, 64, -1}, {65, 0, 0, 65, MAIN_CORE_PROC, 65, -1}, + {66, 0, 0, 66, MAIN_CORE_PROC, 66, -1}, {67, 0, 0, 67, MAIN_CORE_PROC, 67, -1}, + {68, 0, 0, 68, MAIN_CORE_PROC, 68, -1}, {69, 0, 0, 69, MAIN_CORE_PROC, 69, -1}, + {70, 0, 0, 70, MAIN_CORE_PROC, 70, -1}, {71, 0, 0, 71, MAIN_CORE_PROC, 71, -1}, + {72, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {73, 1, 1, 73, MAIN_CORE_PROC, 73, -1}, + {74, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {75, 1, 1, 75, MAIN_CORE_PROC, 75, -1}, + {76, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {77, 1, 1, 77, MAIN_CORE_PROC, 77, -1}, + {78, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {79, 1, 1, 79, MAIN_CORE_PROC, 79, -1}, + {80, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {81, 1, 1, 81, MAIN_CORE_PROC, 81, -1}, + {82, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {83, 1, 1, 83, MAIN_CORE_PROC, 83, -1}, + {84, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {85, 1, 1, 85, MAIN_CORE_PROC, 85, -1}, + {86, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {87, 1, 1, 87, MAIN_CORE_PROC, 87, -1}, + {88, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {89, 1, 1, 89, MAIN_CORE_PROC, 89, -1}, + {90, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {91, 1, 1, 91, MAIN_CORE_PROC, 91, -1}, + {92, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {93, 1, 1, 93, MAIN_CORE_PROC, 93, -1}, + {94, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {95, 1, 1, 95, MAIN_CORE_PROC, 95, -1}, + }, {{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -566,9 +1272,60 @@ StreamGenerateionTestCase generation_tput_2sockets_48cores_7 = { false, true, false, + false, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1}, + {38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1}, + {40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1}, + {42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1}, + {44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1}, + {46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {55, 0, 0, 55, MAIN_CORE_PROC, 55, -1}, + {56, 0, 0, 56, MAIN_CORE_PROC, 56, -1}, {57, 0, 0, 57, MAIN_CORE_PROC, 57, -1}, + {58, 0, 0, 58, MAIN_CORE_PROC, 58, -1}, {59, 0, 0, 59, MAIN_CORE_PROC, 59, -1}, + {60, 0, 0, 60, MAIN_CORE_PROC, 60, -1}, {61, 0, 0, 61, MAIN_CORE_PROC, 61, -1}, + {62, 0, 0, 62, MAIN_CORE_PROC, 62, -1}, {63, 0, 0, 63, MAIN_CORE_PROC, 63, -1}, + {64, 0, 0, 64, MAIN_CORE_PROC, 64, -1}, {65, 0, 0, 65, MAIN_CORE_PROC, 65, -1}, + {66, 0, 0, 66, MAIN_CORE_PROC, 66, -1}, {67, 0, 0, 67, MAIN_CORE_PROC, 67, -1}, + {68, 0, 0, 68, MAIN_CORE_PROC, 68, -1}, {69, 0, 0, 69, MAIN_CORE_PROC, 69, -1}, + {70, 0, 0, 70, MAIN_CORE_PROC, 70, -1}, {71, 0, 0, 71, MAIN_CORE_PROC, 71, -1}, + {72, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {73, 1, 1, 73, MAIN_CORE_PROC, 73, -1}, + {74, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {75, 1, 1, 75, MAIN_CORE_PROC, 75, -1}, + {76, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {77, 1, 1, 77, MAIN_CORE_PROC, 77, -1}, + {78, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {79, 1, 1, 79, MAIN_CORE_PROC, 79, -1}, + {80, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {81, 1, 1, 81, MAIN_CORE_PROC, 81, -1}, + {82, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {83, 1, 1, 83, MAIN_CORE_PROC, 83, -1}, + {84, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {85, 1, 1, 85, MAIN_CORE_PROC, 85, -1}, + {86, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {87, 1, 1, 87, MAIN_CORE_PROC, 87, -1}, + {88, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {89, 1, 1, 89, MAIN_CORE_PROC, 89, -1}, + {90, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {91, 1, 1, 91, MAIN_CORE_PROC, 91, -1}, + {92, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {93, 1, 1, 93, MAIN_CORE_PROC, 93, -1}, + {94, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {95, 1, 1, 95, MAIN_CORE_PROC, 95, -1}, + }, {{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -589,9 +1346,134 @@ StreamGenerateionTestCase generation_tput_2sockets_48cores_8 = { false, true, false, + false, + true, + ov::hint::PerformanceMode::THROUGHPUT, + {}, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1}, + {38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1}, + {40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1}, + {42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1}, + {44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1}, + {46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {55, 0, 0, 55, MAIN_CORE_PROC, 55, -1}, + {56, 0, 0, 56, MAIN_CORE_PROC, 56, -1}, {57, 0, 0, 57, MAIN_CORE_PROC, 57, -1}, + {58, 0, 0, 58, MAIN_CORE_PROC, 58, -1}, {59, 0, 0, 59, MAIN_CORE_PROC, 59, -1}, + {60, 0, 0, 60, MAIN_CORE_PROC, 60, -1}, {61, 0, 0, 61, MAIN_CORE_PROC, 61, -1}, + {62, 0, 0, 62, MAIN_CORE_PROC, 62, -1}, {63, 0, 0, 63, MAIN_CORE_PROC, 63, -1}, + {64, 0, 0, 64, MAIN_CORE_PROC, 64, -1}, {65, 0, 0, 65, MAIN_CORE_PROC, 65, -1}, + {66, 0, 0, 66, MAIN_CORE_PROC, 66, -1}, {67, 0, 0, 67, MAIN_CORE_PROC, 67, -1}, + {68, 0, 0, 68, MAIN_CORE_PROC, 68, -1}, {69, 0, 0, 69, MAIN_CORE_PROC, 69, -1}, + {70, 0, 0, 70, MAIN_CORE_PROC, 70, -1}, {71, 0, 0, 71, MAIN_CORE_PROC, 71, -1}, + {72, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {73, 1, 1, 73, MAIN_CORE_PROC, 73, -1}, + {74, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {75, 1, 1, 75, MAIN_CORE_PROC, 75, -1}, + {76, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {77, 1, 1, 77, MAIN_CORE_PROC, 77, -1}, + {78, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {79, 1, 1, 79, MAIN_CORE_PROC, 79, -1}, + {80, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {81, 1, 1, 81, MAIN_CORE_PROC, 81, -1}, + {82, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {83, 1, 1, 83, MAIN_CORE_PROC, 83, -1}, + {84, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {85, 1, 1, 85, MAIN_CORE_PROC, 85, -1}, + {86, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {87, 1, 1, 87, MAIN_CORE_PROC, 87, -1}, + {88, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {89, 1, 1, 89, MAIN_CORE_PROC, 89, -1}, + {90, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {91, 1, 1, 91, MAIN_CORE_PROC, 91, -1}, + {92, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {93, 1, 1, 93, MAIN_CORE_PROC, 93, -1}, + {94, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {95, 1, 1, 95, MAIN_CORE_PROC, 95, -1}, + }, + {{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}}, + ov::hint::SchedulingCoreType::ANY_CORE, + false, + false, + ov::hint::PerformanceMode::THROUGHPUT, + {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, + {{2, MAIN_CORE_PROC, 10, 0, 0}}, +}; + +StreamGenerateionTestCase generation_tput_2sockets_48cores_8_reservation = { + 2, + true, + 20, + 0, + 1, + 0, + ov::hint::SchedulingCoreType::ANY_CORE, + false, + true, + true, + false, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1}, + {38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1}, + {40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1}, + {42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1}, + {44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1}, + {46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {55, 0, 0, 55, MAIN_CORE_PROC, 55, -1}, + {56, 0, 0, 56, MAIN_CORE_PROC, 56, -1}, {57, 0, 0, 57, MAIN_CORE_PROC, 57, -1}, + {58, 0, 0, 58, MAIN_CORE_PROC, 58, -1}, {59, 0, 0, 59, MAIN_CORE_PROC, 59, -1}, + {60, 0, 0, 60, MAIN_CORE_PROC, 60, -1}, {61, 0, 0, 61, MAIN_CORE_PROC, 61, -1}, + {62, 0, 0, 62, MAIN_CORE_PROC, 62, -1}, {63, 0, 0, 63, MAIN_CORE_PROC, 63, -1}, + {64, 0, 0, 64, MAIN_CORE_PROC, 64, -1}, {65, 0, 0, 65, MAIN_CORE_PROC, 65, -1}, + {66, 0, 0, 66, MAIN_CORE_PROC, 66, -1}, {67, 0, 0, 67, MAIN_CORE_PROC, 67, -1}, + {68, 0, 0, 68, MAIN_CORE_PROC, 68, -1}, {69, 0, 0, 69, MAIN_CORE_PROC, 69, -1}, + {70, 0, 0, 70, MAIN_CORE_PROC, 70, -1}, {71, 0, 0, 71, MAIN_CORE_PROC, 71, -1}, + {72, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {73, 1, 1, 73, MAIN_CORE_PROC, 73, -1}, + {74, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {75, 1, 1, 75, MAIN_CORE_PROC, 75, -1}, + {76, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {77, 1, 1, 77, MAIN_CORE_PROC, 77, -1}, + {78, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {79, 1, 1, 79, MAIN_CORE_PROC, 79, -1}, + {80, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {81, 1, 1, 81, MAIN_CORE_PROC, 81, -1}, + {82, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {83, 1, 1, 83, MAIN_CORE_PROC, 83, -1}, + {84, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {85, 1, 1, 85, MAIN_CORE_PROC, 85, -1}, + {86, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {87, 1, 1, 87, MAIN_CORE_PROC, 87, -1}, + {88, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {89, 1, 1, 89, MAIN_CORE_PROC, 89, -1}, + {90, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {91, 1, 1, 91, MAIN_CORE_PROC, 91, -1}, + {92, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {93, 1, 1, 93, MAIN_CORE_PROC, 93, -1}, + {94, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {95, 1, 1, 95, MAIN_CORE_PROC, 95, -1}, + }, {{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -612,9 +1494,60 @@ StreamGenerateionTestCase generation_tput_2sockets_48cores_9 = { true, false, false, + false, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1}, + {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1}, {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1}, + {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1}, {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, + {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, + {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1}, + {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1}, + {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1}, + {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1}, + {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1}, + {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 0, 0, 19, HYPER_THREADING_PROC, 19, -1}, + {20, 0, 0, 20, HYPER_THREADING_PROC, 20, -1}, {21, 0, 0, 21, HYPER_THREADING_PROC, 21, -1}, + {22, 0, 0, 22, HYPER_THREADING_PROC, 22, -1}, {23, 0, 0, 23, HYPER_THREADING_PROC, 23, -1}, + {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1}, + {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1}, + {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1}, + {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1}, + {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1}, + {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1}, + {36, 1, 1, 36, HYPER_THREADING_PROC, 36, -1}, {37, 1, 1, 37, HYPER_THREADING_PROC, 37, -1}, + {38, 1, 1, 38, HYPER_THREADING_PROC, 38, -1}, {39, 1, 1, 39, HYPER_THREADING_PROC, 39, -1}, + {40, 1, 1, 40, HYPER_THREADING_PROC, 40, -1}, {41, 1, 1, 41, HYPER_THREADING_PROC, 41, -1}, + {42, 1, 1, 42, HYPER_THREADING_PROC, 42, -1}, {43, 1, 1, 43, HYPER_THREADING_PROC, 43, -1}, + {44, 1, 1, 44, HYPER_THREADING_PROC, 44, -1}, {45, 1, 1, 45, HYPER_THREADING_PROC, 45, -1}, + {46, 1, 1, 46, HYPER_THREADING_PROC, 46, -1}, {47, 1, 1, 47, HYPER_THREADING_PROC, 47, -1}, + {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1}, {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1}, + {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1}, {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1}, + {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1}, {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1}, + {54, 0, 0, 54, MAIN_CORE_PROC, 54, -1}, {55, 0, 0, 55, MAIN_CORE_PROC, 55, -1}, + {56, 0, 0, 56, MAIN_CORE_PROC, 56, -1}, {57, 0, 0, 57, MAIN_CORE_PROC, 57, -1}, + {58, 0, 0, 58, MAIN_CORE_PROC, 58, -1}, {59, 0, 0, 59, MAIN_CORE_PROC, 59, -1}, + {60, 0, 0, 60, MAIN_CORE_PROC, 60, -1}, {61, 0, 0, 61, MAIN_CORE_PROC, 61, -1}, + {62, 0, 0, 62, MAIN_CORE_PROC, 62, -1}, {63, 0, 0, 63, MAIN_CORE_PROC, 63, -1}, + {64, 0, 0, 64, MAIN_CORE_PROC, 64, -1}, {65, 0, 0, 65, MAIN_CORE_PROC, 65, -1}, + {66, 0, 0, 66, MAIN_CORE_PROC, 66, -1}, {67, 0, 0, 67, MAIN_CORE_PROC, 67, -1}, + {68, 0, 0, 68, MAIN_CORE_PROC, 68, -1}, {69, 0, 0, 69, MAIN_CORE_PROC, 69, -1}, + {70, 0, 0, 70, MAIN_CORE_PROC, 70, -1}, {71, 0, 0, 71, MAIN_CORE_PROC, 71, -1}, + {72, 1, 1, 72, MAIN_CORE_PROC, 72, -1}, {73, 1, 1, 73, MAIN_CORE_PROC, 73, -1}, + {74, 1, 1, 74, MAIN_CORE_PROC, 74, -1}, {75, 1, 1, 75, MAIN_CORE_PROC, 75, -1}, + {76, 1, 1, 76, MAIN_CORE_PROC, 76, -1}, {77, 1, 1, 77, MAIN_CORE_PROC, 77, -1}, + {78, 1, 1, 78, MAIN_CORE_PROC, 78, -1}, {79, 1, 1, 79, MAIN_CORE_PROC, 79, -1}, + {80, 1, 1, 80, MAIN_CORE_PROC, 80, -1}, {81, 1, 1, 81, MAIN_CORE_PROC, 81, -1}, + {82, 1, 1, 82, MAIN_CORE_PROC, 82, -1}, {83, 1, 1, 83, MAIN_CORE_PROC, 83, -1}, + {84, 1, 1, 84, MAIN_CORE_PROC, 84, -1}, {85, 1, 1, 85, MAIN_CORE_PROC, 85, -1}, + {86, 1, 1, 86, MAIN_CORE_PROC, 86, -1}, {87, 1, 1, 87, MAIN_CORE_PROC, 87, -1}, + {88, 1, 1, 88, MAIN_CORE_PROC, 88, -1}, {89, 1, 1, 89, MAIN_CORE_PROC, 89, -1}, + {90, 1, 1, 90, MAIN_CORE_PROC, 90, -1}, {91, 1, 1, 91, MAIN_CORE_PROC, 91, -1}, + {92, 1, 1, 92, MAIN_CORE_PROC, 92, -1}, {93, 1, 1, 93, MAIN_CORE_PROC, 93, -1}, + {94, 1, 1, 94, MAIN_CORE_PROC, 94, -1}, {95, 1, 1, 95, MAIN_CORE_PROC, 95, -1}, + }, {{96, 48, 0, 48, -1, -1}, {48, 24, 0, 24, 0, 0}, {48, 24, 0, 24, 1, 1}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -633,10 +1566,61 @@ StreamGenerateionTestCase generation_latency_1sockets_96cores_pinning = { ov::hint::SchedulingCoreType::ANY_CORE, false, false, + false, true, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, EFFICIENT_CORE_PROC, 0, -1}, {1, 0, 0, 1, EFFICIENT_CORE_PROC, 1, -1}, + {2, 0, 0, 2, EFFICIENT_CORE_PROC, 2, -1}, {3, 0, 0, 3, EFFICIENT_CORE_PROC, 3, -1}, + {4, 0, 0, 4, EFFICIENT_CORE_PROC, 4, -1}, {5, 0, 0, 5, EFFICIENT_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 14, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 15, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 16, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 17, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 18, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 19, EFFICIENT_CORE_PROC, 19, -1}, + {20, 0, 0, 20, EFFICIENT_CORE_PROC, 20, -1}, {21, 0, 0, 21, EFFICIENT_CORE_PROC, 21, -1}, + {22, 0, 0, 22, EFFICIENT_CORE_PROC, 22, -1}, {23, 0, 0, 23, EFFICIENT_CORE_PROC, 23, -1}, + {24, 0, 0, 24, EFFICIENT_CORE_PROC, 24, -1}, {25, 0, 0, 25, EFFICIENT_CORE_PROC, 25, -1}, + {26, 0, 0, 26, EFFICIENT_CORE_PROC, 26, -1}, {27, 0, 0, 27, EFFICIENT_CORE_PROC, 27, -1}, + {28, 0, 0, 28, EFFICIENT_CORE_PROC, 28, -1}, {29, 0, 0, 29, EFFICIENT_CORE_PROC, 29, -1}, + {30, 0, 0, 30, EFFICIENT_CORE_PROC, 30, -1}, {31, 0, 0, 31, EFFICIENT_CORE_PROC, 31, -1}, + {32, 0, 0, 32, EFFICIENT_CORE_PROC, 32, -1}, {33, 0, 0, 33, EFFICIENT_CORE_PROC, 33, -1}, + {34, 0, 0, 34, EFFICIENT_CORE_PROC, 34, -1}, {35, 0, 0, 35, EFFICIENT_CORE_PROC, 35, -1}, + {36, 0, 0, 36, EFFICIENT_CORE_PROC, 36, -1}, {37, 0, 0, 37, EFFICIENT_CORE_PROC, 37, -1}, + {38, 0, 0, 38, EFFICIENT_CORE_PROC, 38, -1}, {39, 0, 0, 39, EFFICIENT_CORE_PROC, 39, -1}, + {40, 0, 0, 40, EFFICIENT_CORE_PROC, 40, -1}, {41, 0, 0, 41, EFFICIENT_CORE_PROC, 41, -1}, + {42, 0, 0, 42, EFFICIENT_CORE_PROC, 42, -1}, {43, 0, 0, 43, EFFICIENT_CORE_PROC, 43, -1}, + {44, 0, 0, 44, EFFICIENT_CORE_PROC, 44, -1}, {45, 0, 0, 45, EFFICIENT_CORE_PROC, 45, -1}, + {46, 0, 0, 46, EFFICIENT_CORE_PROC, 46, -1}, {47, 0, 0, 47, EFFICIENT_CORE_PROC, 47, -1}, + {48, 0, 0, 48, EFFICIENT_CORE_PROC, 48, -1}, {49, 0, 0, 49, EFFICIENT_CORE_PROC, 49, -1}, + {50, 0, 0, 50, EFFICIENT_CORE_PROC, 50, -1}, {51, 0, 0, 51, EFFICIENT_CORE_PROC, 51, -1}, + {52, 0, 0, 52, EFFICIENT_CORE_PROC, 52, -1}, {53, 0, 0, 53, EFFICIENT_CORE_PROC, 53, -1}, + {54, 0, 0, 54, EFFICIENT_CORE_PROC, 54, -1}, {55, 0, 0, 55, EFFICIENT_CORE_PROC, 55, -1}, + {56, 0, 0, 56, EFFICIENT_CORE_PROC, 56, -1}, {57, 0, 0, 57, EFFICIENT_CORE_PROC, 57, -1}, + {58, 0, 0, 58, EFFICIENT_CORE_PROC, 58, -1}, {59, 0, 0, 59, EFFICIENT_CORE_PROC, 59, -1}, + {60, 0, 0, 60, EFFICIENT_CORE_PROC, 60, -1}, {61, 0, 0, 61, EFFICIENT_CORE_PROC, 61, -1}, + {62, 0, 0, 62, EFFICIENT_CORE_PROC, 62, -1}, {63, 0, 0, 63, EFFICIENT_CORE_PROC, 63, -1}, + {64, 0, 0, 64, EFFICIENT_CORE_PROC, 64, -1}, {65, 0, 0, 65, EFFICIENT_CORE_PROC, 65, -1}, + {66, 0, 0, 66, EFFICIENT_CORE_PROC, 66, -1}, {67, 0, 0, 67, EFFICIENT_CORE_PROC, 67, -1}, + {68, 0, 0, 68, EFFICIENT_CORE_PROC, 68, -1}, {69, 0, 0, 69, EFFICIENT_CORE_PROC, 69, -1}, + {70, 0, 0, 70, EFFICIENT_CORE_PROC, 70, -1}, {71, 0, 0, 71, EFFICIENT_CORE_PROC, 71, -1}, + {72, 0, 0, 72, EFFICIENT_CORE_PROC, 72, -1}, {73, 0, 0, 73, EFFICIENT_CORE_PROC, 73, -1}, + {74, 0, 0, 74, EFFICIENT_CORE_PROC, 74, -1}, {75, 0, 0, 75, EFFICIENT_CORE_PROC, 75, -1}, + {76, 0, 0, 76, EFFICIENT_CORE_PROC, 76, -1}, {77, 0, 0, 77, EFFICIENT_CORE_PROC, 77, -1}, + {78, 0, 0, 78, EFFICIENT_CORE_PROC, 78, -1}, {79, 0, 0, 79, EFFICIENT_CORE_PROC, 79, -1}, + {80, 0, 0, 80, EFFICIENT_CORE_PROC, 80, -1}, {81, 0, 0, 81, EFFICIENT_CORE_PROC, 81, -1}, + {82, 0, 0, 82, EFFICIENT_CORE_PROC, 82, -1}, {83, 0, 0, 83, EFFICIENT_CORE_PROC, 83, -1}, + {84, 0, 0, 84, EFFICIENT_CORE_PROC, 84, -1}, {85, 0, 0, 85, EFFICIENT_CORE_PROC, 85, -1}, + {86, 0, 0, 86, EFFICIENT_CORE_PROC, 86, -1}, {87, 0, 0, 87, EFFICIENT_CORE_PROC, 87, -1}, + {88, 0, 0, 88, EFFICIENT_CORE_PROC, 88, -1}, {89, 0, 0, 89, EFFICIENT_CORE_PROC, 89, -1}, + {90, 0, 0, 90, EFFICIENT_CORE_PROC, 90, -1}, {91, 0, 0, 91, EFFICIENT_CORE_PROC, 91, -1}, + {92, 0, 0, 92, EFFICIENT_CORE_PROC, 92, -1}, {93, 0, 0, 93, EFFICIENT_CORE_PROC, 93, -1}, + {94, 0, 0, 94, EFFICIENT_CORE_PROC, 94, -1}, {95, 0, 0, 95, EFFICIENT_CORE_PROC, 95, -1}, + }, {{96, 0, 96, 0, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -655,10 +1639,61 @@ StreamGenerateionTestCase generation_tput_1sockets_96cores_pinning = { ov::hint::SchedulingCoreType::ANY_CORE, false, false, + false, true, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, EFFICIENT_CORE_PROC, 0, -1}, {1, 0, 0, 1, EFFICIENT_CORE_PROC, 1, -1}, + {2, 0, 0, 2, EFFICIENT_CORE_PROC, 2, -1}, {3, 0, 0, 3, EFFICIENT_CORE_PROC, 3, -1}, + {4, 0, 0, 4, EFFICIENT_CORE_PROC, 4, -1}, {5, 0, 0, 5, EFFICIENT_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 14, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 15, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 16, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 17, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 18, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 19, EFFICIENT_CORE_PROC, 19, -1}, + {20, 0, 0, 20, EFFICIENT_CORE_PROC, 20, -1}, {21, 0, 0, 21, EFFICIENT_CORE_PROC, 21, -1}, + {22, 0, 0, 22, EFFICIENT_CORE_PROC, 22, -1}, {23, 0, 0, 23, EFFICIENT_CORE_PROC, 23, -1}, + {24, 0, 0, 24, EFFICIENT_CORE_PROC, 24, -1}, {25, 0, 0, 25, EFFICIENT_CORE_PROC, 25, -1}, + {26, 0, 0, 26, EFFICIENT_CORE_PROC, 26, -1}, {27, 0, 0, 27, EFFICIENT_CORE_PROC, 27, -1}, + {28, 0, 0, 28, EFFICIENT_CORE_PROC, 28, -1}, {29, 0, 0, 29, EFFICIENT_CORE_PROC, 29, -1}, + {30, 0, 0, 30, EFFICIENT_CORE_PROC, 30, -1}, {31, 0, 0, 31, EFFICIENT_CORE_PROC, 31, -1}, + {32, 0, 0, 32, EFFICIENT_CORE_PROC, 32, -1}, {33, 0, 0, 33, EFFICIENT_CORE_PROC, 33, -1}, + {34, 0, 0, 34, EFFICIENT_CORE_PROC, 34, -1}, {35, 0, 0, 35, EFFICIENT_CORE_PROC, 35, -1}, + {36, 0, 0, 36, EFFICIENT_CORE_PROC, 36, -1}, {37, 0, 0, 37, EFFICIENT_CORE_PROC, 37, -1}, + {38, 0, 0, 38, EFFICIENT_CORE_PROC, 38, -1}, {39, 0, 0, 39, EFFICIENT_CORE_PROC, 39, -1}, + {40, 0, 0, 40, EFFICIENT_CORE_PROC, 40, -1}, {41, 0, 0, 41, EFFICIENT_CORE_PROC, 41, -1}, + {42, 0, 0, 42, EFFICIENT_CORE_PROC, 42, -1}, {43, 0, 0, 43, EFFICIENT_CORE_PROC, 43, -1}, + {44, 0, 0, 44, EFFICIENT_CORE_PROC, 44, -1}, {45, 0, 0, 45, EFFICIENT_CORE_PROC, 45, -1}, + {46, 0, 0, 46, EFFICIENT_CORE_PROC, 46, -1}, {47, 0, 0, 47, EFFICIENT_CORE_PROC, 47, -1}, + {48, 0, 0, 48, EFFICIENT_CORE_PROC, 48, -1}, {49, 0, 0, 49, EFFICIENT_CORE_PROC, 49, -1}, + {50, 0, 0, 50, EFFICIENT_CORE_PROC, 50, -1}, {51, 0, 0, 51, EFFICIENT_CORE_PROC, 51, -1}, + {52, 0, 0, 52, EFFICIENT_CORE_PROC, 52, -1}, {53, 0, 0, 53, EFFICIENT_CORE_PROC, 53, -1}, + {54, 0, 0, 54, EFFICIENT_CORE_PROC, 54, -1}, {55, 0, 0, 55, EFFICIENT_CORE_PROC, 55, -1}, + {56, 0, 0, 56, EFFICIENT_CORE_PROC, 56, -1}, {57, 0, 0, 57, EFFICIENT_CORE_PROC, 57, -1}, + {58, 0, 0, 58, EFFICIENT_CORE_PROC, 58, -1}, {59, 0, 0, 59, EFFICIENT_CORE_PROC, 59, -1}, + {60, 0, 0, 60, EFFICIENT_CORE_PROC, 60, -1}, {61, 0, 0, 61, EFFICIENT_CORE_PROC, 61, -1}, + {62, 0, 0, 62, EFFICIENT_CORE_PROC, 62, -1}, {63, 0, 0, 63, EFFICIENT_CORE_PROC, 63, -1}, + {64, 0, 0, 64, EFFICIENT_CORE_PROC, 64, -1}, {65, 0, 0, 65, EFFICIENT_CORE_PROC, 65, -1}, + {66, 0, 0, 66, EFFICIENT_CORE_PROC, 66, -1}, {67, 0, 0, 67, EFFICIENT_CORE_PROC, 67, -1}, + {68, 0, 0, 68, EFFICIENT_CORE_PROC, 68, -1}, {69, 0, 0, 69, EFFICIENT_CORE_PROC, 69, -1}, + {70, 0, 0, 70, EFFICIENT_CORE_PROC, 70, -1}, {71, 0, 0, 71, EFFICIENT_CORE_PROC, 71, -1}, + {72, 0, 0, 72, EFFICIENT_CORE_PROC, 72, -1}, {73, 0, 0, 73, EFFICIENT_CORE_PROC, 73, -1}, + {74, 0, 0, 74, EFFICIENT_CORE_PROC, 74, -1}, {75, 0, 0, 75, EFFICIENT_CORE_PROC, 75, -1}, + {76, 0, 0, 76, EFFICIENT_CORE_PROC, 76, -1}, {77, 0, 0, 77, EFFICIENT_CORE_PROC, 77, -1}, + {78, 0, 0, 78, EFFICIENT_CORE_PROC, 78, -1}, {79, 0, 0, 79, EFFICIENT_CORE_PROC, 79, -1}, + {80, 0, 0, 80, EFFICIENT_CORE_PROC, 80, -1}, {81, 0, 0, 81, EFFICIENT_CORE_PROC, 81, -1}, + {82, 0, 0, 82, EFFICIENT_CORE_PROC, 82, -1}, {83, 0, 0, 83, EFFICIENT_CORE_PROC, 83, -1}, + {84, 0, 0, 84, EFFICIENT_CORE_PROC, 84, -1}, {85, 0, 0, 85, EFFICIENT_CORE_PROC, 85, -1}, + {86, 0, 0, 86, EFFICIENT_CORE_PROC, 86, -1}, {87, 0, 0, 87, EFFICIENT_CORE_PROC, 87, -1}, + {88, 0, 0, 88, EFFICIENT_CORE_PROC, 88, -1}, {89, 0, 0, 89, EFFICIENT_CORE_PROC, 89, -1}, + {90, 0, 0, 90, EFFICIENT_CORE_PROC, 90, -1}, {91, 0, 0, 91, EFFICIENT_CORE_PROC, 91, -1}, + {92, 0, 0, 92, EFFICIENT_CORE_PROC, 92, -1}, {93, 0, 0, 93, EFFICIENT_CORE_PROC, 93, -1}, + {94, 0, 0, 94, EFFICIENT_CORE_PROC, 94, -1}, {95, 0, 0, 95, EFFICIENT_CORE_PROC, 95, -1}, + }, {{96, 0, 96, 0, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -677,10 +1712,61 @@ StreamGenerateionTestCase generation_tput_1sockets_96cores_2_pinning = { ov::hint::SchedulingCoreType::PCORE_ONLY, true, true, + false, true, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, EFFICIENT_CORE_PROC, 0, -1}, {1, 0, 0, 1, EFFICIENT_CORE_PROC, 1, -1}, + {2, 0, 0, 2, EFFICIENT_CORE_PROC, 2, -1}, {3, 0, 0, 3, EFFICIENT_CORE_PROC, 3, -1}, + {4, 0, 0, 4, EFFICIENT_CORE_PROC, 4, -1}, {5, 0, 0, 5, EFFICIENT_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 14, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 15, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 16, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 17, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 18, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 19, EFFICIENT_CORE_PROC, 19, -1}, + {20, 0, 0, 20, EFFICIENT_CORE_PROC, 20, -1}, {21, 0, 0, 21, EFFICIENT_CORE_PROC, 21, -1}, + {22, 0, 0, 22, EFFICIENT_CORE_PROC, 22, -1}, {23, 0, 0, 23, EFFICIENT_CORE_PROC, 23, -1}, + {24, 0, 0, 24, EFFICIENT_CORE_PROC, 24, -1}, {25, 0, 0, 25, EFFICIENT_CORE_PROC, 25, -1}, + {26, 0, 0, 26, EFFICIENT_CORE_PROC, 26, -1}, {27, 0, 0, 27, EFFICIENT_CORE_PROC, 27, -1}, + {28, 0, 0, 28, EFFICIENT_CORE_PROC, 28, -1}, {29, 0, 0, 29, EFFICIENT_CORE_PROC, 29, -1}, + {30, 0, 0, 30, EFFICIENT_CORE_PROC, 30, -1}, {31, 0, 0, 31, EFFICIENT_CORE_PROC, 31, -1}, + {32, 0, 0, 32, EFFICIENT_CORE_PROC, 32, -1}, {33, 0, 0, 33, EFFICIENT_CORE_PROC, 33, -1}, + {34, 0, 0, 34, EFFICIENT_CORE_PROC, 34, -1}, {35, 0, 0, 35, EFFICIENT_CORE_PROC, 35, -1}, + {36, 0, 0, 36, EFFICIENT_CORE_PROC, 36, -1}, {37, 0, 0, 37, EFFICIENT_CORE_PROC, 37, -1}, + {38, 0, 0, 38, EFFICIENT_CORE_PROC, 38, -1}, {39, 0, 0, 39, EFFICIENT_CORE_PROC, 39, -1}, + {40, 0, 0, 40, EFFICIENT_CORE_PROC, 40, -1}, {41, 0, 0, 41, EFFICIENT_CORE_PROC, 41, -1}, + {42, 0, 0, 42, EFFICIENT_CORE_PROC, 42, -1}, {43, 0, 0, 43, EFFICIENT_CORE_PROC, 43, -1}, + {44, 0, 0, 44, EFFICIENT_CORE_PROC, 44, -1}, {45, 0, 0, 45, EFFICIENT_CORE_PROC, 45, -1}, + {46, 0, 0, 46, EFFICIENT_CORE_PROC, 46, -1}, {47, 0, 0, 47, EFFICIENT_CORE_PROC, 47, -1}, + {48, 0, 0, 48, EFFICIENT_CORE_PROC, 48, -1}, {49, 0, 0, 49, EFFICIENT_CORE_PROC, 49, -1}, + {50, 0, 0, 50, EFFICIENT_CORE_PROC, 50, -1}, {51, 0, 0, 51, EFFICIENT_CORE_PROC, 51, -1}, + {52, 0, 0, 52, EFFICIENT_CORE_PROC, 52, -1}, {53, 0, 0, 53, EFFICIENT_CORE_PROC, 53, -1}, + {54, 0, 0, 54, EFFICIENT_CORE_PROC, 54, -1}, {55, 0, 0, 55, EFFICIENT_CORE_PROC, 55, -1}, + {56, 0, 0, 56, EFFICIENT_CORE_PROC, 56, -1}, {57, 0, 0, 57, EFFICIENT_CORE_PROC, 57, -1}, + {58, 0, 0, 58, EFFICIENT_CORE_PROC, 58, -1}, {59, 0, 0, 59, EFFICIENT_CORE_PROC, 59, -1}, + {60, 0, 0, 60, EFFICIENT_CORE_PROC, 60, -1}, {61, 0, 0, 61, EFFICIENT_CORE_PROC, 61, -1}, + {62, 0, 0, 62, EFFICIENT_CORE_PROC, 62, -1}, {63, 0, 0, 63, EFFICIENT_CORE_PROC, 63, -1}, + {64, 0, 0, 64, EFFICIENT_CORE_PROC, 64, -1}, {65, 0, 0, 65, EFFICIENT_CORE_PROC, 65, -1}, + {66, 0, 0, 66, EFFICIENT_CORE_PROC, 66, -1}, {67, 0, 0, 67, EFFICIENT_CORE_PROC, 67, -1}, + {68, 0, 0, 68, EFFICIENT_CORE_PROC, 68, -1}, {69, 0, 0, 69, EFFICIENT_CORE_PROC, 69, -1}, + {70, 0, 0, 70, EFFICIENT_CORE_PROC, 70, -1}, {71, 0, 0, 71, EFFICIENT_CORE_PROC, 71, -1}, + {72, 0, 0, 72, EFFICIENT_CORE_PROC, 72, -1}, {73, 0, 0, 73, EFFICIENT_CORE_PROC, 73, -1}, + {74, 0, 0, 74, EFFICIENT_CORE_PROC, 74, -1}, {75, 0, 0, 75, EFFICIENT_CORE_PROC, 75, -1}, + {76, 0, 0, 76, EFFICIENT_CORE_PROC, 76, -1}, {77, 0, 0, 77, EFFICIENT_CORE_PROC, 77, -1}, + {78, 0, 0, 78, EFFICIENT_CORE_PROC, 78, -1}, {79, 0, 0, 79, EFFICIENT_CORE_PROC, 79, -1}, + {80, 0, 0, 80, EFFICIENT_CORE_PROC, 80, -1}, {81, 0, 0, 81, EFFICIENT_CORE_PROC, 81, -1}, + {82, 0, 0, 82, EFFICIENT_CORE_PROC, 82, -1}, {83, 0, 0, 83, EFFICIENT_CORE_PROC, 83, -1}, + {84, 0, 0, 84, EFFICIENT_CORE_PROC, 84, -1}, {85, 0, 0, 85, EFFICIENT_CORE_PROC, 85, -1}, + {86, 0, 0, 86, EFFICIENT_CORE_PROC, 86, -1}, {87, 0, 0, 87, EFFICIENT_CORE_PROC, 87, -1}, + {88, 0, 0, 88, EFFICIENT_CORE_PROC, 88, -1}, {89, 0, 0, 89, EFFICIENT_CORE_PROC, 89, -1}, + {90, 0, 0, 90, EFFICIENT_CORE_PROC, 90, -1}, {91, 0, 0, 91, EFFICIENT_CORE_PROC, 91, -1}, + {92, 0, 0, 92, EFFICIENT_CORE_PROC, 92, -1}, {93, 0, 0, 93, EFFICIENT_CORE_PROC, 93, -1}, + {94, 0, 0, 94, EFFICIENT_CORE_PROC, 94, -1}, {95, 0, 0, 95, EFFICIENT_CORE_PROC, 95, -1}, + }, {{96, 0, 96, 0, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -699,10 +1785,61 @@ StreamGenerateionTestCase generation_latency_1sockets_96cores_unpinning = { ov::hint::SchedulingCoreType::ANY_CORE, false, false, + false, true, true, ov::hint::PerformanceMode::LATENCY, {}, + { + {0, 0, 0, 0, EFFICIENT_CORE_PROC, 0, -1}, {1, 0, 0, 1, EFFICIENT_CORE_PROC, 1, -1}, + {2, 0, 0, 2, EFFICIENT_CORE_PROC, 2, -1}, {3, 0, 0, 3, EFFICIENT_CORE_PROC, 3, -1}, + {4, 0, 0, 4, EFFICIENT_CORE_PROC, 4, -1}, {5, 0, 0, 5, EFFICIENT_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 14, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 15, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 16, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 17, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 18, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 19, EFFICIENT_CORE_PROC, 19, -1}, + {20, 0, 0, 20, EFFICIENT_CORE_PROC, 20, -1}, {21, 0, 0, 21, EFFICIENT_CORE_PROC, 21, -1}, + {22, 0, 0, 22, EFFICIENT_CORE_PROC, 22, -1}, {23, 0, 0, 23, EFFICIENT_CORE_PROC, 23, -1}, + {24, 0, 0, 24, EFFICIENT_CORE_PROC, 24, -1}, {25, 0, 0, 25, EFFICIENT_CORE_PROC, 25, -1}, + {26, 0, 0, 26, EFFICIENT_CORE_PROC, 26, -1}, {27, 0, 0, 27, EFFICIENT_CORE_PROC, 27, -1}, + {28, 0, 0, 28, EFFICIENT_CORE_PROC, 28, -1}, {29, 0, 0, 29, EFFICIENT_CORE_PROC, 29, -1}, + {30, 0, 0, 30, EFFICIENT_CORE_PROC, 30, -1}, {31, 0, 0, 31, EFFICIENT_CORE_PROC, 31, -1}, + {32, 0, 0, 32, EFFICIENT_CORE_PROC, 32, -1}, {33, 0, 0, 33, EFFICIENT_CORE_PROC, 33, -1}, + {34, 0, 0, 34, EFFICIENT_CORE_PROC, 34, -1}, {35, 0, 0, 35, EFFICIENT_CORE_PROC, 35, -1}, + {36, 0, 0, 36, EFFICIENT_CORE_PROC, 36, -1}, {37, 0, 0, 37, EFFICIENT_CORE_PROC, 37, -1}, + {38, 0, 0, 38, EFFICIENT_CORE_PROC, 38, -1}, {39, 0, 0, 39, EFFICIENT_CORE_PROC, 39, -1}, + {40, 0, 0, 40, EFFICIENT_CORE_PROC, 40, -1}, {41, 0, 0, 41, EFFICIENT_CORE_PROC, 41, -1}, + {42, 0, 0, 42, EFFICIENT_CORE_PROC, 42, -1}, {43, 0, 0, 43, EFFICIENT_CORE_PROC, 43, -1}, + {44, 0, 0, 44, EFFICIENT_CORE_PROC, 44, -1}, {45, 0, 0, 45, EFFICIENT_CORE_PROC, 45, -1}, + {46, 0, 0, 46, EFFICIENT_CORE_PROC, 46, -1}, {47, 0, 0, 47, EFFICIENT_CORE_PROC, 47, -1}, + {48, 0, 0, 48, EFFICIENT_CORE_PROC, 48, -1}, {49, 0, 0, 49, EFFICIENT_CORE_PROC, 49, -1}, + {50, 0, 0, 50, EFFICIENT_CORE_PROC, 50, -1}, {51, 0, 0, 51, EFFICIENT_CORE_PROC, 51, -1}, + {52, 0, 0, 52, EFFICIENT_CORE_PROC, 52, -1}, {53, 0, 0, 53, EFFICIENT_CORE_PROC, 53, -1}, + {54, 0, 0, 54, EFFICIENT_CORE_PROC, 54, -1}, {55, 0, 0, 55, EFFICIENT_CORE_PROC, 55, -1}, + {56, 0, 0, 56, EFFICIENT_CORE_PROC, 56, -1}, {57, 0, 0, 57, EFFICIENT_CORE_PROC, 57, -1}, + {58, 0, 0, 58, EFFICIENT_CORE_PROC, 58, -1}, {59, 0, 0, 59, EFFICIENT_CORE_PROC, 59, -1}, + {60, 0, 0, 60, EFFICIENT_CORE_PROC, 60, -1}, {61, 0, 0, 61, EFFICIENT_CORE_PROC, 61, -1}, + {62, 0, 0, 62, EFFICIENT_CORE_PROC, 62, -1}, {63, 0, 0, 63, EFFICIENT_CORE_PROC, 63, -1}, + {64, 0, 0, 64, EFFICIENT_CORE_PROC, 64, -1}, {65, 0, 0, 65, EFFICIENT_CORE_PROC, 65, -1}, + {66, 0, 0, 66, EFFICIENT_CORE_PROC, 66, -1}, {67, 0, 0, 67, EFFICIENT_CORE_PROC, 67, -1}, + {68, 0, 0, 68, EFFICIENT_CORE_PROC, 68, -1}, {69, 0, 0, 69, EFFICIENT_CORE_PROC, 69, -1}, + {70, 0, 0, 70, EFFICIENT_CORE_PROC, 70, -1}, {71, 0, 0, 71, EFFICIENT_CORE_PROC, 71, -1}, + {72, 0, 0, 72, EFFICIENT_CORE_PROC, 72, -1}, {73, 0, 0, 73, EFFICIENT_CORE_PROC, 73, -1}, + {74, 0, 0, 74, EFFICIENT_CORE_PROC, 74, -1}, {75, 0, 0, 75, EFFICIENT_CORE_PROC, 75, -1}, + {76, 0, 0, 76, EFFICIENT_CORE_PROC, 76, -1}, {77, 0, 0, 77, EFFICIENT_CORE_PROC, 77, -1}, + {78, 0, 0, 78, EFFICIENT_CORE_PROC, 78, -1}, {79, 0, 0, 79, EFFICIENT_CORE_PROC, 79, -1}, + {80, 0, 0, 80, EFFICIENT_CORE_PROC, 80, -1}, {81, 0, 0, 81, EFFICIENT_CORE_PROC, 81, -1}, + {82, 0, 0, 82, EFFICIENT_CORE_PROC, 82, -1}, {83, 0, 0, 83, EFFICIENT_CORE_PROC, 83, -1}, + {84, 0, 0, 84, EFFICIENT_CORE_PROC, 84, -1}, {85, 0, 0, 85, EFFICIENT_CORE_PROC, 85, -1}, + {86, 0, 0, 86, EFFICIENT_CORE_PROC, 86, -1}, {87, 0, 0, 87, EFFICIENT_CORE_PROC, 87, -1}, + {88, 0, 0, 88, EFFICIENT_CORE_PROC, 88, -1}, {89, 0, 0, 89, EFFICIENT_CORE_PROC, 89, -1}, + {90, 0, 0, 90, EFFICIENT_CORE_PROC, 90, -1}, {91, 0, 0, 91, EFFICIENT_CORE_PROC, 91, -1}, + {92, 0, 0, 92, EFFICIENT_CORE_PROC, 92, -1}, {93, 0, 0, 93, EFFICIENT_CORE_PROC, 93, -1}, + {94, 0, 0, 94, EFFICIENT_CORE_PROC, 94, -1}, {95, 0, 0, 95, EFFICIENT_CORE_PROC, 95, -1}, + }, {{96, 0, 96, 0, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -723,8 +1860,59 @@ StreamGenerateionTestCase generation_tput_1sockets_96cores_unpinning = { false, false, false, + false, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, EFFICIENT_CORE_PROC, 0, -1}, {1, 0, 0, 1, EFFICIENT_CORE_PROC, 1, -1}, + {2, 0, 0, 2, EFFICIENT_CORE_PROC, 2, -1}, {3, 0, 0, 3, EFFICIENT_CORE_PROC, 3, -1}, + {4, 0, 0, 4, EFFICIENT_CORE_PROC, 4, -1}, {5, 0, 0, 5, EFFICIENT_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 14, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 15, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 16, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 17, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 18, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 19, EFFICIENT_CORE_PROC, 19, -1}, + {20, 0, 0, 20, EFFICIENT_CORE_PROC, 20, -1}, {21, 0, 0, 21, EFFICIENT_CORE_PROC, 21, -1}, + {22, 0, 0, 22, EFFICIENT_CORE_PROC, 22, -1}, {23, 0, 0, 23, EFFICIENT_CORE_PROC, 23, -1}, + {24, 0, 0, 24, EFFICIENT_CORE_PROC, 24, -1}, {25, 0, 0, 25, EFFICIENT_CORE_PROC, 25, -1}, + {26, 0, 0, 26, EFFICIENT_CORE_PROC, 26, -1}, {27, 0, 0, 27, EFFICIENT_CORE_PROC, 27, -1}, + {28, 0, 0, 28, EFFICIENT_CORE_PROC, 28, -1}, {29, 0, 0, 29, EFFICIENT_CORE_PROC, 29, -1}, + {30, 0, 0, 30, EFFICIENT_CORE_PROC, 30, -1}, {31, 0, 0, 31, EFFICIENT_CORE_PROC, 31, -1}, + {32, 0, 0, 32, EFFICIENT_CORE_PROC, 32, -1}, {33, 0, 0, 33, EFFICIENT_CORE_PROC, 33, -1}, + {34, 0, 0, 34, EFFICIENT_CORE_PROC, 34, -1}, {35, 0, 0, 35, EFFICIENT_CORE_PROC, 35, -1}, + {36, 0, 0, 36, EFFICIENT_CORE_PROC, 36, -1}, {37, 0, 0, 37, EFFICIENT_CORE_PROC, 37, -1}, + {38, 0, 0, 38, EFFICIENT_CORE_PROC, 38, -1}, {39, 0, 0, 39, EFFICIENT_CORE_PROC, 39, -1}, + {40, 0, 0, 40, EFFICIENT_CORE_PROC, 40, -1}, {41, 0, 0, 41, EFFICIENT_CORE_PROC, 41, -1}, + {42, 0, 0, 42, EFFICIENT_CORE_PROC, 42, -1}, {43, 0, 0, 43, EFFICIENT_CORE_PROC, 43, -1}, + {44, 0, 0, 44, EFFICIENT_CORE_PROC, 44, -1}, {45, 0, 0, 45, EFFICIENT_CORE_PROC, 45, -1}, + {46, 0, 0, 46, EFFICIENT_CORE_PROC, 46, -1}, {47, 0, 0, 47, EFFICIENT_CORE_PROC, 47, -1}, + {48, 0, 0, 48, EFFICIENT_CORE_PROC, 48, -1}, {49, 0, 0, 49, EFFICIENT_CORE_PROC, 49, -1}, + {50, 0, 0, 50, EFFICIENT_CORE_PROC, 50, -1}, {51, 0, 0, 51, EFFICIENT_CORE_PROC, 51, -1}, + {52, 0, 0, 52, EFFICIENT_CORE_PROC, 52, -1}, {53, 0, 0, 53, EFFICIENT_CORE_PROC, 53, -1}, + {54, 0, 0, 54, EFFICIENT_CORE_PROC, 54, -1}, {55, 0, 0, 55, EFFICIENT_CORE_PROC, 55, -1}, + {56, 0, 0, 56, EFFICIENT_CORE_PROC, 56, -1}, {57, 0, 0, 57, EFFICIENT_CORE_PROC, 57, -1}, + {58, 0, 0, 58, EFFICIENT_CORE_PROC, 58, -1}, {59, 0, 0, 59, EFFICIENT_CORE_PROC, 59, -1}, + {60, 0, 0, 60, EFFICIENT_CORE_PROC, 60, -1}, {61, 0, 0, 61, EFFICIENT_CORE_PROC, 61, -1}, + {62, 0, 0, 62, EFFICIENT_CORE_PROC, 62, -1}, {63, 0, 0, 63, EFFICIENT_CORE_PROC, 63, -1}, + {64, 0, 0, 64, EFFICIENT_CORE_PROC, 64, -1}, {65, 0, 0, 65, EFFICIENT_CORE_PROC, 65, -1}, + {66, 0, 0, 66, EFFICIENT_CORE_PROC, 66, -1}, {67, 0, 0, 67, EFFICIENT_CORE_PROC, 67, -1}, + {68, 0, 0, 68, EFFICIENT_CORE_PROC, 68, -1}, {69, 0, 0, 69, EFFICIENT_CORE_PROC, 69, -1}, + {70, 0, 0, 70, EFFICIENT_CORE_PROC, 70, -1}, {71, 0, 0, 71, EFFICIENT_CORE_PROC, 71, -1}, + {72, 0, 0, 72, EFFICIENT_CORE_PROC, 72, -1}, {73, 0, 0, 73, EFFICIENT_CORE_PROC, 73, -1}, + {74, 0, 0, 74, EFFICIENT_CORE_PROC, 74, -1}, {75, 0, 0, 75, EFFICIENT_CORE_PROC, 75, -1}, + {76, 0, 0, 76, EFFICIENT_CORE_PROC, 76, -1}, {77, 0, 0, 77, EFFICIENT_CORE_PROC, 77, -1}, + {78, 0, 0, 78, EFFICIENT_CORE_PROC, 78, -1}, {79, 0, 0, 79, EFFICIENT_CORE_PROC, 79, -1}, + {80, 0, 0, 80, EFFICIENT_CORE_PROC, 80, -1}, {81, 0, 0, 81, EFFICIENT_CORE_PROC, 81, -1}, + {82, 0, 0, 82, EFFICIENT_CORE_PROC, 82, -1}, {83, 0, 0, 83, EFFICIENT_CORE_PROC, 83, -1}, + {84, 0, 0, 84, EFFICIENT_CORE_PROC, 84, -1}, {85, 0, 0, 85, EFFICIENT_CORE_PROC, 85, -1}, + {86, 0, 0, 86, EFFICIENT_CORE_PROC, 86, -1}, {87, 0, 0, 87, EFFICIENT_CORE_PROC, 87, -1}, + {88, 0, 0, 88, EFFICIENT_CORE_PROC, 88, -1}, {89, 0, 0, 89, EFFICIENT_CORE_PROC, 89, -1}, + {90, 0, 0, 90, EFFICIENT_CORE_PROC, 90, -1}, {91, 0, 0, 91, EFFICIENT_CORE_PROC, 91, -1}, + {92, 0, 0, 92, EFFICIENT_CORE_PROC, 92, -1}, {93, 0, 0, 93, EFFICIENT_CORE_PROC, 93, -1}, + {94, 0, 0, 94, EFFICIENT_CORE_PROC, 94, -1}, {95, 0, 0, 95, EFFICIENT_CORE_PROC, 95, -1}, + }, {{96, 0, 96, 0, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -744,9 +1932,60 @@ StreamGenerateionTestCase generation_tput_1sockets_96cores_2_unpinning = { true, true, false, + false, true, ov::hint::PerformanceMode::THROUGHPUT, {}, + { + {0, 0, 0, 0, EFFICIENT_CORE_PROC, 0, -1}, {1, 0, 0, 1, EFFICIENT_CORE_PROC, 1, -1}, + {2, 0, 0, 2, EFFICIENT_CORE_PROC, 2, -1}, {3, 0, 0, 3, EFFICIENT_CORE_PROC, 3, -1}, + {4, 0, 0, 4, EFFICIENT_CORE_PROC, 4, -1}, {5, 0, 0, 5, EFFICIENT_CORE_PROC, 5, -1}, + {6, 0, 0, 6, EFFICIENT_CORE_PROC, 6, -1}, {7, 0, 0, 7, EFFICIENT_CORE_PROC, 7, -1}, + {8, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1}, {9, 0, 0, 9, EFFICIENT_CORE_PROC, 9, -1}, + {10, 0, 0, 10, EFFICIENT_CORE_PROC, 10, -1}, {11, 0, 0, 11, EFFICIENT_CORE_PROC, 11, -1}, + {12, 0, 0, 12, EFFICIENT_CORE_PROC, 12, -1}, {13, 0, 0, 13, EFFICIENT_CORE_PROC, 13, -1}, + {14, 0, 0, 14, EFFICIENT_CORE_PROC, 14, -1}, {15, 0, 0, 15, EFFICIENT_CORE_PROC, 15, -1}, + {16, 0, 0, 16, EFFICIENT_CORE_PROC, 16, -1}, {17, 0, 0, 17, EFFICIENT_CORE_PROC, 17, -1}, + {18, 0, 0, 18, EFFICIENT_CORE_PROC, 18, -1}, {19, 0, 0, 19, EFFICIENT_CORE_PROC, 19, -1}, + {20, 0, 0, 20, EFFICIENT_CORE_PROC, 20, -1}, {21, 0, 0, 21, EFFICIENT_CORE_PROC, 21, -1}, + {22, 0, 0, 22, EFFICIENT_CORE_PROC, 22, -1}, {23, 0, 0, 23, EFFICIENT_CORE_PROC, 23, -1}, + {24, 0, 0, 24, EFFICIENT_CORE_PROC, 24, -1}, {25, 0, 0, 25, EFFICIENT_CORE_PROC, 25, -1}, + {26, 0, 0, 26, EFFICIENT_CORE_PROC, 26, -1}, {27, 0, 0, 27, EFFICIENT_CORE_PROC, 27, -1}, + {28, 0, 0, 28, EFFICIENT_CORE_PROC, 28, -1}, {29, 0, 0, 29, EFFICIENT_CORE_PROC, 29, -1}, + {30, 0, 0, 30, EFFICIENT_CORE_PROC, 30, -1}, {31, 0, 0, 31, EFFICIENT_CORE_PROC, 31, -1}, + {32, 0, 0, 32, EFFICIENT_CORE_PROC, 32, -1}, {33, 0, 0, 33, EFFICIENT_CORE_PROC, 33, -1}, + {34, 0, 0, 34, EFFICIENT_CORE_PROC, 34, -1}, {35, 0, 0, 35, EFFICIENT_CORE_PROC, 35, -1}, + {36, 0, 0, 36, EFFICIENT_CORE_PROC, 36, -1}, {37, 0, 0, 37, EFFICIENT_CORE_PROC, 37, -1}, + {38, 0, 0, 38, EFFICIENT_CORE_PROC, 38, -1}, {39, 0, 0, 39, EFFICIENT_CORE_PROC, 39, -1}, + {40, 0, 0, 40, EFFICIENT_CORE_PROC, 40, -1}, {41, 0, 0, 41, EFFICIENT_CORE_PROC, 41, -1}, + {42, 0, 0, 42, EFFICIENT_CORE_PROC, 42, -1}, {43, 0, 0, 43, EFFICIENT_CORE_PROC, 43, -1}, + {44, 0, 0, 44, EFFICIENT_CORE_PROC, 44, -1}, {45, 0, 0, 45, EFFICIENT_CORE_PROC, 45, -1}, + {46, 0, 0, 46, EFFICIENT_CORE_PROC, 46, -1}, {47, 0, 0, 47, EFFICIENT_CORE_PROC, 47, -1}, + {48, 0, 0, 48, EFFICIENT_CORE_PROC, 48, -1}, {49, 0, 0, 49, EFFICIENT_CORE_PROC, 49, -1}, + {50, 0, 0, 50, EFFICIENT_CORE_PROC, 50, -1}, {51, 0, 0, 51, EFFICIENT_CORE_PROC, 51, -1}, + {52, 0, 0, 52, EFFICIENT_CORE_PROC, 52, -1}, {53, 0, 0, 53, EFFICIENT_CORE_PROC, 53, -1}, + {54, 0, 0, 54, EFFICIENT_CORE_PROC, 54, -1}, {55, 0, 0, 55, EFFICIENT_CORE_PROC, 55, -1}, + {56, 0, 0, 56, EFFICIENT_CORE_PROC, 56, -1}, {57, 0, 0, 57, EFFICIENT_CORE_PROC, 57, -1}, + {58, 0, 0, 58, EFFICIENT_CORE_PROC, 58, -1}, {59, 0, 0, 59, EFFICIENT_CORE_PROC, 59, -1}, + {60, 0, 0, 60, EFFICIENT_CORE_PROC, 60, -1}, {61, 0, 0, 61, EFFICIENT_CORE_PROC, 61, -1}, + {62, 0, 0, 62, EFFICIENT_CORE_PROC, 62, -1}, {63, 0, 0, 63, EFFICIENT_CORE_PROC, 63, -1}, + {64, 0, 0, 64, EFFICIENT_CORE_PROC, 64, -1}, {65, 0, 0, 65, EFFICIENT_CORE_PROC, 65, -1}, + {66, 0, 0, 66, EFFICIENT_CORE_PROC, 66, -1}, {67, 0, 0, 67, EFFICIENT_CORE_PROC, 67, -1}, + {68, 0, 0, 68, EFFICIENT_CORE_PROC, 68, -1}, {69, 0, 0, 69, EFFICIENT_CORE_PROC, 69, -1}, + {70, 0, 0, 70, EFFICIENT_CORE_PROC, 70, -1}, {71, 0, 0, 71, EFFICIENT_CORE_PROC, 71, -1}, + {72, 0, 0, 72, EFFICIENT_CORE_PROC, 72, -1}, {73, 0, 0, 73, EFFICIENT_CORE_PROC, 73, -1}, + {74, 0, 0, 74, EFFICIENT_CORE_PROC, 74, -1}, {75, 0, 0, 75, EFFICIENT_CORE_PROC, 75, -1}, + {76, 0, 0, 76, EFFICIENT_CORE_PROC, 76, -1}, {77, 0, 0, 77, EFFICIENT_CORE_PROC, 77, -1}, + {78, 0, 0, 78, EFFICIENT_CORE_PROC, 78, -1}, {79, 0, 0, 79, EFFICIENT_CORE_PROC, 79, -1}, + {80, 0, 0, 80, EFFICIENT_CORE_PROC, 80, -1}, {81, 0, 0, 81, EFFICIENT_CORE_PROC, 81, -1}, + {82, 0, 0, 82, EFFICIENT_CORE_PROC, 82, -1}, {83, 0, 0, 83, EFFICIENT_CORE_PROC, 83, -1}, + {84, 0, 0, 84, EFFICIENT_CORE_PROC, 84, -1}, {85, 0, 0, 85, EFFICIENT_CORE_PROC, 85, -1}, + {86, 0, 0, 86, EFFICIENT_CORE_PROC, 86, -1}, {87, 0, 0, 87, EFFICIENT_CORE_PROC, 87, -1}, + {88, 0, 0, 88, EFFICIENT_CORE_PROC, 88, -1}, {89, 0, 0, 89, EFFICIENT_CORE_PROC, 89, -1}, + {90, 0, 0, 90, EFFICIENT_CORE_PROC, 90, -1}, {91, 0, 0, 91, EFFICIENT_CORE_PROC, 91, -1}, + {92, 0, 0, 92, EFFICIENT_CORE_PROC, 92, -1}, {93, 0, 0, 93, EFFICIENT_CORE_PROC, 93, -1}, + {94, 0, 0, 94, EFFICIENT_CORE_PROC, 94, -1}, {95, 0, 0, 95, EFFICIENT_CORE_PROC, 95, -1}, + }, {{96, 0, 96, 0, 0, 0}}, ov::hint::SchedulingCoreType::ANY_CORE, false, @@ -756,13 +1995,66 @@ StreamGenerateionTestCase generation_tput_1sockets_96cores_2_unpinning = { {{24, EFFICIENT_CORE_PROC, 4, 0, 0}}, }; +StreamGenerateionTestCase generation_tput_1sockets_0cores_1 = { + 1, + false, + 0, + 0, + 0, + 0, + ov::hint::SchedulingCoreType::PCORE_ONLY, + true, + true, + false, + false, + true, + ov::hint::PerformanceMode::LATENCY, + {}, + {}, + {{0, 0, 0, 0, 0, 0}}, + ov::hint::SchedulingCoreType::ANY_CORE, + false, + false, + ov::hint::PerformanceMode::LATENCY, + {{96, 0, 96, 0, 0, 0}}, + {{24, EFFICIENT_CORE_PROC, 4, 0, 0}}, +}; + +StreamGenerateionTestCase generation_tput_1sockets_0cores_1_reservation = { + 1, + false, + 0, + 0, + 0, + 0, + ov::hint::SchedulingCoreType::PCORE_ONLY, + true, + true, + true, + false, + true, + ov::hint::PerformanceMode::LATENCY, + {}, + {}, + {{0, 0, 0, 0, 0, 0}}, + ov::hint::SchedulingCoreType::ANY_CORE, + false, + false, + ov::hint::PerformanceMode::LATENCY, + {{96, 0, 96, 0, 0, 0}}, + {{24, EFFICIENT_CORE_PROC, 4, 0, 0}}, +}; + #if defined(__linux__) || defined(_WIN32) INSTANTIATE_TEST_SUITE_P(smoke_StreamsGeneration, StreamGenerationTests, ::testing::Values(generation_latency_1sockets_14cores_3, + generation_latency_1sockets_14cores_3_reservation, + generation_latency_1sockets_14cores_4_reservation, generation_latency_1sockets_14cores_4, generation_latency_1sockets_14cores_5, generation_latency_2sockets_48cores_6, + generation_latency_2sockets_48cores_6_reservation, generation_latency_2sockets_48cores_7, generation_latency_2sockets_48cores_8, generation_latency_2sockets_48cores_9, @@ -778,10 +2070,13 @@ INSTANTIATE_TEST_SUITE_P(smoke_StreamsGeneration, generation_tput_2sockets_48cores_6, generation_tput_2sockets_48cores_7, generation_tput_2sockets_48cores_8, + generation_tput_2sockets_48cores_8_reservation, generation_tput_2sockets_48cores_9, generation_latency_1sockets_96cores_pinning, generation_tput_1sockets_96cores_pinning, - generation_tput_1sockets_96cores_2_pinning)); + generation_tput_1sockets_96cores_2_pinning, + generation_tput_1sockets_0cores_1, + generation_tput_1sockets_0cores_1_reservation)); #else INSTANTIATE_TEST_SUITE_P(smoke_StreamsGeneration, StreamGenerationTests, diff --git a/src/plugins/intel_cpu/tests/unit/streams_info/streams_info_table_test.cpp b/src/plugins/intel_cpu/tests/unit/streams_info/streams_info_table_test.cpp index 0c7d85571661e5..9884ceb09f6122 100644 --- a/src/plugins/intel_cpu/tests/unit/streams_info/streams_info_table_test.cpp +++ b/src/plugins/intel_cpu/tests/unit/streams_info/streams_info_table_test.cpp @@ -20,7 +20,6 @@ struct StreamsCalculationTestCase { int input_threads; int input_infer_requests; int model_prefer_threads; - int input_socket_id; std::string input_perf_hint; std::set hint_llm_distribution_policy; std::vector> proc_type_table; @@ -39,7 +38,6 @@ class StreamsCalculationTests : public ov::test::TestsCommon, test_data.input_threads, test_data.input_infer_requests, test_data.model_prefer_threads, - test_data.input_socket_id, test_data.input_perf_hint, test_data.hint_llm_distribution_policy, test_data.proc_type_table); @@ -55,7 +53,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_auto_1 = { 0, // param[in]: the number of threads in this simulation 0, // param[in]: the number of infer requests in this simulation 0, // param[in]: the model preferred number of threads in this simulation - 0, // param[in]: the current socket id of the running thread in this simulation "LATENCY", // param[in]: the performance hint in this simulation {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, // param[in]: the hint of max threads per stream in this // simulation @@ -74,7 +71,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_auto_2 = { 0, 0, 0, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -86,7 +82,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_auto_3 = { 0, 0, 0, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{208, 104, 0, 104, -1, -1}, @@ -108,7 +103,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_auto_4 = { 0, 0, 0, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{104, 104, 0, 0, -1, -1}, {26, 26, 0, 0, 0, 0}, {26, 26, 0, 0, 1, 0}, {26, 26, 0, 0, 2, 1}, {26, 26, 0, 0, 3, 1}}, @@ -126,7 +120,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_platform_1 = { 0, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -138,7 +131,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_platform_2 = { 0, 0, 0, - 0, "LATENCY", {}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -150,7 +142,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_platform_3 = { 0, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, @@ -170,7 +161,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_platform_4 = { 0, 0, 0, - 0, "LATENCY", {}, {{104, 104, 0, 0, -1, -1}, {26, 26, 0, 0, 0, 0}, {26, 26, 0, 0, 1, 0}, {26, 26, 0, 0, 2, 1}, {26, 26, 0, 0, 3, 1}}, @@ -182,7 +172,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_socket_1 = { 0, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -194,7 +183,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_socket_2 = { 0, 0, 0, - 0, "LATENCY", {}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -206,7 +194,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_socket_3 = { 0, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, @@ -226,7 +213,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_socket_4 = { 0, 0, 0, - 0, "LATENCY", {}, {{104, 104, 0, 0, -1, -1}, {26, 26, 0, 0, 0, 0}, {26, 26, 0, 0, 1, 0}, {26, 26, 0, 0, 2, 1}, {26, 26, 0, 0, 3, 1}}, @@ -238,7 +224,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_socket_5 = { 0, 0, 0, - 0, "LATENCY", {}, {{60, 60, 0, 0, -1, -1}, {10, 10, 0, 0, 0, 0}, {10, 10, 0, 0, 1, 0}, {20, 20, 0, 0, 2, 1}, {20, 20, 0, 0, 3, 1}}, @@ -250,7 +235,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_socket_6 = { 0, 0, 0, - 0, "LATENCY", {}, {{60, 60, 0, 0, -1, -1}, {10, 10, 0, 0, 0, 0}, {20, 20, 0, 0, 1, 1}, {10, 10, 0, 0, 2, 0}, {20, 20, 0, 0, 3, 1}}, @@ -262,7 +246,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_socket_7 = { 0, 0, 0, - 0, "LATENCY", {}, {{104, 104, 0, 0, -1, -1}, {26, 26, 0, 0, 0, 0}, {26, 26, 0, 0, 1, 0}, {26, 26, 0, 0, 2, 1}, {26, 26, 0, 0, 3, 1}}, @@ -274,7 +257,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_socket_8 = { 208, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -290,7 +272,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_socket_9 = { 104, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -302,7 +283,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_socket_10 = { 52, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -315,7 +295,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_1 = { 20, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -327,7 +306,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_2 = { 20, 5, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -339,7 +317,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_4 = { 20, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -351,7 +328,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_5 = { 20, 5, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -363,7 +339,6 @@ StreamsCalculationTestCase _2sockets_104cores_latency_6 = { 208, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -379,7 +354,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_1 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -394,7 +368,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_2 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -411,7 +384,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_3 = { 20, 0, 0, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -423,7 +395,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_4 = { 20, 0, 0, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -435,7 +406,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_5 = { 0, 0, 1, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -450,7 +420,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_6 = { 0, 0, 2, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -465,7 +434,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_7 = { 0, 0, 8, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -486,7 +454,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_7_1 = { 0, 0, 8, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -507,7 +474,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_7_2 = { 0, 0, 4, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, @@ -529,7 +495,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_8 = { 40, 0, 8, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -542,7 +507,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_9 = { 20, 2, 0, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -555,7 +519,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_10 = { 0, 2, 0, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -573,7 +536,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_11 = { 0, 5, 0, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -591,7 +553,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_12 = { 0, 2, 2, - 0, "THROUGHPUT", {}, {{208, 104, 0, 104, -1, -1}, {104, 52, 0, 52, 0, 0}, {104, 52, 0, 52, 1, 1}}, @@ -609,7 +570,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_13 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -622,7 +582,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_14 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -635,7 +594,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_15 = { 0, 0, 1, - 0, "THROUGHPUT", {}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -648,7 +606,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_16 = { 0, 0, 2, - 0, "THROUGHPUT", {}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -661,7 +618,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_17 = { 0, 0, 8, - 0, "THROUGHPUT", {}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -678,7 +634,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_18 = { 0, 2, 0, - 0, "THROUGHPUT", {}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -691,7 +646,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_19 = { 0, 5, 0, - 0, "THROUGHPUT", {}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -704,7 +658,6 @@ StreamsCalculationTestCase _2sockets_104cores_tput_20 = { 0, 2, 2, - 0, "THROUGHPUT", {}, {{104, 104, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 1}}, @@ -717,7 +670,6 @@ StreamsCalculationTestCase _2sockets_48cores_latency_1 = { 0, 0, 0, - 0, "LATENCY", {}, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, @@ -729,7 +681,6 @@ StreamsCalculationTestCase _2sockets_48cores_latency_2 = { 0, 0, 0, - 0, "LATENCY", {}, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, @@ -741,7 +692,6 @@ StreamsCalculationTestCase _2sockets_48cores_latency_3 = { 96, 0, 0, - 0, "LATENCY", {}, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, @@ -753,7 +703,6 @@ StreamsCalculationTestCase _2sockets_48cores_tput_1 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, @@ -766,7 +715,6 @@ StreamsCalculationTestCase _2sockets_48cores_tput_2 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, @@ -779,7 +727,6 @@ StreamsCalculationTestCase _2sockets_48cores_tput_3 = { 100, 0, 0, - 0, "THROUGHPUT", {}, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, @@ -792,7 +739,6 @@ StreamsCalculationTestCase _2sockets_48cores_tput_4 = { 20, 0, 1, - 0, "THROUGHPUT", {}, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, @@ -805,7 +751,6 @@ StreamsCalculationTestCase _2sockets_20cores_tput_1 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{20, 20, 0, 0, -1, -1}, {10, 10, 0, 0, 0, 0}, {10, 10, 0, 0, 1, 1}}, @@ -818,7 +763,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_1 = { 0, 0, 0, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -831,7 +775,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_2 = { 10, 0, 0, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -844,7 +787,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_3 = { 0, 0, 6, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -857,7 +799,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_4 = { 0, 0, 14, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -873,7 +814,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_5 = { 0, 2, 14, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -889,7 +829,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_6 = { 0, 0, 0, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -905,7 +844,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_7 = { 0, 0, 6, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -918,7 +856,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_8 = { 0, 0, 14, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -931,7 +868,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_9 = { 0, 2, 14, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -944,7 +880,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_10 = { 0, 0, 0, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -957,7 +892,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_11 = { 10, 0, 0, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -970,7 +904,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_12 = { 0, 0, 6, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -983,7 +916,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_13 = { 0, 0, 14, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -999,7 +931,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_14 = { 0, 2, 14, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1015,7 +946,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_15 = { 0, 0, 0, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1031,7 +961,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_16 = { 0, 0, 6, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -1044,7 +973,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_17 = { 0, 0, 14, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -1057,7 +985,6 @@ StreamsCalculationTestCase _1sockets_14cores_latency_18 = { 0, 2, 14, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -1070,7 +997,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_1 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1083,7 +1009,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_2 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1096,7 +1021,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_3 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1109,7 +1033,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_4 = { 12, 0, 0, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1122,7 +1045,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_5 = { 0, 0, 1, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1135,7 +1057,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_6 = { 0, 0, 2, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1148,7 +1069,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_7 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1161,7 +1081,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_8 = { 100, 0, 0, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1174,7 +1093,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_9 = { 0, 8, 0, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1187,7 +1105,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_10 = { 0, 4, 0, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1200,7 +1117,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_11 = { 0, 2, 0, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1213,7 +1129,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_12 = { 0, 2, 2, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1226,7 +1141,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_13 = { 1, 0, 1, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1239,7 +1153,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_14 = { 9, 0, 1, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1252,7 +1165,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_15 = { 12, 0, 1, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1265,7 +1177,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_16 = { 15, 0, 1, - 0, "THROUGHPUT", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1278,7 +1189,6 @@ StreamsCalculationTestCase _1sockets_14cores_tput_17 = { 14, 0, 6, - 0, "LATENCY", {}, {{20, 6, 8, 6, 0, 0}}, @@ -1291,7 +1201,6 @@ StreamsCalculationTestCase _1sockets_10cores_latency_1 = { 0, 0, 0, - 0, "LATENCY", {}, {{12, 2, 8, 2, 0, 0}}, @@ -1307,7 +1216,6 @@ StreamsCalculationTestCase _1sockets_10cores_latency_2 = { 8, 0, 0, - 0, "LATENCY", {}, {{12, 2, 8, 2, 0, 0}}, @@ -1320,7 +1228,6 @@ StreamsCalculationTestCase _1sockets_10cores_latency_3 = { 0, 0, 2, - 0, "LATENCY", {}, {{12, 2, 8, 2, 0, 0}}, @@ -1333,7 +1240,6 @@ StreamsCalculationTestCase _1sockets_10cores_latency_4 = { 0, 0, 10, - 0, "LATENCY", {}, {{12, 2, 8, 2, 0, 0}}, @@ -1349,7 +1255,6 @@ StreamsCalculationTestCase _1sockets_10cores_latency_5 = { 0, 0, 0, - 0, "LATENCY", {}, {{10, 2, 8, 0, 0, 0}}, @@ -1362,7 +1267,6 @@ StreamsCalculationTestCase _1sockets_10cores_latency_6 = { 0, 0, 2, - 0, "LATENCY", {}, {{10, 2, 8, 0, 0, 0}}, @@ -1375,7 +1279,6 @@ StreamsCalculationTestCase _1sockets_10cores_latency_7 = { 0, 0, 10, - 0, "LATENCY", {}, {{10, 2, 8, 0, 0, 0}}, @@ -1388,7 +1291,6 @@ StreamsCalculationTestCase _1sockets_10cores_tput_1 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{12, 2, 8, 2, 0, 0}}, @@ -1401,7 +1303,6 @@ StreamsCalculationTestCase _1sockets_10cores_tput_2 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{12, 2, 8, 2, 0, 0}}, @@ -1414,7 +1315,6 @@ StreamsCalculationTestCase _1sockets_10cores_tput_3 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{12, 2, 8, 2, 0, 0}}, @@ -1427,7 +1327,6 @@ StreamsCalculationTestCase _1sockets_10cores_tput_4 = { 6, 0, 0, - 0, "THROUGHPUT", {}, {{12, 2, 8, 2, 0, 0}}, @@ -1440,7 +1339,6 @@ StreamsCalculationTestCase _1sockets_10cores_tput_5 = { 0, 0, 1, - 0, "THROUGHPUT", {}, {{12, 2, 8, 2, 0, 0}}, @@ -1453,7 +1351,6 @@ StreamsCalculationTestCase _1sockets_10cores_tput_6 = { 0, 0, 2, - 0, "THROUGHPUT", {}, {{12, 2, 8, 2, 0, 0}}, @@ -1466,7 +1363,6 @@ StreamsCalculationTestCase _1sockets_8cores_latency_1 = { 0, 0, 0, - 0, "LATENCY", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1482,7 +1378,6 @@ StreamsCalculationTestCase _1sockets_8cores_latency_2 = { 100, 0, 0, - 0, "LATENCY", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1498,7 +1393,6 @@ StreamsCalculationTestCase _1sockets_8cores_latency_3 = { 0, 0, 4, - 0, "LATENCY", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1511,7 +1405,6 @@ StreamsCalculationTestCase _1sockets_8cores_latency_4 = { 0, 0, 8, - 0, "LATENCY", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1527,7 +1420,6 @@ StreamsCalculationTestCase _1sockets_8cores_latency_5 = { 0, 0, 0, - 0, "LATENCY", {}, {{8, 4, 4, 0, 0, 0}}, @@ -1540,7 +1432,6 @@ StreamsCalculationTestCase _1sockets_8cores_latency_6 = { 0, 0, 4, - 0, "LATENCY", {}, {{8, 4, 4, 0, 0, 0}}, @@ -1553,7 +1444,6 @@ StreamsCalculationTestCase _1sockets_8cores_latency_7 = { 0, 0, 8, - 0, "LATENCY", {}, {{8, 4, 4, 0, 0, 0}}, @@ -1566,7 +1456,6 @@ StreamsCalculationTestCase _1sockets_8cores_tput_1 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1579,7 +1468,6 @@ StreamsCalculationTestCase _1sockets_8cores_tput_2 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1592,7 +1480,6 @@ StreamsCalculationTestCase _1sockets_8cores_tput_3 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1605,7 +1492,6 @@ StreamsCalculationTestCase _1sockets_8cores_tput_4 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1618,7 +1504,6 @@ StreamsCalculationTestCase _1sockets_8cores_tput_5 = { 6, 0, 0, - 0, "THROUGHPUT", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1631,7 +1516,6 @@ StreamsCalculationTestCase _1sockets_8cores_tput_6 = { 8, 0, 0, - 0, "THROUGHPUT", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1644,7 +1528,6 @@ StreamsCalculationTestCase _1sockets_8cores_tput_7 = { 0, 0, 1, - 0, "THROUGHPUT", {}, {{12, 4, 4, 4, 0, 0}}, @@ -1657,7 +1540,6 @@ StreamsCalculationTestCase _1sockets_8cores_tput_8 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{8, 4, 4, 0, 0, 0}}, @@ -1670,7 +1552,6 @@ StreamsCalculationTestCase _1sockets_6cores_latency_1 = { 0, 0, 0, - 0, "LATENCY", {}, {{12, 6, 0, 6, 0, 0}}, @@ -1683,7 +1564,6 @@ StreamsCalculationTestCase _1sockets_6cores_latency_2 = { 100, 0, 0, - 0, "LATENCY", {}, {{12, 6, 0, 6, 0, 0}}, @@ -1696,7 +1576,6 @@ StreamsCalculationTestCase _1sockets_6cores_latency_3 = { 0, 0, 0, - 0, "LATENCY", {}, {{6, 6, 0, 0, 0, 0}}, @@ -1709,7 +1588,6 @@ StreamsCalculationTestCase _1sockets_6cores_tput_1 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{12, 6, 0, 6, 0, 0}}, @@ -1722,7 +1600,6 @@ StreamsCalculationTestCase _1sockets_6cores_tput_2 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{12, 6, 0, 6, 0, 0}}, @@ -1735,7 +1612,6 @@ StreamsCalculationTestCase _1sockets_6cores_tput_3 = { 8, 0, 0, - 0, "THROUGHPUT", {}, {{12, 6, 0, 6, 0, 0}}, @@ -1748,7 +1624,6 @@ StreamsCalculationTestCase _1sockets_6cores_tput_4 = { 0, 0, 1, - 0, "THROUGHPUT", {}, {{12, 6, 0, 6, 0, 0}}, @@ -1761,7 +1636,6 @@ StreamsCalculationTestCase _1sockets_4cores_latency_1 = { 0, 0, 0, - 0, "LATENCY", {}, {{4, 4, 0, 0, 0, 0}}, @@ -1774,7 +1648,6 @@ StreamsCalculationTestCase _1sockets_4cores_tput_1 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{4, 4, 0, 0, 0, 0}}, @@ -1787,7 +1660,6 @@ StreamsCalculationTestCase _1sockets_4cores_tput_2 = { 0, 0, 8, - -1, "THROUGHPUT", {}, {{4, 4, 0, 0, 0, 0}}, @@ -1800,7 +1672,6 @@ StreamsCalculationTestCase _1sockets_4cores_tput_3 = { 0, 0, 8, - -1, "THROUGHPUT", {}, {{4, 4, 0, 0, 0, 0}}, @@ -1813,7 +1684,6 @@ StreamsCalculationTestCase _1sockets_ecores_latency_1 = { 0, 0, 0, - 0, "LATENCY", {}, {{16, 0, 16, 0, 0, 0}}, @@ -1826,7 +1696,6 @@ StreamsCalculationTestCase _1sockets_ecores_latency_2 = { 4, 0, 0, - 0, "LATENCY", {}, {{16, 0, 16, 0, 0, 0}}, @@ -1839,7 +1708,6 @@ StreamsCalculationTestCase _1sockets_ecores_latency_3 = { 0, 4, 0, - 0, "LATENCY", {}, {{16, 0, 16, 0, 0, 0}}, @@ -1852,7 +1720,6 @@ StreamsCalculationTestCase _1sockets_ecores_latency_4 = { 0, 0, 4, - 0, "LATENCY", {}, {{16, 0, 16, 0, 0, 0}}, @@ -1865,7 +1732,6 @@ StreamsCalculationTestCase _1sockets_ecores_tput_1 = { 0, 0, 1, - 0, "THROUGHPUT", {}, {{16, 0, 16, 0, 0, 0}}, @@ -1878,7 +1744,6 @@ StreamsCalculationTestCase _1sockets_ecores_tput_2 = { 0, 0, 4, - 0, "THROUGHPUT", {}, {{16, 0, 16, 0, 0, 0}}, @@ -1891,7 +1756,6 @@ StreamsCalculationTestCase _1sockets_ecores_tput_3 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{16, 0, 16, 0, 0, 0}}, @@ -1904,7 +1768,6 @@ StreamsCalculationTestCase _1sockets_ecores_tput_4 = { 0, 4, 0, - 0, "THROUGHPUT", {}, {{16, 0, 16, 0, 0, 0}}, @@ -1917,7 +1780,6 @@ StreamsCalculationTestCase _1sockets_ecores_tput_5 = { 0, 0, 4, - 0, "THROUGHPUT", {}, {{16, 0, 16, 0, 0, 0}}, @@ -1930,7 +1792,6 @@ StreamsCalculationTestCase _1sockets_mock_tput_1 = { 15, 0, 1, - 0, "THROUGHPUT", {}, {{20, 6, 7, 6, 0, 0}}, @@ -1943,7 +1804,6 @@ StreamsCalculationTestCase _1sockets_mock_tput_2 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{27, 27, 0, 0, -1, -1}, {19, 19, 0, 0, 0, 0}, {8, 8, 0, 0, 1, 1}}, @@ -1956,7 +1816,6 @@ StreamsCalculationTestCase _1sockets_mock_tput_3 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{19, 19, 0, 0, -1, -1}, {11, 11, 0, 0, 0, 0}, {8, 8, 0, 0, 1, 1}}, @@ -1969,7 +1828,6 @@ StreamsCalculationTestCase _1sockets_mock_tput_4 = { 0, 0, 0, - 0, "THROUGHPUT", {}, {{8, 8, 0, 0, 0, 0}}, @@ -1982,7 +1840,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_1 = { 20, 0, 0, - 0, "LATENCY", {}, {{60, 60, 0, 0, -1, -1}, {10, 10, 0, 0, 0, 0}, {20, 20, 0, 0, 1, 0}, {10, 10, 0, 0, 2, 1}, {20, 20, 0, 0, 3, 1}}, @@ -1994,7 +1851,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_2 = { 0, 0, 0, - 1, "LATENCY", {}, {{60, 60, 0, 0, -1, -1}, {20, 20, 0, 0, 1, 1}, {40, 40, 0, 0, 0, 0}}, @@ -2006,7 +1862,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_3 = { 0, 0, 0, - 1, "THROUGHPUT", {}, {{60, 60, 0, 0, -1, -1}, {20, 20, 0, 0, 1, 1}, {40, 40, 0, 0, 0, 0}}, @@ -2018,7 +1873,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_4 = { 10, 0, 0, - 1, "LATENCY", {}, {{60, 60, 0, 0, -1, -1}, {20, 20, 0, 0, 1, 1}, {40, 40, 0, 0, 0, 0}}, @@ -2030,7 +1884,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_5 = { 50, 0, 0, - 1, "LATENCY", {}, {{60, 60, 0, 0, -1, -1}, {20, 20, 0, 0, 1, 1}, {40, 40, 0, 0, 0, 0}}, @@ -2042,7 +1895,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_6 = { 0, 0, 0, - 1, "LATENCY", {}, {{60, 0, 60, 0, -1, -1}, {20, 0, 20, 0, 1, 1}, {40, 0, 40, 0, 0, 0}}, @@ -2054,7 +1906,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_7 = { 0, 0, 0, - 1, "THROUGHPUT", {}, {{60, 0, 60, 0, -1, -1}, {20, 0, 20, 0, 1, 1}, {40, 0, 40, 0, 0, 0}}, @@ -2066,7 +1917,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_8 = { 10, 0, 0, - 1, "LATENCY", {}, {{60, 0, 60, 0, -1, -1}, {20, 0, 20, 0, 1, 1}, {40, 0, 40, 0, 0, 0}}, @@ -2078,7 +1928,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_9 = { 50, 0, 0, - 1, "LATENCY", {}, {{60, 0, 60, 0, -1, -1}, {20, 0, 20, 0, 1, 1}, {40, 0, 40, 0, 0, 0}}, @@ -2090,7 +1939,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_10 = { 0, 0, 0, - 1, "LATENCY", {}, {{60, 30, 0, 30, -1, -1}, {20, 10, 0, 10, 1, 1}, {40, 20, 0, 20, 0, 0}}, @@ -2102,7 +1950,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_11 = { 0, 0, 0, - 1, "THROUGHPUT", {}, {{60, 30, 0, 30, -1, -1}, {20, 10, 0, 10, 1, 1}, {40, 20, 0, 20, 0, 0}}, @@ -2114,7 +1961,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_12 = { 15, 0, 0, - 1, "LATENCY", {}, {{60, 30, 0, 30, -1, -1}, {20, 10, 0, 10, 1, 1}, {40, 20, 0, 20, 0, 0}}, @@ -2126,7 +1972,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_13 = { 50, 0, 0, - 1, "LATENCY", {}, {{60, 30, 0, 30, -1, -1}, {20, 10, 0, 10, 1, 1}, {40, 20, 0, 20, 0, 0}}, @@ -2142,7 +1987,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_14 = { 0, 0, 0, - 3, "LATENCY", {}, {{200, 100, 0, 100, -1, -1}, @@ -2158,7 +2002,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_15 = { 0, 0, 0, - 3, "THROUGHPUT", {}, {{200, 100, 0, 100, -1, -1}, @@ -2174,7 +2017,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_16 = { 15, 0, 0, - 3, "LATENCY", {}, {{200, 100, 0, 100, -1, -1}, @@ -2190,7 +2032,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_17 = { 50, 0, 0, - 3, "LATENCY", {}, {{200, 100, 0, 100, -1, -1}, @@ -2209,7 +2050,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_18 = { 0, 0, 0, - 6, "LATENCY", {}, {{440, 220, 0, 220, -1, -1}, @@ -2229,7 +2069,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_19 = { 0, 0, 0, - 6, "THROUGHPUT", {}, {{440, 220, 0, 220, -1, -1}, @@ -2249,7 +2088,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_20 = { 25, 0, 0, - 6, "LATENCY", {}, {{440, 220, 0, 220, -1, -1}, @@ -2269,7 +2107,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_21 = { 50, 0, 0, - 6, "LATENCY", {}, {{440, 220, 0, 220, -1, -1}, @@ -2292,7 +2129,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_22 = { 0, 0, 0, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{60, 30, 0, 30, -1, -1}, {40, 20, 0, 20, 0, 0}, {20, 10, 0, 10, 1, 1}}, @@ -2310,7 +2146,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_23 = { 0, 0, 0, - 0, "LATENCY", {}, {{60, 30, 0, 30, -1, -1}, {40, 20, 0, 20, 0, 0}, {20, 10, 0, 10, 1, 1}}, @@ -2322,7 +2157,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_24 = { 0, 0, 0, - 0, "LATENCY", {}, {{60, 30, 0, 30, -1, -1}, {40, 20, 0, 20, 0, 0}, {20, 10, 0, 10, 1, 1}}, @@ -2334,7 +2168,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_25 = { 0, 0, 0, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{200, 100, 0, 100, -1, -1}, @@ -2355,7 +2188,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_26 = { 0, 0, 0, - 0, "LATENCY", {}, {{200, 100, 0, 100, -1, -1}, @@ -2375,7 +2207,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_27 = { 0, 0, 0, - 0, "LATENCY", {}, {{200, 100, 0, 100, -1, -1}, @@ -2395,7 +2226,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_28 = { 200, 0, 0, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{200, 100, 0, 100, -1, -1}, @@ -2416,7 +2246,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_29 = { 200, 0, 0, - 0, "LATENCY", {}, {{200, 100, 0, 100, -1, -1}, @@ -2440,7 +2269,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_31 = { 140, 0, 0, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{200, 100, 0, 100, -1, -1}, @@ -2461,7 +2289,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_32 = { 70, 0, 0, - 0, "LATENCY", {}, {{200, 100, 0, 100, -1, -1}, @@ -2477,7 +2304,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_33 = { 20, 0, 0, - 0, "LATENCY", {}, {{200, 100, 0, 100, -1, -1}, @@ -2493,7 +2319,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_34 = { 0, 0, 0, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, @@ -2505,7 +2330,6 @@ StreamsCalculationTestCase _1sockets_mock_latency_1 = { 0, 0, 14, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{14, 6, 8, 0, 0, 0}}, @@ -2517,7 +2341,6 @@ StreamsCalculationTestCase _1sockets_mock_latency_2 = { 0, 0, 6, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{14, 6, 8, 0, 0, 0}}, @@ -2529,7 +2352,6 @@ StreamsCalculationTestCase _1sockets_mock_latency_3 = { 0, 0, 14, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -2541,7 +2363,6 @@ StreamsCalculationTestCase _1sockets_mock_latency_4 = { 0, 0, 6, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -2553,7 +2374,6 @@ StreamsCalculationTestCase _1sockets_mock_latency_5 = { 0, 0, 14, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -2565,7 +2385,6 @@ StreamsCalculationTestCase _1sockets_mock_latency_6 = { 0, 0, 6, - 0, "LATENCY", {}, {{14, 6, 8, 0, 0, 0}}, @@ -2577,14 +2396,13 @@ StreamsCalculationTestCase _2sockets_mock_latency_35 = { 200, 0, 0, - 3, "LATENCY", {}, {{200, 100, 0, 100, -1, -1}, + {20, 10, 0, 10, 3, 3}, {80, 40, 0, 40, 0, 0}, {60, 30, 0, 30, 1, 1}, - {40, 20, 0, 20, 2, 2}, - {20, 10, 0, 10, 3, 3}}, + {40, 20, 0, 20, 2, 2}}, {{1, ALL_PROC, 200, -1, -1}, {0, MAIN_CORE_PROC, 10, 3, 3}, {0, HYPER_THREADING_PROC, 10, 3, 3}, @@ -2601,14 +2419,13 @@ StreamsCalculationTestCase _2sockets_mock_latency_36 = { 200, 0, 0, - 3, "LATENCY", {}, {{200, 100, 0, 100, -1, -1}, + {20, 10, 0, 10, 3, 3}, {80, 40, 0, 40, 0, 0}, {60, 30, 0, 30, 1, 1}, - {40, 20, 0, 20, 2, 2}, - {20, 10, 0, 10, 3, 3}}, + {40, 20, 0, 20, 2, 2}}, {{1, ALL_PROC, 200, -1, -1}, {0, MAIN_CORE_PROC, 10, 3, 3}, {0, HYPER_THREADING_PROC, 10, 3, 3}, @@ -2625,10 +2442,9 @@ StreamsCalculationTestCase _2sockets_mock_latency_37 = { 0, 0, 0, - 1, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, - {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 0, 0}, {24, 24, 0, 0, 1, 1}}, + {{48, 48, 0, 0, -1, -1}, {24, 24, 0, 0, 1, 1}, {24, 24, 0, 0, 0, 0}}, {{1, MAIN_CORE_PROC, 48, -1, -1}, {-1, MAIN_CORE_PROC, 24, 1, 1}, {-1, MAIN_CORE_PROC, 24, 0, 0}}, }; StreamsCalculationTestCase _2sockets_mock_latency_38 = { @@ -2637,7 +2453,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_38 = { 0, 0, 0, - 0, "LATENCY", {ov::hint::ModelDistributionPolicy::TENSOR_PARALLEL}, {{256, 128, 0, 128, 0, 0}, @@ -2653,7 +2468,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_39 = { 0, 0, 0, - 0, "LATENCY", {}, {{104, 104, 0, 0, -1, -1}, {26, 26, 0, 0, 0, 0}, {26, 26, 0, 0, 1, 0}, {26, 26, 0, 0, 2, 1}, {26, 26, 0, 0, 3, 1}}, @@ -2665,7 +2479,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_40 = { 0, 0, 0, - 0, "LATENCY", {}, {{104, 104, 0, 0, -1, -1}, {26, 26, 0, 0, 1, 0}, {26, 26, 0, 0, 2, 1}, {26, 26, 0, 0, 3, 1}, {26, 26, 0, 0, 0, 0}}, @@ -2677,7 +2490,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_41 = { 0, 0, 0, - 1, "LATENCY", {}, {{104, 104, 0, 0, -1, -1}, {26, 26, 0, 0, 2, 1}, {26, 26, 0, 0, 3, 1}, {26, 26, 0, 0, 0, 0}, {26, 26, 0, 0, 1, 0}}, @@ -2689,7 +2501,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_42 = { 0, 0, 0, - 1, "LATENCY", {}, {{104, 104, 0, 0, -1, -1}, {26, 26, 0, 0, 3, 1}, {26, 26, 0, 0, 0, 0}, {26, 26, 0, 0, 1, 0}, {26, 26, 0, 0, 2, 1}}, @@ -2701,7 +2512,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_43 = { 0, 0, 0, - 0, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, @@ -2721,7 +2531,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_44 = { 0, 0, 0, - 1, "LATENCY", {}, {{208, 104, 0, 104, -1, -1}, @@ -2741,7 +2550,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_45 = { 0, 0, 0, - 0, "LATENCY", {}, {{208, 208, 0, 0, -1, -1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 0}, {52, 52, 0, 0, 2, 1}, {52, 52, 0, 0, 3, 1}}, @@ -2753,7 +2561,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_46 = { 0, 0, 0, - 1, "LATENCY", {}, {{208, 208, 0, 0, -1, -1}, {52, 52, 0, 0, 2, 1}, {52, 52, 0, 0, 3, 1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 0}}, @@ -2765,7 +2572,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_47 = { 0, 0, 0, - 0, "LATENCY", {}, {{416, 208, 0, 208, -1, -1}, @@ -2785,7 +2591,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_48 = { 0, 0, 0, - 1, "LATENCY", {}, {{416, 208, 0, 208, -1, -1}, @@ -2805,7 +2610,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_49 = { 80, 0, 0, - 1, "LATENCY", {}, {{416, 208, 0, 208, -1, -1}, @@ -2823,7 +2627,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_50 = { 80, 0, 0, - 1, "LATENCY", {}, {{208, 208, 0, 0, -1, -1}, {52, 52, 0, 0, 2, 1}, {52, 52, 0, 0, 3, 1}, {52, 52, 0, 0, 0, 0}, {52, 52, 0, 0, 1, 0}}, @@ -2835,7 +2638,6 @@ StreamsCalculationTestCase _2sockets_mock_latency_51 = { 16, 0, 0, - 0, "LATENCY", {}, {{16, 16, 0, 0, -1, -1}, {8, 8, 0, 0, 0, 0}, {8, 8, 0, 0, 1, 1}}, diff --git a/src/plugins/intel_cpu/tests/unit/streams_info/update_proc_table_test.cpp b/src/plugins/intel_cpu/tests/unit/streams_info/update_proc_table_test.cpp new file mode 100644 index 00000000000000..08c0cf2c9089e9 --- /dev/null +++ b/src/plugins/intel_cpu/tests/unit/streams_info/update_proc_table_test.cpp @@ -0,0 +1,72 @@ +// Copyright (C) 2018-2024 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include "common_test_utils/test_common.hpp" +#include "cpu_streams_calculation.hpp" + +using namespace testing; + +namespace ov { + +namespace intel_cpu { + +struct LinuxSortProcTableTestCase { + int current_numa_node_id; + std::vector> _proc_type_table_input; + std::vector> _proc_type_table_output; +}; + +class LinuxSortProcTableTests : public ov::test::TestsCommon, + public testing::WithParamInterface> { +public: + void SetUp() override { + const auto& test_data = std::get<0>(GetParam()); + + std::vector> test_proc_type_table = test_data._proc_type_table_input; + + sort_table_by_numa_node_id(test_data.current_numa_node_id, test_proc_type_table); + + ASSERT_EQ(test_proc_type_table, test_data._proc_type_table_output); + } +}; + +LinuxSortProcTableTestCase proc_table_2sockets_24cores_hyperthreading_1 = { + 0, + {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}}, + {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}}, +}; +LinuxSortProcTableTestCase proc_table_2sockets_24cores_hyperthreading_2 = { + 1, + {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}}, + {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}, {12, 6, 0, 6, 0, 0}}, +}; +LinuxSortProcTableTestCase proc_table_2sockets_24cores_hyperthreading_3 = { + 2, + {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}}, + {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}}, +}; +LinuxSortProcTableTestCase proc_table_2sockets_24cores_hyperthreading_4 = { + 3, + {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}, {12, 6, 0, 6, 3, 1}}, + {{48, 24, 0, 24, -1, -1}, {12, 6, 0, 6, 3, 1}, {12, 6, 0, 6, 0, 0}, {12, 6, 0, 6, 1, 0}, {12, 6, 0, 6, 2, 1}}, +}; +LinuxSortProcTableTestCase proc_table_1sockets_mock = { + 3, + {{48, 24, 0, 24, 0, 0}}, + {{48, 24, 0, 24, 0, 0}}, +}; + +TEST_P(LinuxSortProcTableTests, UpdateProcTable) {} + +INSTANTIATE_TEST_SUITE_P(UpdateProcTableList, + LinuxSortProcTableTests, + testing::Values(proc_table_2sockets_24cores_hyperthreading_1, + proc_table_2sockets_24cores_hyperthreading_2, + proc_table_2sockets_24cores_hyperthreading_3, + proc_table_2sockets_24cores_hyperthreading_4, + proc_table_1sockets_mock)); +} // namespace intel_cpu +} // namespace ov diff --git a/src/plugins/intel_gpu/src/graph/program.cpp b/src/plugins/intel_gpu/src/graph/program.cpp index f6046621463645..5072740240e2a5 100644 --- a/src/plugins/intel_gpu/src/graph/program.cpp +++ b/src/plugins/intel_gpu/src/graph/program.cpp @@ -122,6 +122,7 @@ static ov::threading::IStreamsExecutor::Config make_task_executor_config(const E streams, 1, core_type, + false, enable_cpu_pinning); return task_executor_config; diff --git a/src/plugins/intel_gpu/src/plugin/compiled_model.cpp b/src/plugins/intel_gpu/src/plugin/compiled_model.cpp index 21344a403937a0..ed973666fd2e76 100644 --- a/src/plugins/intel_gpu/src/plugin/compiled_model.cpp +++ b/src/plugins/intel_gpu/src/plugin/compiled_model.cpp @@ -25,13 +25,17 @@ std::shared_ptr create_task_executor(const std::sh // exclusive_async_requests essentially disables the streams (and hence should be checked first) => aligned with // the CPU behavior return plugin->get_executor_manager()->get_executor("GPU"); - } else if (config.get_property(ov::hint::enable_cpu_pinning)) { + } else if (config.get_property(ov::hint::enable_cpu_pinning) || + config.get_property(ov::hint::enable_cpu_reservation)) { + bool enable_cpu_pinning = config.get_property(ov::hint::enable_cpu_pinning); + bool enable_cpu_reservation = config.get_property(ov::hint::enable_cpu_reservation); return std::make_shared( ov::threading::IStreamsExecutor::Config{"Intel GPU plugin executor", config.get_property(ov::num_streams), 1, ov::hint::SchedulingCoreType::PCORE_ONLY, - true}); + enable_cpu_reservation, + enable_cpu_pinning}); } else { return std::make_shared( ov::threading::IStreamsExecutor::Config{"Intel GPU plugin executor", @@ -262,6 +266,7 @@ ov::Any CompiledModel::get_property(const std::string& name) const { // Configs ov::PropertyName{ov::enable_profiling.name(), PropertyMutability::RO}, ov::PropertyName{ov::hint::enable_cpu_pinning.name(), PropertyMutability::RO}, + ov::PropertyName{ov::hint::enable_cpu_reservation.name(), PropertyMutability::RO}, ov::PropertyName{ov::hint::model_priority.name(), PropertyMutability::RO}, ov::PropertyName{ov::intel_gpu::hint::host_task_priority.name(), PropertyMutability::RO}, ov::PropertyName{ov::intel_gpu::hint::queue_priority.name(), PropertyMutability::RO}, diff --git a/src/plugins/intel_gpu/src/plugin/plugin.cpp b/src/plugins/intel_gpu/src/plugin/plugin.cpp index 2931e55eb51d0d..2fbd8a460c6f8b 100644 --- a/src/plugins/intel_gpu/src/plugin/plugin.cpp +++ b/src/plugins/intel_gpu/src/plugin/plugin.cpp @@ -613,6 +613,7 @@ std::vector Plugin::get_supported_properties() const { ov::PropertyName{ov::hint::num_requests.name(), PropertyMutability::RW}, ov::PropertyName{ov::hint::inference_precision.name(), PropertyMutability::RW}, ov::PropertyName{ov::hint::enable_cpu_pinning.name(), PropertyMutability::RW}, + ov::PropertyName{ov::hint::enable_cpu_reservation.name(), PropertyMutability::RW}, ov::PropertyName{ov::device::id.name(), PropertyMutability::RW}, ov::PropertyName{ov::hint::dynamic_quantization_group_size.name(), PropertyMutability::RW}, ov::PropertyName{ov::hint::activations_scale_factor.name(), PropertyMutability::RW}, diff --git a/src/plugins/intel_gpu/src/runtime/execution_config.cpp b/src/plugins/intel_gpu/src/runtime/execution_config.cpp index 0372050657f018..2b52626efdd1be 100644 --- a/src/plugins/intel_gpu/src/runtime/execution_config.cpp +++ b/src/plugins/intel_gpu/src/runtime/execution_config.cpp @@ -46,6 +46,7 @@ void ExecutionConfig::set_default() { std::make_tuple(ov::hint::execution_mode, ov::hint::ExecutionMode::PERFORMANCE), std::make_tuple(ov::hint::num_requests, 0), std::make_tuple(ov::hint::enable_cpu_pinning, false), + std::make_tuple(ov::hint::enable_cpu_reservation, false), std::make_tuple(ov::intel_gpu::hint::host_task_priority, ov::hint::Priority::MEDIUM), std::make_tuple(ov::intel_gpu::hint::queue_throttle, ov::intel_gpu::hint::ThrottleLevel::MEDIUM), @@ -268,6 +269,16 @@ void ExecutionConfig::apply_user_properties(const cldnn::device_info& info) { if (get_property(ov::intel_gpu::use_onednn)) { set_property(ov::intel_gpu::queue_type(QueueTypes::in_order)); } + if (!is_set_by_user(ov::hint::enable_cpu_reservation)) { + if (get_property(ov::hint::enable_cpu_pinning)) { + set_property(ov::hint::enable_cpu_reservation(true)); + } + } + if (get_property(ov::hint::enable_cpu_reservation)) { + if (!is_set_by_user(ov::hint::enable_cpu_pinning)) { + set_property(ov::hint::enable_cpu_pinning(true)); + } + } user_properties.clear(); } diff --git a/src/plugins/intel_gpu/tests/functional/concurrency/gpu_reservation_test.cpp b/src/plugins/intel_gpu/tests/functional/concurrency/gpu_reservation_test.cpp new file mode 100644 index 00000000000000..07d4879257185c --- /dev/null +++ b/src/plugins/intel_gpu/tests/functional/concurrency/gpu_reservation_test.cpp @@ -0,0 +1,57 @@ +// Copyright (C) 2018-2024 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include + +#include +#include + +#include "common_test_utils/file_utils.hpp" +#include "common_test_utils/subgraph_builders/2_input_subtract.hpp" +#include "common_test_utils/subgraph_builders/multi_single_conv.hpp" +#include "common_test_utils/ov_plugin_cache.hpp" +#include "openvino/openvino.hpp" +#include "openvino/runtime/intel_gpu/properties.hpp" + +using Device = std::string; +using Config = ov::AnyMap; +using GpuReservationTest = ::testing::Test; + +TEST_F(GpuReservationTest, Mutiple_CompiledModel_Reservation) { + std::vector> models; + Config config = {ov::enable_profiling(true)}; + std::vector target_devices = {ov::test::utils::DEVICE_CPU, ov::test::utils::DEVICE_GPU}; + std::atomic counter{0u}; + + models.emplace_back(ov::test::utils::make_2_input_subtract()); + models.emplace_back(ov::test::utils::make_multi_single_conv()); + + auto core = ov::test::utils::PluginCache::get().core(); + core->set_property(target_devices[1], config); + + ov::AnyMap property_config = {{ov::num_streams.name(), 1}, + {ov::inference_num_threads.name(), 1}, + {ov::hint::enable_cpu_reservation.name(), true}}; + ov::AnyMap property_config_gpu = {{ov::num_streams.name(), ov::streams::Num(1)}, + {ov::hint::enable_cpu_reservation.name(), true}}; + + std::vector threads(2); + for (auto& thread : threads) { + thread = std::thread([&]() { + auto value = counter++; + auto compiled_model = core->compile_model(models[value % models.size()], + target_devices[value % target_devices.size()], + value == 0 ? property_config : property_config_gpu); + auto num_streams = compiled_model.get_property(ov::num_streams.name()); + auto cpu_reservation = compiled_model.get_property(ov::hint::enable_cpu_reservation.name()); + ASSERT_EQ(num_streams, ov::streams::Num(1)); + ASSERT_EQ(cpu_reservation, true); + }); + } + + for (auto& thread : threads) { + if (thread.joinable()) + thread.join(); + } +} \ No newline at end of file diff --git a/src/plugins/intel_gpu/tests/functional/shared_tests_instances/behavior/ov_plugin/properties_tests.cpp b/src/plugins/intel_gpu/tests/functional/shared_tests_instances/behavior/ov_plugin/properties_tests.cpp index 17b2b91d034bd6..e026a44fa74ce0 100644 --- a/src/plugins/intel_gpu/tests/functional/shared_tests_instances/behavior/ov_plugin/properties_tests.cpp +++ b/src/plugins/intel_gpu/tests/functional/shared_tests_instances/behavior/ov_plugin/properties_tests.cpp @@ -33,6 +33,7 @@ const std::vector gpu_compileModel_properties = { {ov::hint::performance_mode(ov::hint::PerformanceMode::LATENCY), ov::hint::num_requests(10), ov::hint::enable_cpu_pinning(true), + ov::hint::enable_cpu_reservation(false), ov::enable_profiling(true)}}; INSTANTIATE_TEST_SUITE_P(smoke_gpuCompileModelBehaviorTests,