Skip to content

Update threading configuration for NVL and PTL - #36367

Merged
maxnick merged 14 commits into
openvinotoolkit:masterfrom
sunxiaoxia2022:xiaoxia/nvl_support
Jul 14, 2026
Merged

Update threading configuration for NVL and PTL#36367
maxnick merged 14 commits into
openvinotoolkit:masterfrom
sunxiaoxia2022:xiaoxia/nvl_support

Conversation

@sunxiaoxia2022

@sunxiaoxia2022 sunxiaoxia2022 commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Details:

  • Update threading configuration for NVL and PTL
  1. Improve hybrid CPU latency heuristics to enable more ALL/AUTO configurations on high LP E-core-share platforms.
  2. Add new model-profile-based AUTO rules using lp_ecore_share, memory tolerance, convolution pressure, and GEMM ratio.
  3. Refine latency stream sizing so model_prefer_threads is honored when building single-stream ALL core configurations.
  4. Extend CPUStreamsExecutor internal stream metadata from a single core type to multiple core types.
  5. Update task arena creation logic to bind streams by the actual set of eligible core types instead of forcing a single-type binding.
  6. Add unit coverage for mixed-core stream metadata and stream type selection behavior.

Dependency PR: PR#36286

Tickets:

Test data:

Machine:
1.NVL windows from validation team (8Pcores+16Ecores+4LPEcores),
2.PTL X7 358H 32GB windows (4Pcores+8Ecores+4LPEcores)
Models: 209 static models from WW05_static_2026.0.0-20947

The geomean of latency with PR vs master:
NVL: 0.97583
PTL: 0.92095

The performance data for all models:
image
The performance data for the models with threads and partitioner changed in current PR:
image

@github-actions github-actions Bot added category: inference OpenVINO Runtime library - Inference category: CPU OpenVINO CPU plugin labels Jun 12, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates CPU threading heuristics and stream binding metadata to better support hybrid-core platforms (NVL/PTL), including allowing streams to be associated with multiple eligible core types and refining AUTO/LATENCY stream sizing behavior.

Changes:

  • Extend stream metadata from a single core_type to a list of core_types, and update task arena creation to bind based on the eligible core-type set.
  • Add new model/memory-pressure-based heuristics that select ALL-core AUTO configurations more often on high LP E-core-share systems.
  • Expand unit coverage for streams-info table cases, model-prefer-threads rules, and mixed-core stream binding behavior.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/plugins/intel_cpu/tests/unit/streams_info/streams_info_table_test.cpp Adds a new LATENCY test case covering an ALL+MAIN+EFFICIENT+LP_EFFICIENT stream table scenario.
src/plugins/intel_cpu/tests/unit/streams_info/model_prefer_threads.cpp Adds multiple integration tests validating new hybrid AUTO selection and stream table expectations.
src/plugins/intel_cpu/src/cpu_streams_calculation.cpp Introduces new heuristic profiles for selecting AUTO/ALL-core latency behavior, plus stream sizing refinement.
src/inference/tests/unit/cpu_stream_info_test.cpp Updates stream-info unit tests for multi-core-type metadata and adds new coverage cases.
src/inference/src/dev/threading/cpu_streams_executor.cpp Updates task arena creation to handle multiple core types for binding and threads-per-core behavior.
src/inference/src/dev/threading/cpu_streams_executor_internal.cpp Updates stream-info extraction to return a list of core types and selects binding type based on subset eligibility.
src/inference/dev_api/openvino/runtime/threading/cpu_streams_executor_internal.hpp Updates internal API signature/docs to return core_types instead of a single core_type.

Comment thread src/inference/src/dev/threading/cpu_streams_executor.cpp
Comment thread src/inference/tests/unit/cpu_stream_info_test.cpp Outdated
@sunxiaoxia2022
sunxiaoxia2022 requested a review from Copilot June 24, 2026 08:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.

Comment thread src/inference/src/dev/threading/cpu_streams_executor.cpp
Comment thread src/inference/src/dev/threading/cpu_streams_executor.cpp Outdated
Comment thread src/inference/src/dev/threading/cpu_streams_executor.cpp
Comment thread src/inference/src/dev/threading/cpu_streams_executor_internal.cpp
Comment thread src/plugins/intel_cpu/src/cpu_streams_calculation.cpp
Comment thread src/plugins/intel_cpu/tests/unit/streams_info/model_prefer_threads.cpp Outdated
@sunxiaoxia2022
sunxiaoxia2022 requested a review from Copilot June 25, 2026 01:45
@sunxiaoxia2022
sunxiaoxia2022 marked this pull request as ready for review June 25, 2026 01:45
@sunxiaoxia2022
sunxiaoxia2022 requested review from a team as code owners June 25, 2026 01:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Comment thread src/plugins/intel_cpu/src/cpu_streams_calculation.cpp Outdated
Comment thread src/plugins/intel_cpu/src/cpu_streams_calculation.cpp Outdated
@maxnick maxnick added this to the 2026.4 milestone Jul 13, 2026
Comment thread src/inference/src/dev/threading/cpu_streams_executor.cpp
@sunxiaoxia2022
sunxiaoxia2022 requested a review from maxnick July 14, 2026 05:21
@maxnick
maxnick added this pull request to the merge queue Jul 14, 2026
Merged via the queue into openvinotoolkit:master with commit a5be820 Jul 14, 2026
214 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: CPU OpenVINO CPU plugin category: inference OpenVINO Runtime library - Inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants