-
Notifications
You must be signed in to change notification settings - Fork 3.5k
[QNN EP] Add dynamic option to set HTP performance mode #26135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[QNN EP] Add dynamic option to set HTP performance mode #26135
Conversation
- Add new Ep dynamic option "ep.dynamic.htp_performance_mode" to set HTP performance mode.
- Add unit test to verify Ep Dynamic option htp_performance_mode
/azp run Linux QNN CI Pipeline,Win_TRT_Minimal_CUDA_Test_CI,Windows ARM64 QNN CI Pipeline,Windows GPU Doc Gen CI Pipeline |
Azure Pipelines successfully started running 4 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds support for dynamically setting HTP performance mode through the QNN execution provider after session creation. This allows runtime adjustment of performance characteristics without recreating the session.
- Added new EP dynamic option
ep.dynamic.htp_performance_mode
with multiple performance mode values - Implemented dynamic option handling in QNN execution provider to update HTP power configuration
- Added test coverage for the new dynamic performance mode switching functionality
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
File | Description |
---|---|
onnxruntime_session_options_config_keys.h | Defines the new dynamic option key and documents supported HTP performance modes |
qnn_execution_provider.cc | Implements the dynamic option handling logic for HTP performance mode changes |
qnn_ep_context_test.cc | Adds test cases to verify dynamic performance mode switching works correctly |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
include/onnxruntime/core/session/onnxruntime_session_options_config_keys.h
Outdated
Show resolved
Hide resolved
- Adding qnn name to make it qnn specific option
/azp run Linux QNN CI Pipeline,Win_TRT_Minimal_CUDA_Test_CI,Windows ARM64 QNN CI Pipeline,Windows GPU Doc Gen CI Pipeline |
Azure Pipelines successfully started running 4 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/azp run Linux QNN CI Pipeline,Win_TRT_Minimal_CUDA_Test_CI,Windows ARM64 QNN CI Pipeline,Windows GPU Doc Gen CI Pipeline |
Azure Pipelines successfully started running 4 pipeline(s). |
### Description Add a new EP Dynamic option to set HTP performance mode after session creation. --------- Co-authored-by: quic-ashwshan <[email protected]>
### Description Adds the following commits to the `rel-1.23.1` branch for ORT 1.23.1: - add session_id_ to LogEvaluationStart/Stop, LogSessionCreationStart - main merge date: July 31, 1:05am - pr: #25590 - commit: e753643 - [build] fix WebAssembly build on macOS/arm64 - main merge date: Aug 5, 8:07am - pr: #25653 - commit: 53f152b - [CPU] MoE Kernel (#25958) - main merge date: Sept 10, 4:54pm - pr: #25958 - commit: 930e640 - [CPU] Block-wise QMoE kernel for CPU - main merge date: Sept 15, 8:32am - pr: #26009 - commit: 5d17734 - [C#] Implement missing APIs - main merge date: Sept 24, 10:50am - pr: #26101 - commit: 35dcab5 - Regenerate test model with ONNX IR < 12 - main merge date: Sept 24, 2:50pm - pr: #26149 - commit: 88f2652 - [CPU] Fix compilation errors because of unused variables - main merge date: Sept 25, 1:21pm - pr: #26147 - commit: 42fcd71 - [EP ABI] Check if nodes specified in GetCapability() have already been assigned - main merge date: Sept 26, 1:24am - pr: #26156 - commit: 67d3ba0 - [QNN EP] Add dynamic option to set HTP performance mode - main merge date: Sept 26, 11:55am - pr: #26135 - commit: 6cc40fd --------- Co-authored-by: xieofxie <[email protected]> Co-authored-by: hualxie <[email protected]> Co-authored-by: Yulong Wang <[email protected]> Co-authored-by: Akshay Sonawane <[email protected]> Co-authored-by: Dmitri Smirnov <[email protected]> Co-authored-by: Edward Chen <[email protected]> Co-authored-by: quic-tirupath <[email protected]> Co-authored-by: quic-ashwshan <[email protected]>
This PR has been cherry-picked into the |
* ORT 1.23.1 cherrypick 1 [REDO] (microsoft#26140) ### Description Cherry-pick the following PRs into the ORT 1.23.1 branch: - Fix Attention GQA implementation on CPU - **MANUAL MERGE**: see microsoft#26057 - main merge date: Sept 15, 11:33am - pr: microsoft#25966 - commit: d530b29 - Address edge GetMemInfo edge cases - main merge date: Sept 16, 10:32am - pr: microsoft#26021 - commit: d251f3a - Implement new Python APIs - main merge date: Sept 17, 11:44am - pr: microsoft#25999 - commit: abc63e8 - MemcpyFromHost and MemcpyToHost support for plugin EPs - **MERGE CONFLICT** on file onnxruntime/test/optimizer/transpose_optimizer_test.cc. Conflicts with microsoft#25689 - main merge date: Sept 23, 10:42am - pr: microsoft#26088 - commit: 4545732 - [TRT RTX EP] Fix bug for generating the correct subgraph in GetCapability microsoft#26132 - main merge date: Sept 23, 8:54pm - pr: microsoft#26132 - commit: 72e56e7 ### Motivation and Context <!-- - Why is this change required? What problem does it solve? - If it fixes an open issue, please link to the issue here. --> --------- Co-authored-by: Dmitri Smirnov <[email protected]> Co-authored-by: Edward Chen <[email protected]> Co-authored-by: Chi Lo <[email protected]> * ORT 1.23.1 cherrypick 2 (microsoft#26182) ### Description Adds the following commits to the `rel-1.23.1` branch for ORT 1.23.1: - add session_id_ to LogEvaluationStart/Stop, LogSessionCreationStart - main merge date: July 31, 1:05am - pr: microsoft#25590 - commit: e753643 - [build] fix WebAssembly build on macOS/arm64 - main merge date: Aug 5, 8:07am - pr: microsoft#25653 - commit: 53f152b - [CPU] MoE Kernel (microsoft#25958) - main merge date: Sept 10, 4:54pm - pr: microsoft#25958 - commit: 930e640 - [CPU] Block-wise QMoE kernel for CPU - main merge date: Sept 15, 8:32am - pr: microsoft#26009 - commit: 5d17734 - [C#] Implement missing APIs - main merge date: Sept 24, 10:50am - pr: microsoft#26101 - commit: 35dcab5 - Regenerate test model with ONNX IR < 12 - main merge date: Sept 24, 2:50pm - pr: microsoft#26149 - commit: 88f2652 - [CPU] Fix compilation errors because of unused variables - main merge date: Sept 25, 1:21pm - pr: microsoft#26147 - commit: 42fcd71 - [EP ABI] Check if nodes specified in GetCapability() have already been assigned - main merge date: Sept 26, 1:24am - pr: microsoft#26156 - commit: 67d3ba0 - [QNN EP] Add dynamic option to set HTP performance mode - main merge date: Sept 26, 11:55am - pr: microsoft#26135 - commit: 6cc40fd --------- Co-authored-by: xieofxie <[email protected]> Co-authored-by: hualxie <[email protected]> Co-authored-by: Yulong Wang <[email protected]> Co-authored-by: Akshay Sonawane <[email protected]> Co-authored-by: Dmitri Smirnov <[email protected]> Co-authored-by: Edward Chen <[email protected]> Co-authored-by: quic-tirupath <[email protected]> Co-authored-by: quic-ashwshan <[email protected]> --------- Co-authored-by: Adrian Lizarraga <[email protected]> Co-authored-by: Dmitri Smirnov <[email protected]> Co-authored-by: Edward Chen <[email protected]> Co-authored-by: Chi Lo <[email protected]> Co-authored-by: xieofxie <[email protected]> Co-authored-by: hualxie <[email protected]> Co-authored-by: Yulong Wang <[email protected]> Co-authored-by: Akshay Sonawane <[email protected]> Co-authored-by: quic-tirupath <[email protected]> Co-authored-by: quic-ashwshan <[email protected]>
Description
Add a new EP Dynamic option to set HTP performance mode after session creation.