-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Add support for generating and validating compiled model compatibility info #25749
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
Conversation
…ion initialization
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.
You can commit the suggested changes from lintrunner.
onnxruntime/core/session/plugin_ep/ep_plugin_provider_interfaces.cc
Outdated
Show resolved
Hide resolved
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.
You can commit the suggested changes from lintrunner.
onnxruntime/core/session/plugin_ep/ep_plugin_provider_interfaces.cc
Outdated
Show resolved
Hide resolved
…es.cc Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
Hi @adrastogi / @adrianlizarraga - is GetCompiledModelCompatibility API going to be available for non-ABI interfaces as well? Do you have an ETA for this draft PR to merge? |
|
Hey @thevishalagarwal- yes, the implementation supports non-ABI interfaces as well. We're trying to get this in as soon as we can (pending a few loose ends that we're chasing down). In reply to: 3209754229 |
…ensure graph is fully initialized))
…y info (#25749) ### Description This pull request introduces a new mechanism for validating compiled model compatibility with execution providers (EPs) in ONNX Runtime. It adds infrastructure for EPs to generate and store compatibility information in model metadata, and for the runtime to enforce compatibility checks during session initialization. ### 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. --> The APIs proposed in this PR address two requirements: 1. Apps that have an already pre-compiled model on device need a way to determine if the pre-compiled app is still valid (given the EPs / drivers / etc. on the system). 2. Apps may have many different pre-compiled versions of a model stored on a remote server, and want to figure out which of those models they should download for the device where they are running. ### Testing Validated that the new suite of tests passes cleanly. Created a private build of this ORT and the AMD Vitis EP. I stepped through the core logic (the EP doesn't have this support wired up as yet so there is no compatibility info written out) and for regression purposes, confirmed I could compile and run inferences through ResNet. --------- Co-authored-by: Aditya Rastogi <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
### Description Cherry-pick the following PRs into the `rel-1.23.0` branch: - #25592 - #25622 - #25688 - #25729 - #25743 - #25769 - #25745 - #25761 - #25751 - #25716 - #25228 - #25768 - #25788 - #25747 - #25800 - #25818 - #25762 - #25749 - #25831 ### 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: quic-tirupath <[email protected]> Co-authored-by: quic-calvnguy <[email protected]> Co-authored-by: qti-kromero <[email protected]> Co-authored-by: Jeff Kilpatrick <[email protected]> Co-authored-by: Scott McKay <[email protected]> Co-authored-by: David Fan <[email protected]> Co-authored-by: kuanyul-qti <[email protected]> Co-authored-by: Dmitri Smirnov <[email protected]> Co-authored-by: Chi Lo <[email protected]> Co-authored-by: Edward Chen <[email protected]> Co-authored-by: Chunye Wang@AMD <[email protected]> Co-authored-by: minfhong-qti <[email protected]> Co-authored-by: Vishal Agarwal <[email protected]> Co-authored-by: Maximilian Müller <[email protected]> Co-authored-by: Maximilian Müller <[email protected]> Co-authored-by: Changming Sun <[email protected]> Co-authored-by: adrastogi <[email protected]> Co-authored-by: Aditya Rastogi <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…y info (microsoft#25749) ### Description This pull request introduces a new mechanism for validating compiled model compatibility with execution providers (EPs) in ONNX Runtime. It adds infrastructure for EPs to generate and store compatibility information in model metadata, and for the runtime to enforce compatibility checks during session initialization. ### 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. --> The APIs proposed in this PR address two requirements: 1. Apps that have an already pre-compiled model on device need a way to determine if the pre-compiled app is still valid (given the EPs / drivers / etc. on the system). 2. Apps may have many different pre-compiled versions of a model stored on a remote server, and want to figure out which of those models they should download for the device where they are running. ### Testing Validated that the new suite of tests passes cleanly. Created a private build of this ORT and the AMD Vitis EP. I stepped through the core logic (the EP doesn't have this support wired up as yet so there is no compatibility info written out) and for regression purposes, confirmed I could compile and run inferences through ResNet. --------- Co-authored-by: Aditya Rastogi <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…val and validation (#26699) ### Description Adds support for compiled model compatibility information retrieval and validation in the VitisAI EP. This enables runtime validation of compiled models against the execution environment to prevent failures and provide clear compatibility feedback. **Key Changes:** - Implemented `GetCompiledModelCompatibilityInfo` to collect and serialize compatibility metadata during model compilation - Added `ValidateCompiledModelCompatibilityInfo` to validate compatibility at runtime against the current environment ### Motivation and Context Compiled models may fail at runtime due to missing backend plugins, version mismatches, or hardware platform differences. The ONNXRuntime add 2 API for support compiled model compatibility validation system . Ref PRs: #25841 #25749 This PR implements a compatibility validation system for Vitis AI EP that: - Detects incompatibilities before model loading to prevent runtime failures - Enables cross-version compatibility checking between different EP versions - Provides clear feedback through specific compatibility status codes - Maintains backward compatibility with legacy EPs
…val and validation (#26699) ### Description Adds support for compiled model compatibility information retrieval and validation in the VitisAI EP. This enables runtime validation of compiled models against the execution environment to prevent failures and provide clear compatibility feedback. **Key Changes:** - Implemented `GetCompiledModelCompatibilityInfo` to collect and serialize compatibility metadata during model compilation - Added `ValidateCompiledModelCompatibilityInfo` to validate compatibility at runtime against the current environment ### Motivation and Context Compiled models may fail at runtime due to missing backend plugins, version mismatches, or hardware platform differences. The ONNXRuntime add 2 API for support compiled model compatibility validation system . Ref PRs: #25841 #25749 This PR implements a compatibility validation system for Vitis AI EP that: - Detects incompatibilities before model loading to prevent runtime failures - Enables cross-version compatibility checking between different EP versions - Provides clear feedback through specific compatibility status codes - Maintains backward compatibility with legacy EPs
…val and validation (#26699) ### Description Adds support for compiled model compatibility information retrieval and validation in the VitisAI EP. This enables runtime validation of compiled models against the execution environment to prevent failures and provide clear compatibility feedback. **Key Changes:** - Implemented `GetCompiledModelCompatibilityInfo` to collect and serialize compatibility metadata during model compilation - Added `ValidateCompiledModelCompatibilityInfo` to validate compatibility at runtime against the current environment ### Motivation and Context Compiled models may fail at runtime due to missing backend plugins, version mismatches, or hardware platform differences. The ONNXRuntime add 2 API for support compiled model compatibility validation system . Ref PRs: #25841 #25749 This PR implements a compatibility validation system for Vitis AI EP that: - Detects incompatibilities before model loading to prevent runtime failures - Enables cross-version compatibility checking between different EP versions - Provides clear feedback through specific compatibility status codes - Maintains backward compatibility with legacy EPs
Description
This pull request introduces a new mechanism for validating compiled model compatibility with execution providers (EPs) in ONNX Runtime. It adds infrastructure for EPs to generate and store compatibility information in model metadata, and for the runtime to enforce compatibility checks during session initialization.
Motivation and Context
The APIs proposed in this PR address two requirements:
Testing
Validated that the new suite of tests passes cleanly.
Created a private build of this ORT and the AMD Vitis EP. I stepped through the core logic (the EP doesn't have this support wired up as yet so there is no compatibility info written out) and for regression purposes, confirmed I could compile and run inferences through ResNet.