diff --git a/src/plugins/intel_cpu/src/cpu_streams_calculation.cpp b/src/plugins/intel_cpu/src/cpu_streams_calculation.cpp index 82576c0a28611a..6ce5b3a9e1babe 100644 --- a/src/plugins/intel_cpu/src/cpu_streams_calculation.cpp +++ b/src/plugins/intel_cpu/src/cpu_streams_calculation.cpp @@ -582,11 +582,17 @@ int get_model_prefer_threads(const int num_streams, : proc_type_table[0][MAIN_CORE_PROC]) : proc_type_table[0][MAIN_CORE_PROC] + proc_type_table[0][EFFICIENT_CORE_PROC]; #endif - } else if (isNewXeon && !llm_related && proc_type_table.size() > 1 && proc_type_table[1][MAIN_CORE_PROC] >= 32) { + } else if (isNewXeon && !llm_related && proc_type_table.size() > 1) { // // my test // model_prefer = 32; // TODO: config.weightSize threshold need tobe updated - model_prefer = (config.weightSize <= 100) ? 32 : proc_type_table[1][MAIN_CORE_PROC]; + if (config.weightSize <= 100) { + model_prefer = (proc_type_table[1][MAIN_CORE_PROC] > 32) ? 32 : proc_type_table[1][MAIN_CORE_PROC]; + } else if ((proc_type_table.size() > 3) && + (proc_type_table[1][PROC_SOCKET_ID] == proc_type_table[2][PROC_SOCKET_ID]) && + (proc_type_table[1][MAIN_CORE_PROC] + proc_type_table[2][MAIN_CORE_PROC] >= 64)) { + model_prefer = proc_type_table[1][MAIN_CORE_PROC] + proc_type_table[2][MAIN_CORE_PROC]; + } } } else { // throughput model_prefer = config.modelPreferThreads;