Skip to content

Conversation

@Jaswanth51
Copy link

Description

Synchronizing intel/onnxruntime ovep-develop branch with latest changes from microsoft/onnxruntime master branch.

adrianlizarraga and others added 15 commits September 26, 2025 01:24
…n assigned (microsoft#26156)

### Description
Fixes segfault in `PluginExecutionProvider::GetCapability()` when the
underlying `OrtEp` tries to claim nodes that have already been assigned
to another EP.


### Motivation and Context
Should log a warning (instead of crashing or throwing an exception) when
a plugin EP tries to claim a node that is already assigned to another
EP.

---------

Co-authored-by: Edward Chen <18449977+edgchen1@users.noreply.github.com>
Bumps
[actions/download-artifact](https://github.com/actions/download-artifact)
from 4 to 5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/407">actions/download-artifact#407</a></li>
<li>BREAKING fix: inconsistent path behavior for single artifact
downloads by ID by <a
href="https://github.com/GrantBirki"><code>@​GrantBirki</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/416">actions/download-artifact#416</a></li>
</ul>
<h2>v5.0.0</h2>
<h3>🚨 Breaking Change</h3>
<p>This release fixes an inconsistency in path behavior for single
artifact downloads by ID. <strong>If you're downloading single artifacts
by ID, the output path may change.</strong></p>
<h4>What Changed</h4>
<p>Previously, <strong>single artifact downloads</strong> behaved
differently depending on how you specified the artifact:</p>
<ul>
<li><strong>By name</strong>: <code>name: my-artifact</code> → extracted
to <code>path/</code> (direct)</li>
<li><strong>By ID</strong>: <code>artifact-ids: 12345</code> → extracted
to <code>path/my-artifact/</code> (nested)</li>
</ul>
<p>Now both methods are consistent:</p>
<ul>
<li><strong>By name</strong>: <code>name: my-artifact</code> → extracted
to <code>path/</code> (unchanged)</li>
<li><strong>By ID</strong>: <code>artifact-ids: 12345</code> → extracted
to <code>path/</code> (fixed - now direct)</li>
</ul>
<h4>Migration Guide</h4>
<h5>✅ No Action Needed If:</h5>
<ul>
<li>You download artifacts by <strong>name</strong></li>
<li>You download <strong>multiple</strong> artifacts by ID</li>
<li>You already use <code>merge-multiple: true</code> as a
workaround</li>
</ul>
<h5>⚠️ Action Required If:</h5>
<p>You download <strong>single artifacts by ID</strong> and your
workflows expect the nested directory structure.</p>
<p><strong>Before v5 (nested structure):</strong></p>
<pre lang="yaml"><code>- uses: actions/download-artifact@v4
  with:
    artifact-ids: 12345
    path: dist
# Files were in: dist/my-artifact/
</code></pre>
<blockquote>
<p>Where <code>my-artifact</code> is the name of the artifact you
previously uploaded</p>
</blockquote>
<p><strong>To maintain old behavior (if needed):</strong></p>
<pre lang="yaml"><code>&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/634f93cb2916e3fdff6788551b99b062d0335ce0"><code>634f93c</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/416">#416</a>
from actions/single-artifact-id-download-path</li>
<li><a
href="https://github.com/actions/download-artifact/commit/b19ff4302770b82aa4694b63703b547756dacce6"><code>b19ff43</code></a>
refactor: resolve download path correctly in artifact download tests
(mainly ...</li>
<li><a
href="https://github.com/actions/download-artifact/commit/e262cbee4ab8c473c61c59a81ad8e9dc760e90db"><code>e262cbe</code></a>
bundle dist</li>
<li><a
href="https://github.com/actions/download-artifact/commit/bff23f9308ceb2f06d673043ea6311519be6a87b"><code>bff23f9</code></a>
update docs</li>
<li><a
href="https://github.com/actions/download-artifact/commit/fff8c148a8fdd56aa81fcb019f0b5f6c65700c4d"><code>fff8c14</code></a>
fix download path logic when downloading a single artifact by id</li>
<li><a
href="https://github.com/actions/download-artifact/commit/448e3f862ab3ef47aa50ff917776823c9946035b"><code>448e3f8</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/407">#407</a>
from actions/nebuk89-patch-1</li>
<li><a
href="https://github.com/actions/download-artifact/commit/47225c44b359a5155efdbbbc352041b3e249fb1b"><code>47225c4</code></a>
Update README.md</li>
<li>See full diff in <a
href="https://github.com/actions/download-artifact/compare/v4...v5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=4&new-version=5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
)

### Description
Add a new EP Dynamic option to set HTP performance mode after session creation.

---------

Co-authored-by: quic-ashwshan <quic_ashwshan@quicinc.com>
### Description
Fix warnings in non-CUDA EP Windows builds


### 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. -->
 
Minor fix from microsoft#26102
This pull request introduces a new mechanism for handling tensor shape
information in ONNX Runtime, improving the representation and querying
of shape and symbolic dimension data. The changes add support for
tensors that may not have shape information, update APIs to reflect
this, and refactor internal shape handling logic for improved
consistency and extensibility.

### API and Core Logic Improvements

* Added a new API method `TensorTypeAndShape_HasShape` to `OrtApi` and
corresponding C++ wrapper `HasShape()` in `TensorTypeAndShapeInfoImpl`,
allowing users to check if a tensor has shape information.
[[1]](diffhunk://#diff-5845a5c76fb64abdc8f0cffe21b37f8da1712674eb3abc4cd87190891be1bd48R6583-R6590)
[[2]](diffhunk://#diff-17f64e8b38fcdcd25e90abcabeec4b420956b15fe63868a5d0b270c376bde209R1785)
[[3]](diffhunk://#diff-cc93f5f9d8078d3d3af14c9bb4c0c59e25a99f3ec75d7772ea20111ed7eb6ddeL1985-R1990)
* Updated all shape-related API implementations (e.g.,
`GetDimensionsCount`, `GetDimensions`, `GetSymbolicDimensions`,
`GetTensorShapeElementCount`) to properly handle the case when a tensor
does not have shape information, returning zero or empty values as
appropriate.

### Refactoring and Consistency

* Refactored `OrtTensorTypeAndShapeInfo` to store shape information in
an optional structure, and updated all related methods to use pointers
instead of direct objects, improving consistency and future
extensibility.
[[1]](diffhunk://#diff-4756b499067c0b1f266a64e07fcdc7e994fef5cef7f3bd68fe413d673cac7477L223-R282)
[[2]](diffhunk://#diff-e5038e85df9dca9aed186026cb784ccd367130f37ac046ffbc75958be81d343aR6)
* Updated methods for constructing shape/type info to accept pointers
and handle cases where shape may be absent, including changes in
`onnxruntime_typeinfo.cc` and related API calls.
[[1]](diffhunk://#diff-b149047a296b19c4da5ade443da01adc5fd9f1bf3458516f5d6ebd0940e0b0fbL173-R173)
[[2]](diffhunk://#diff-b149047a296b19c4da5ade443da01adc5fd9f1bf3458516f5d6ebd0940e0b0fbL184-R184)
[[3]](diffhunk://#diff-b149047a296b19c4da5ade443da01adc5fd9f1bf3458516f5d6ebd0940e0b0fbL197-R197)
[[4]](diffhunk://#diff-b149047a296b19c4da5ade443da01adc5fd9f1bf3458516f5d6ebd0940e0b0fbL306-R307)
[[5]](diffhunk://#diff-4756b499067c0b1f266a64e07fcdc7e994fef5cef7f3bd68fe413d673cac7477L279-R320)
[[6]](diffhunk://#diff-4756b499067c0b1f266a64e07fcdc7e994fef5cef7f3bd68fe413d673cac7477L305-R339)
[[7]](diffhunk://#diff-4756b499067c0b1f266a64e07fcdc7e994fef5cef7f3bd68fe413d673cac7477L347-R381)

### Graph and Proto Serialization

* Modified graph-to-proto conversion logic to propagate and respect the
presence or absence of shape information, ensuring that ONNX graph
serialization accurately reflects tensor shape status.
[[1]](diffhunk://#diff-43bd1f5614c593153ace5847907605341284e6025ce60dd9ec22b1fa7434b275L228-R229)
[[2]](diffhunk://#diff-43bd1f5614c593153ace5847907605341284e6025ce60dd9ec22b1fa7434b275R394-R397)
[[3]](diffhunk://#diff-43bd1f5614c593153ace5847907605341284e6025ce60dd9ec22b1fa7434b275L496-R511)
[[4]](diffhunk://#diff-43bd1f5614c593153ace5847907605341284e6025ce60dd9ec22b1fa7434b275R522)
[[5]](diffhunk://#diff-43bd1f5614c593153ace5847907605341284e6025ce60dd9ec22b1fa7434b275R539-R551)

These changes collectively improve the robustness and flexibility of
ONNX Runtime's handling of tensor shape information, and lay the
groundwork for supporting more dynamic and symbolic tensor shapes in
future development.
Prepare for blackwell feature work.
### Description
Add a build option for new kernels introduced in
microsoft#25580

### Motivation and Context
This enables building ORT with NCHWc ARM kernels.
At the time of writing, it is turned OFF by default because its
performance relative to "regular" NCHW kernels
is not good at smaller thread counts. But its speed-up is non-negligible
with higher thread counts on supporting
ARM platforms.
Once the gap is closed for smaller thread counts, it can be turned on by
default.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Only allows int64 data type when current WebNN context totally doesn't
support int64 but support int32.
…ings (microsoft#26201)

This pull request addresses two build warnings that were treated as
errors:

1.  **`maybe-uninitialized` warning in `nchwc_transformer.cc`**:
A `maybe-uninitialized` warning was triggered when accessing
`nchwc_inputs[0]` without checking if `nchwc_inputs` was empty. This
could lead to a crash if a binary node had no inputs. The fix adds a
check to ensure the vector is not empty before accessing the first
element.

2.  **`range-loop-construct` warnings in `transformer_memcpy.cc`**:
The compiler warned about creating copies of objects in range-based for
loops. This was resolved by using references (`const auto&`) instead of
copies (`const auto`) for the loop variables, which is more efficient.

This fix was provided by an AI bot.
### Description
<!-- Describe your changes. -->

Use of the KleidiAI library is not supported on all platforms. Previously, this support detection was done in both
`tools/ci_build/build.py` and `cmake/CMakeLists.txt`. This change consolidates and simplifies the checks. They are now done in one place in the CMake logic.

Move setting of onnxruntime_target_platform into a separate file.

### 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. -->

Clean up and simplify.
GEMM has 2D input, when given `axis=-1` in DequantizeLinear node
attributes. The check `axis == expected_axis` would fail. However, it
sematically the same (-1 and 1 for 2D GEMM's input). Normalize the check
so we can still perform the quantization for this case.

---------

Co-authored-by: Edward Chen <18449977+edgchen1@users.noreply.github.com>
### Description
The `MLAS_USE_SVE` macro was missing for some unittests/benchmark
targets. In the original PR, it was scoped down to just the mlas target
and this resulted in different mlas platform struct definitions across
targets.

### Motivation and Context
Fix pipeline crash and unblock daily pipeline run
microsoft#25238 (change that introduced the issue)
WebNN spec changed the output names of `gru` and `lstm` for
`OpSupportLimits` in
webmachinelearning/webnn#857, renamed them in
WebNN EP as well.
@Jaswanth51 Jaswanth51 requested a review from ankitm3k October 1, 2025 03:38
@ankitm3k ankitm3k merged commit 2d82713 into ovep-develop Oct 1, 2025
6 of 8 checks passed
@ankitm3k ankitm3k deleted the sync_msft_01102025 branch October 1, 2025 05:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.