Repository navigation
[DO NOT MERGE] Copy of #2717 - #2726
Draft
Xiaoyu Z (xiaoyu-work) wants to merge 16 commits into
Draft
Xiaoyu Z (xiaoyu-work) wants to merge 16 commits into
Xiaoyu Z (xiaoyu-work) wants to merge 16 commits into
Conversation
…on handling - Validate package_name and package_name + package_suffix as single path components - Set source_model_path for single-model OpenVINO EPContext output so ORTModelPackage defaults work - Reject update_genai_config/genai_config_role for OpenVINO instead of ignoring them - Share typed session option handling (log_severity_level, log_verbosity_level) with the plugin EP path
Xiaoyu Z (xiaoyu-work)
force-pushed
the
feature/openvino-model-package
branch
from
November 4, 2026 21:54
9bc198e to
579e7e1
Compare
- Register onnxruntime-ep-openvino automatically in maybe_register_ep_libraries when no library path is configured. - Lower the plugin-EP ORT floor to 1.23; require 1.30 only for ep.enable_weightless and call ModelCompiler.set_ep_context_binary_information only when the binding exists. - Select OrtEpDevices by the accelerator's device type and compare device ids numerically (case, 0x prefix, leading zeros, integers); reject malformed ids. - Validate the compiled output (EPContext nodes present, referenced binaries exist) and remove the partial output of a failed attempt so the output path can be retried. - Move the model-package doc under docs/source, add ORTModelPackage to the pass reference and add an openvino-ep install extra. - Fix lint findings in the new tests.
fix CI build errors EPContextBinaryGenerator: - Type compile_flow as Literal["aot", "jit"]; reject jit with model_compiler_options before registering the plugin - Accept integer enum values for model_compiler_options and validate bool/int options strictly via pydantic TypeAdapter - Move the virtual NPU preference out of the generic _select_ep_device into an OpenVINO prefer_ep_devices hook that logs when it fires - Keep device_id with npu_platform in per-target device filters - Require the metadata key to exist when matching ep_device_filters - Record ep_device_filters and provider_options on target_devices components and the composite, matching the single-target path ORTModelPackage: - Normalize session_options to string values as ORT requires at load - Add provider_options, written to executor_info.ort.provider_options - Treat a missing EPContext embed_mode as embedded (schema default 1) - Raise a clear error for an invalid variant_name_template - Prefer a public get_compatibility_info_from_model when available Port the #2732 tests for incomplete output cleanup, existing-output refusal, option parsing and plugin discovery, and update the docs.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe your changes
Exact, destination-owned copy of the latest #2717 for independent tracking. Do not merge this draft. Upstream commits were copied without implementation edits, merges, or cherry-picks.
preetha-intel/Olive:feature/openvino-model-packagemicrosoft/Olive:feature/openvino-model-packagemaind4b86dee727c04e42ee705c16d1737706ba2e2b0The copied change extends
EPContextBinaryGeneratorwith OpenVINO AOT/JIT compilation and introduces the EP-agnosticORTModelPackagepass. The latter uses ONNX Runtime's ModelPackage authoring API (ORT >= 1.32) to assemble precompiled EPContext variants and shared assets into.ortpackageoutputs. The latest source also includes automatic OpenVINO plugin registration, normalized device selection, EPContext option handling, and failed-compilation cleanup.An earlier synchronization replaced divergent copied history using an explicitly approved
--force-with-lease, checking the previous destination head9bc198eff22a2dcd4308278f4ac236b4a65e77ac. This refresh uses a normal fast-forward. The original PR remains unchanged.Copy verification: All four commands below passed and resolved to the preserved head:
Unit tests, model execution, and
lintrunner -awere not run for this copy-only synchronization; the upstream implementation has not been revalidated. The existing dirty worktree was left onmainwithout checking out the copied branch or modifying its files.Release note: Add EP-agnostic ONNX Runtime model-package assembly and OpenVINO EPContext compilation through
EPContextBinaryGenerator.Checklist before requesting a review
lintrunner -a(Optional) Issue link
Original PR: #2717