Skip to content

Migrate Linux GPU pipelines to Github Actions #24232

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

Merged
merged 18 commits into from
Mar 28, 2025
Merged

Migrate Linux GPU pipelines to Github Actions #24232

merged 18 commits into from
Mar 28, 2025

Conversation

snnn
Copy link
Member

@snnn snnn commented Mar 28, 2025

  1. Migrate Linux GPU pipelines to Github Actions

@snnn snnn marked this pull request as ready for review March 28, 2025 19:38
@snnn snnn merged commit f430dce into main Mar 28, 2025
88 of 92 checks passed
@snnn snnn deleted the snnn/linux_ci2 branch March 28, 2025 20:11
quic-zhaoxul pushed a commit to CodeLinaro/onnxruntime that referenced this pull request Apr 17, 2025
TedThemistokleous added a commit to ROCm/onnxruntime that referenced this pull request Jun 5, 2025
Sync to Official Microsoft/Onnxruntime:main release tag for ROCm 7.0 builds

* [Shape Inference] Add shape inference for QLinearAdd and QLinearMul ops (#24090)

### Description
<!-- Describe your changes. -->

Support shape inference for QLinearAdd and QLinearMul ops which were
missing in symbolic_shape_infer.py

### 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. -->
This change is required to enable shape inference for models with
"QLinearAdd" ops which are defined in com.microsoft domain and the
shapes of which cannot be inferred using onnx shape_inference alone.

Fixes issue https://github.com/microsoft/onnxruntime/issues/24028

---------

Signed-off-by: Praveen G <[email protected]>

* [mobile] Add Android NuGet BrowserStack test to NuGet packaging pipeline (#23580)

### Description
Follow-up to #23551 

Adds the BrowserStack testing stage for Android to the NuGet packaging
pipeline.

This test tests that the NuGet package produced will be imported and
work correctly on an Android device

[Pipeline run that shows what a failing unit test would look
like](https://aiinfra.visualstudio.com/Lotus/_build/results?buildId=670961&view=results)

---------

Co-authored-by: Edward Chen <[email protected]>

* [CPU] Add fp16 support to sparse attention (#24015)

### Description
Add fp16 support to sparse attention


### Motivation and Context
Generalize models for CPU and GPU

* refactor mac CI pipelines (#24138)

### Description

This PR refactors the mac CI pipeline:

- Use composite action and reusable workflow to put together duplicated
code
- separate each EP

* Address Windows CUDA build issue (#24149)

### Description
Create a separate template overloads to address Windows Debug build
warning 'unreachable code'.

* [webgpu] add option to perserve device and enable in unittest (#24115)

### Description
This PR introduced a new WebGPU EP option `preserveDevice`.

Before this change, a WebGPU device will be destroyed when no inference
session uses it. The destroy of a WebGPU device will cleanup both buffer
cache and shader cache.

After this option is introduced, when the option is ON (default value is
OFF), the device will no longer be destroyed and will be always keep
alive. This is helpful in 2 scenarios:
- A server that will be always on
- unittest so that bugs of incorrect shader cache may be detected.
(thanks to @qjia7 for the suggestion)

* [js/web] allow bundler import condition for not bundling wasm (#24014)

### Description
<!-- Describe your changes. -->

This gives a way for webapp developers to customize the bundler behavior
regarding whether to bundle the wasm.

To avoid treating ort-wasm-threaded-simd.jsep.mjs and
ort-wasm-threaded-simd.jsep.wasm as dependencies during the process of
bundler build, use import condition `onnxruntime-web-use-extern-wasm`.

For webpack:
```
module.exports = {
  //...
  resolve: {
    conditionNames: ['onnxruntime-web-use-extern-wasm', 'import', 'module'],
  },
};

```

For esbuild:
```
await esbuild.build({
  //...
  conditions: ['onnxruntime-web-use-extern-wasm', 'import', 'module'],
})
```

For rollup:
```
import { nodeResolve } from '@rollup/plugin-node-resolve';

export default {
  //...
  plugins: [nodeResolve({
    exportConditions: ['onnxruntime-web-use-extern-wasm', 'import', 'module', 'development|production']
  })]
};
```


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

- #24009

* [js] Add API for accessing metadata of a model's input/output (#23937)

### Description

Add API for accessing metadata of a model's input/output.

Currently, The implementation is only applied to web assembly backend
and nodejs binding. For webgl, there is so far no plan to implement this
API; for react-native, the implementation will be done later and is not
included in this PR.

#### Example usage:

```js
const mySession = await ort.InferenceSession.create( ... );

console.log(`there are ${mySession.inputMetadata.length} inputs:`);
for (let i = 0; i < mySession.inputMetadata.length; i++) {
  let info;
  if (mySession.inputMetadata[i].isTensor) {
    info = `tensor: ${mySession.inputMetadata[i].type}, shape: ${mySession.inputMetadata[i].shape}`;
  } else {
    info = `non-tensor`;
  }
  console.log(`input ${i}: ${mySession.inputMetadata[i].name}: ${info}`);
}

```

possible output:
```
there are 1 inputs:
input 0: input: tensor: float32, shape: [batch, 3, 224, 224]

```

Resolves:
- #22682
- #22949

* add cache "onnxnodetests" for node tests (#24150)

### Description

add cache "onnxnodetests" for node tests

This fixes the random download network error for onnx node tests data.

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

* [Native WebGPU] Add Matmul (#24046)

### Description
Add Native Matmul (`MatMulNaive`, `MatMulPacked` and `MatMulPackedVec4`
)


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

* Upgrade Big Model pipeline CUDA from 11.8 to 12.x (#24156)

### Description
Big model pipeline are still using cuda 11.8. This update the pipeline
to use cuda 12.x.

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

* Proper Error Message when fp16 model is used for Beam Search in CPU (#24151)

### Description
Show proper error message when fp16 model is used for Beam Search in
CPU.

Before:
```
2025-02-15 20:15:02.999160115 [E:onnxruntime:, sequential_executor.cc:516 ExecuteKernel] Non-zero status code returned while running BeamSearch node. Name:'beam_search' Status Message: bad_function_call
```

After:
```
onnxruntime.capi.onnxruntime_pybind11_state.RuntimeException: [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Non-zero status code returned while running BeamSearch node. Name:'beam_search' Status Message: onnxruntime/onnxruntime/contrib_ops/cpu/transformers/beam_search.cc:309 virtual onnxruntime::common::Status onnxruntime::contrib::transformers::BeamSearch::Compute(onnxruntime::OpKernelContext*) const BeamSearch does not support float16 model on CPU execution provider. Use float32 model or CUDA execution provider instead.
```

### Motivation and Context
https://github.com/microsoft/onnxruntime/issues/23728

* Change type len from int to size_t (#24157)

### Description
As titled.



### Motivation and Context
We have the last MatMul in phi-4-mini onnx which is b_shape = {3072,
200064}
packed_b_size = MlasGemmPackBSize(N, K);
 it is `3072*200064*sizeof(float)=2458386432`
This is larger than 2,147,483,647, it is out of the int boundary on a
32-bit system. Then len is negative.
So we change the type to size_t, and the model can be loaded
successfully after the change.

* Limit the Pipeline ability to build cuda 11 (#24073)

### Description
Limit the Pipeline ability to build cuda 11. However, refernce to CUDA
11 is not complety removed in this PR. Will keep thme incase we decided
to support both cuda 13 and cuda 12 in the future.



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

* Move Linux CPU CI pipeline to Github Actions (#24154)

### Description
Move the x64 part of "Linux CPU CI pipeline" to Github Actions

* Bump vite from 6.2.1 to 6.2.3 in /js/web/test/e2e/exports/testcases/vite-default (#24167)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 6.2.1 to 6.2.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v6.2.3</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.2.3/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.2.2</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.2.2/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v6.2.3/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->6.2.3 (2025-03-24)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: fs raw query with query separators (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19702">#19702</a>)
(<a
href="https://github.com/vitejs/vite/commit/f234b5744d8b74c95535a7b82cc88ed2144263c1">f234b57</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19702">#19702</a></li>
</ul>
<h2><!-- raw HTML omitted -->6.2.2 (2025-03-14)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: await client buildStart on top level buildStart (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19624">#19624</a>)
(<a
href="https://github.com/vitejs/vite/commit/b31faab2a81b839e4b747baeb9c7a7cbb724f8d2">b31faab</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19624">#19624</a></li>
<li>fix(css): inline css correctly for double quote use strict (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19590">#19590</a>)
(<a
href="https://github.com/vitejs/vite/commit/d0aa833296668fc420a27a1ea88ecdbdeacdbce7">d0aa833</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19590">#19590</a></li>
<li>fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19613">#19613</a>)
(<a
href="https://github.com/vitejs/vite/commit/363d691b4995d72f26a14eb59ed88a9483b1f931">363d691</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19613">#19613</a></li>
<li>fix(indexHtml): ensure correct URL when querying module graph (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19601">#19601</a>)
(<a
href="https://github.com/vitejs/vite/commit/dc5395a27e44066ef7725278c4057d9f1071a53f">dc5395a</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19601">#19601</a></li>
<li>fix(preview): use preview https config, not server (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19633">#19633</a>)
(<a
href="https://github.com/vitejs/vite/commit/98b3160fa5916189e756cd7c5aae87e0d8f1978e">98b3160</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19633">#19633</a></li>
<li>fix(ssr): use optional chaining to prevent &quot;undefined is not an
object&quot; happening in `ssrRewriteStac (<a
href="https://github.com/vitejs/vite/commit/43097550a1aa8ff633c39fb197b5f9ac1222119b">4309755</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19612">#19612</a></li>
<li>feat: show friendly error for malformed <code>base</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19616">#19616</a>)
(<a
href="https://github.com/vitejs/vite/commit/2476391b2854aaa67d0ed317b6d0c462e68028f7">2476391</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19616">#19616</a></li>
<li>feat(worker): show asset filename conflict warning (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19591">#19591</a>)
(<a
href="https://github.com/vitejs/vite/commit/367d968fbf584e9f0e17192b816e92e8045c6217">367d968</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19591">#19591</a></li>
<li>chore: extend commit hash correctly when ambigious with a non-commit
object (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19600">#19600</a>)
(<a
href="https://github.com/vitejs/vite/commit/89a62873243805518b672212db7e317989c5c197">89a6287</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19600">#19600</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/16869d7c9917eb58d9a0101e30064ab65e64fa91"><code>16869d7</code></a>
release: v6.2.3</li>
<li><a
href="https://github.com/vitejs/vite/commit/f234b5744d8b74c95535a7b82cc88ed2144263c1"><code>f234b57</code></a>
fix: fs raw query with query separators (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19702">#19702</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/b12911edba0cd9edbad170a0940d37bb1e16ef2c"><code>b12911e</code></a>
release: v6.2.2</li>
<li><a
href="https://github.com/vitejs/vite/commit/98b3160fa5916189e756cd7c5aae87e0d8f1978e"><code>98b3160</code></a>
fix(preview): use preview https config, not server (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19633">#19633</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/b31faab2a81b839e4b747baeb9c7a7cbb724f8d2"><code>b31faab</code></a>
fix: await client buildStart on top level buildStart (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19624">#19624</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/dc5395a27e44066ef7725278c4057d9f1071a53f"><code>dc5395a</code></a>
fix(indexHtml): ensure correct URL when querying module graph (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19601">#19601</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/2476391b2854aaa67d0ed317b6d0c462e68028f7"><code>2476391</code></a>
feat: show friendly error for malformed <code>base</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19616">#19616</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/43097550a1aa8ff633c39fb197b5f9ac1222119b"><code>4309755</code></a>
fix(ssr): use optional chaining to prevent &quot;undefined is not an
object&quot; happe...</li>
<li><a
href="https://github.com/vitejs/vite/commit/363d691b4995d72f26a14eb59ed88a9483b1f931"><code>363d691</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19613">#19613</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/d0aa833296668fc420a27a1ea88ecdbdeacdbce7"><code>d0aa833</code></a>
fix(css): inline css correctly for double quote use strict (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19590">#19590</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite/commits/v6.2.3/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=6.2.1&new-version=6.2.3)](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)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/onnxruntime/network/alerts).

</details>

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

* [onnxruntime_perf_test] Fix custom_allocator_ destruction order. (#24136)

Move the allocator data member declaration before the `Ort::Value`
container data members that might use the allocator so that the
`Ort::Value` containers will be destroyed first.

`custom_allocator_` may be used as the allocator for the `Ort::Value`s
in `test_inputs_` and `outputs_`. The allocator shouldn't be destroyed
before `Ort::Value`s allocated with it are freed.

* Fix layout transformer for FusedConv (#24169)

### Description

Fix layout transformer for FusedConv.

The current layout transformer will transform `FusedConv` (kMSDomain)
into `FusedConv` (kMSInternalNHWCDomain) if the EP wants channels_last.

However, kMSInternalNHWCDomain uses OpType `Conv` for both Conv and
FusedConv, so `FusedConv` (kMSInternalNHWCDomain) is invalid
(unregistered op).

This PR fixes this and allows layout transformer change `FusedConv`
(kMSDomain) into `Conv` (kMSInternalNHWCDomain).

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

* Migrate Zip-Nuget Package Pipeline to 1ES (#23609) Also, kleidail is disabled in MacOS and iOS packaging stage due to (#24152) (#24153)

NuGet_Packaging_CPU is broken due to similar issue from #23923
### Description
Migrate [Zip-Nuget Package
Pipeline](https://aiinfra.visualstudio.com/Lotus/_build?definitionId=940&_a=summary)
to 1ES



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

### Check list

- [x] Issue with onnxruntime-Win-CPU-2022
- [x] [Spot
Bug](https://aiinfra.visualstudio.com/Lotus/_build/results?buildId=697830&view=logs&j=6c6a898f-bbbb-5c72-8695-82b606149fa2&t=433f102b-5ed3-5fed-87a0-6107744ce9b1&l=81)

* Update the min GCC version (#24148)

### Description
Update the min supported GCC version to 11.1. 


### Motivation and Context
In order to utilize new CPU instructions, we need to use new compilers.
For example, our MLAS code needs bfloat16 support for arm, which
requires GCC version >=10. And some other code requires GCC version
>=11.1.
Also, our CI pipelines only tests the code with GCC 11,12 and 14.
Therefore this PR increase the min GCC version to 11.1. Will update it
to 12 once we deprecate CUDA 11 pipelines

* [QNN EP] ARM64EC python package remove --vcpkg in build (#24174)

--use_vcpkg option seems to be causing problems for --arm64ec python
packages (onnxruntime-qnn)
session creation crashes for packages built with --use_vcpkg.
the released onnxruntime-qnn 1.21.0 python wheel for x64 (arm64ec) has
this issue.
removing --use_vcpkg while the issue is debugged in parallel. 
we plan to release a 1.21.1 onnxruntime-qnn x64 python wheel without
--use_vcpkg to address the crash.

https://github.com/microsoft/onnxruntime/issues/24082

* [WebGPU EP] Add GEMM implementation (#24023)

Increases operator GEMM for WebGPU ep.

---------

Co-authored-by: Xiaofei Han <[email protected]>
Co-authored-by: Yulong Wang <[email protected]>

* [wasm] remove --vcpkg in wasm build (#24179)

### Description

There are slightly mismatch for the build flags for Web build pipeline
when using vcpkg.

A [fix](https://github.com/microsoft/onnxruntime/pull/24012) is on the
way but for now we need to disable vcpkg for the next patch release.

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

* revise mac os pipeline to reduce the amount of jobs (#24177)

### Description

- remove x86_64/Debug build in the matrix to reduce the amount of jobs
- set max-parallel to 1 to avoid big backlogs (single PR will take
longer but less traffic in the pipeine)

* fix triggering for "Validate Gradle Wrapper" pipeline (#24181)

### Description

currently it is triggered on every branch.

* upgrade QNN to version 2.32.0.250228 (#23977)

### Description
upgrade QNN to latest version 2.32.0.250228

* [JSEP] adjust edge case logic for scatternd (#24172)

Fixes https://github.com/microsoft/onnxruntime/issues/24070 by
explicitly restricting single-threaded, sequential execution in the case
where `reduction=none && hasDuplicates`.

* Make the custom nuget packaging pipeline 1ES commpliant. (#24191)

* Disable KleidiAI in Python Packaging pipeline MacOS build (#24194)

This is a workaround for a build error. See https://github.com/microsoft/onnxruntime/issues/24152.

* Rolling back the python/cuda (#24170)

### Description
<!-- Describe your changes. -->



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

* Remove all CG template from pipelines (#24193)

### Description
Since we are adapting 1ES teamplate, we are remove the redundent CG
steps from our pipelines



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

* Move Linux ARM64 CI pipeline and Linux DNNL CI pipeline to Github Actions (#24190)

### Description
1. Move Linux ARM64 CI pipeline and Linux DNNL CI pipeline to Github
Actions
2. Refactor .github/workflows/linux_training.yml to use a template

### Motivation and Context

* [webgpu-ep] Fix test_batchnorm_example (#24184)

This fixes the missing component handling for the input and output
variables in BatchNorm operator.

* Further reduce work load for Mac CI pipeline (#24197)

### Description

Further reduce work load for Mac CI pipeline

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

* Generate unique names for SliceSplit fusion. (#24217)

### Description
Generate unique name for fused Split nodes.

### Motivation and Context
The bug is manifested when the model features more than one Slice to
Split fusion patterns and the nodes of the graph are nameless.

This addresses https://github.com/microsoft/onnxruntime/issues/24203.

* Fix the pipeline that failed because of vcpkg (#24226)

### Description
- Pin VCPKG version for Github Actions pipelines
- Update NDK to 28 because cmake 4.0 dropped the support for NDK 27.
- Disable vcpkg temporarily for 2 ADO pipelines.

* Improve Shape Inference for GQA (#24143)

### Description
<!-- Describe your changes. -->
For GroupQueryAttention op, if the input total_sequence_length is a
constant, we can infer the shape of output present_key/present_value
`(batch_size, kv_num_heads, present_sequence_length, head_size)`.


https://github.com/microsoft/onnxruntime/blob/5ed900e9712ce2f02e40c15b945d18453d1960d8/onnxruntime/contrib_ops/cpu/bert/group_query_attention_helper.h#L185

We know that from CPU EP, `present_sequence_length =
max(past_sequence_length, total_sequence_length)`, and `batch_size,
kv_num_heads, head_size` are the same as past_key/past_value.

This inference is very important for WebNN EP, because WebNN only
supports GQA for `present_sequence_length == past_sequence_length` and
requires static shape for graph compilation.

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

* Add React Native namespace back in for iOS (#24218)

### Description
- adds react native namespace back in to the androidmanifest.xml

### Motivation and Context
- reverses [this
commit](https://github.com/microsoft/onnxruntime/commit/d8ed4da1dfee781919247d9ce001f246489c8f90)
- missed [this
comment](https://github.com/microsoft/onnxruntime/blob/2656671064a83564ddf5766f3449c2406259c3ef/js/react_native/android/build.gradle#L141)
that explains that androidmanifest.xml is used for iOS while
androidmanifestnew.xml is used for android

* RoPE fp16 avx (#23772)

### Description
RoPE to work with fp16 data types



### Motivation and Context
this is need to improve GQA

---------

Signed-off-by: liqunfu <[email protected]>
Signed-off-by: Liqun Fu <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Migrate Linux GPU pipelines to Github Actions (#24232)

* Migrate Web CI into github actions (#24219)

### Description


This PR migrates the Web CI into github actions.

* update the readme doc for the tool ep_weight_sharing_ctx_gen (#24233)

### Description
update the readme to remove something Qnn specific for the tool
ep_weight_sharing_ctx_gen

---------

Co-authored-by: Edward Chen <[email protected]>

* [WebGPU EP] If Implementation for WebGPU EP (#24242)

Increases operator covereage for WebGPU EP.

* Update linux-dnnl.yml: rename the pipeline (#24240)

Update linux-dnnl.yml: rename the pipeline to Linux DNNL CI

* [webgpu] Fix test_layer_normalization_2d_axis0 (#24223)

The optional 'Mean' and 'InvStdDev' outputs of the LayerNormalization
were not implemented.

---------

Co-authored-by: Yulong Wang <[email protected]>

* [webgpu] fix LayerNorm with empty input (#24244)

### Description
This PR fixes test case `CudaKernelTest.LayerNorm_NullInput`, in which
the input is 0-sized for LayerNorm.

`context.Output()` need to be called before returning.

* Bump actions/setup-python from 4 to 5 (#24251)

* Bump actions/cache from 3 to 4 (#24250)

Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/releases">actions/cache's
releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update action to node20 by <a
href="https://github.com/takost"><code>@​takost</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1284">actions/cache#1284</a></li>
<li>feat: save-always flag by <a
href="https://github.com/to-s"><code>@​to-s</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1242">actions/cache#1242</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/takost"><code>@​takost</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1284">actions/cache#1284</a></li>
<li><a href="https://github.com/to-s"><code>@​to-s</code></a> made their
first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1242">actions/cache#1242</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v3...v4.0.0">https://github.com/actions/cache/compare/v3...v4.0.0</a></p>
<h2>v3.4.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump <code>@​actions/cache</code> to v4.0.2 by <a
href="https://github.com/robherley"><code>@​robherley</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v3.4.2...v3.4.3">https://github.com/actions/cache/compare/v3.4.2...v3.4.3</a></p>
<h2>v3.4.2</h2>
<h2>What's Changed</h2>
<blockquote>
<p>[!IMPORTANT]
As a reminder, there were important backend changes to release v3.4.0,
see <a href="https://github.com/actions/cache/releases/tag/v3.4.0">those
release notes</a> and <a
href="https://github.com/actions/cache/discussions/1510">the
announcement</a> for more details.</p>
</blockquote>
<ul>
<li>Bump <code>@​actions/cache</code> to v4.0.1 by <a
href="https://github.com/robherley"><code>@​robherley</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1554">actions/cache#1554</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v3.4.0...v3.4.2">https://github.com/actions/cache/compare/v3.4.0...v3.4.2</a></p>
<h2>v3.4.1</h2>
<blockquote>
<p>[!WARNING]
This version was incorrectly released using a SHA pointing to a newer
version for <em><a
href="https://redirect.github.com/github/roadmap/issues/592">immutable
actions</a> only</em>. Please use <code>v3.4.2</code> (or
<code>v3</code>) instead.</p>
</blockquote>
<h2>v3.4.0</h2>
<h2>⚠️ Important Changes</h2>
<p>The cache backend service has been rewritten from the ground up for
improved performance and reliability. <a
href="https://github.com/actions/cache">actions/cache</a> now integrates
with the new cache service (v2) APIs.</p>
<p>The new service will gradually roll out as of <strong>February 1st,
2025</strong>. The legacy service will also be sunset on the same date.
Changes in these release are <strong>fully backward
compatible</strong>.</p>
<p><strong>We are deprecating some versions of this action</strong>. We
recommend upgrading to version <code>v4</code> or <code>v3</code> as
soon as possible before <strong>February 1st, 2025.</strong> (Upgrade
instructions below).</p>
<p>If you are using pinned SHAs, please use the SHAs of versions
<code>v4.2.0</code> or <code>v3.4.0</code></p>
<p>If you do not upgrade, all workflow runs using any of the deprecated
<a href="https://github.com/actions/cache">actions/cache</a> will
fail.</p>
<p>Upgrading to the recommended versions will not break your
workflows.</p>
<p>Read more about the change &amp; access the migration guide: <a
href="https://github.com/actions/cache/discussions/1510">reference to
the announcement</a>.</p>
<h3>Minor changes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's
changelog</a>.</em></p>
<blockquote>
<h1>Releases</h1>
<h3>4.2.3</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.3 (obfuscates SAS token in
debug logs for cache entries)</li>
</ul>
<h3>4.2.2</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.2</li>
</ul>
<h3>4.2.1</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.1</li>
</ul>
<h3>4.2.0</h3>
<p>TLDR; The cache backend service has been rewritten from the ground up
for improved performance and reliability. <a
href="https://github.com/actions/cache">actions/cache</a> now integrates
with the new cache service (v2) APIs.</p>
<p>The new service will gradually roll out as of <strong>February 1st,
2025</strong>. The legacy service will also be sunset on the same date.
Changes in these release are <strong>fully backward
compatible</strong>.</p>
<p><strong>We are deprecating some versions of this action</strong>. We
recommend upgrading to version <code>v4</code> or <code>v3</code> as
soon as possible before <strong>February 1st, 2025.</strong> (Upgrade
instructions below).</p>
<p>If you are using pinned SHAs, please use the SHAs of versions
<code>v4.2.0</code> or <code>v3.4.0</code></p>
<p>If you do not upgrade, all workflow runs using any of the deprecated
<a href="https://github.com/actions/cache">actions/cache</a> will
fail.</p>
<p>Upgrading to the recommended versions will not break your
workflows.</p>
<h3>4.1.2</h3>
<ul>
<li>Add GitHub Enterprise Cloud instances hostname filters to inform API
endpoint choices - <a
href="https://redirect.github.com/actions/cache/pull/1474">#1474</a></li>
<li>Security fix: Bump braces from 3.0.2 to 3.0.3 - <a
href="https://redirect.github.com/actions/cache/pull/1475">#1475</a></li>
</ul>
<h3>4.1.1</h3>
<ul>
<li>Restore original behavior of <code>cache-hit</code> output - <a
href="https://redirect.github.com/actions/cache/pull/1467">#1467</a></li>
</ul>
<h3>4.1.0</h3>
<ul>
<li>Ensure <code>cache-hit</code> output is set when a cache is missed -
<a
href="https://redirect.github.com/actions/cache/pull/1404">#1404</a></li>
<li>Deprecate <code>save-always</code> input - <a
href="https://redirect.github.com/actions/cache/pull/1452">#1452</a></li>
</ul>
<h3>4.0.2</h3>
<ul>
<li>Fixed restore <code>fail-on-cache-miss</code> not working.</li>
</ul>
<h3>4.0.1</h3>
<ul>
<li>Updated <code>isGhes</code> check</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/cache/commit/5a3ec84eff668545956fd18022155c47e93e2684"><code>5a3ec84</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1577">#1577</a>
from salmanmkc/salmanmkc/4-test</li>
<li><a
href="https://github.com/actions/cache/commit/7de21022a7b6824c106a9847befcbd8154b45b6a"><code>7de2102</code></a>
Update releases.md</li>
<li><a
href="https://github.com/actions/cache/commit/76d40dd347779762a1c829bbeeda5da4d81ca8c1"><code>76d40dd</code></a>
Update to use the latest version of the cache package to obfuscate the
SAS</li>
<li><a
href="https://github.com/actions/cache/commit/76dd5eb692f606c28d4b7a4ea7cfdffc926ba06a"><code>76dd5eb</code></a>
update cache with main</li>
<li><a
href="https://github.com/actions/cache/commit/8c80c27c5e4498d5675b05fb1eff96a56c593b06"><code>8c80c27</code></a>
new package</li>
<li><a
href="https://github.com/actions/cache/commit/45cfd0e7fffd1869ea4d5bfb54a464d825c1f742"><code>45cfd0e</code></a>
updates</li>
<li><a
href="https://github.com/actions/cache/commit/edd449b9cf39c2a20dc7c3d505ff6dc193c48a02"><code>edd449b</code></a>
updated cache with latest changes</li>
<li><a
href="https://github.com/actions/cache/commit/0576707e373f92196b81695442ed3f80c347f9c7"><code>0576707</code></a>
latest test before pr</li>
<li><a
href="https://github.com/actions/cache/commit/3105dc9754dd9cd935ffcf45c091ed2cadbf42b9"><code>3105dc9</code></a>
update</li>
<li><a
href="https://github.com/actions/cache/commit/9450d42d15022999ad2fa60a8b91f01fc92a0563"><code>9450d42</code></a>
mask</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/cache/compare/v3...v4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/cache&package-manager=github_actions&previous-version=3&new-version=4)](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 will merge this PR once it's up-to-date and CI passes on it,
as requested by @fs-eire.

[//]: # (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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [QNN EP] Add platform-agnostic EP option to specify QNN backend, `backend_type` (#24235)

Add a platform-agnostic EP option to specify QNN backend,
`backend_type`. In typical usage, this should supersede the
`backend_path` EP option.

`backend_path` requires specifying a path to the QNN backend library
which is different between Windows and non-Windows platforms (e.g.,
QnnCpu.dll vs. libQnnCpu.so). It will not be removed for backwards
compatibility. It also provides the flexibility to specify an arbitrary
backend path.

* [webgpu] Fix opset-12 softmax nhwc issue (#24227)

### Description
<!-- Describe your changes. -->



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

* Extend pyright exclude list in pyproject.toml (#24246)

### Description

Improve the performance of file glob for pyright. This helps to improve
VSCode performance (if pyright plugin is installed)

* [js/web] Add Wasm Relaxed SIMD support to wasm backend (#22794)

### Description
<!-- Describe your changes. -->
Add Wasm Relaxed SIMD support. 
Use integer dot product instructions for QGemmU8X8.
1. Build with --enable_wasm_relaxed_simd
2. Use env.wasm.relaxedSimd to run it


### Motivation and Context
https://github.com/microsoft/onnxruntime/issues/22533

---------

Co-authored-by: Yulong Wang <[email protected]>

* Add shader key validation step in WebGPU CI pipeline (#24243)

### Description

This PR adds a shader key validation step to the WebGPU CI pipeline.

The shader key validation works in this way:

- first, run onnxruntime_test_all with verbose logging, dumping the logs
into a file
- then, parse the file and found WebGPU EP program logs. The log
contains the following information:
  - the shader cache key
  - the corresponding shader code
  
The script will aggregate those information and make sure for each cache
key, the corresponding shader code must be consistent.

To make the validation work, this PR also modified a few things:
- set the locale of `std::wclog` to ".UTF-8" to support Unicode
characters. Otherwise the logger will fail and no longer output future
logs. A fix is submitted in PR #24237 but there is a concern if this may
potentially break some users. Setting inside onnxruntime_test_all is
pretty safe.
- re-enable the WebGPU device auto collect which was introduced in
https://github.com/microsoft/onnxruntime/pull/24115. Now we have a
better way to detect cache key inconsistency.

### Next Step

The newly added test is marked as `continue-on-error: true`, which means
even if it failed it does not block the CI pipeline. We should fix those
failures one-by-one and eventually the test should pass. then we can
remove the `continue-on-error: true` flag.

* upgrade dawn version to 4cb1f9be152a4fa6bb695c08cd707ab078a1e2fb (#24247)

### Description

Bump version of Dawn to 4cb1f9be152a4fa6bb695c08cd707ab078a1e2fb.

### Changes to the patches to Dawn:

Removed patches because they are already merged into upstream or
resolved in a different way:
- (public) CMake fix to support Emscripten v4.0.3+
- (private) Fix external ref count for "external" device in emwgpu C++
implementation
- (private) Allow "external" buffer in emwgpu C++ implementation

Keep unchanged patches:
- (private) Remove hard-coded CMAKE_OSX_DEPLOYMENT_TARGET in Dawn's
CMake files

Rewritten patches:
- (public) Fix emwgpu C++ implementation for buffer destroy

### Corresponding changes in ORT

- Dawn API changes
  - follow changes to `wgpu::Limits`
- remove the usage of `DAWN_EMSCRIPTEN_TOOLCHAIN`
- use `wgpu::InstanceDescriptor` in `wgpu::Instance` creation in WASM
since it is supported now.

* Bump dsaltares/fetch-gh-release-asset from 1.1.0 to 1.1.2 (#24248)

Bumps
[dsaltares/fetch-gh-release-asset](https://github.com/dsaltares/fetch-gh-release-asset)
from 1.1.0 to 1.1.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dsaltares/fetch-gh-release-asset/releases">dsaltares/fetch-gh-release-asset's
releases</a>.</em></p>
<blockquote>
<h2>1.1.2</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: support unauthenticated requests by <a
href="https://github.com/maciekmm"><code>@​maciekmm</code></a> in <a
href="https://redirect.github.com/dsaltares/fetch-gh-release-asset/pull/59">dsaltares/fetch-gh-release-asset#59</a></li>
<li>fix: 61 - upgrade to node 20 by <a
href="https://github.com/dsaltares"><code>@​dsaltares</code></a> in <a
href="https://redirect.github.com/dsaltares/fetch-gh-release-asset/pull/63">dsaltares/fetch-gh-release-asset#63</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/maciekmm"><code>@​maciekmm</code></a>
made their first contribution in <a
href="https://redirect.github.com/dsaltares/fetch-gh-release-asset/pull/59">dsaltares/fetch-gh-release-asset#59</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/dsaltares/fetch-gh-release-asset/compare/1.1.1...1.1.2">https://github.com/dsaltares/fetch-gh-release-asset/compare/1.1.1...1.1.2</a></p>
<h2>1.1.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: 50 - actually default version to latest by <a
href="https://github.com/dsaltares"><code>@​dsaltares</code></a> in <a
href="https://redirect.github.com/dsaltares/fetch-gh-release-asset/pull/56">dsaltares/fetch-gh-release-asset#56</a></li>
<li>Bump json5 from 1.0.1 to 1.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/dsaltares/fetch-gh-release-asset/pull/55">dsaltares/fetch-gh-release-asset#55</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/dependabot"><code>@​dependabot</code></a> made
their first contribution in <a
href="https://redirect.github.com/dsaltares/fetch-gh-release-asset/pull/55">dsaltares/fetch-gh-release-asset#55</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/dsaltares/fetch-gh-release-asset/compare/1.1.0...1.1.1">https://github.com/dsaltares/fetch-gh-release-asset/compare/1.1.0...1.1.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dsaltares/fetch-gh-release-asset/commit/aa2ab1243d6e0d5b405b973c89fa4d06a2d0fff7"><code>aa2ab12</code></a>
fix: 61 - upgrade to node 20 (<a
href="https://redirect.github.com/dsaltares/fetch-gh-release-asset/issues/63">#63</a>)</li>
<li><a
href="https://github.com/dsaltares/fetch-gh-release-asset/commit/cdaf216b2a5baa0f20eecbf460912cc9947f2577"><code>cdaf216</code></a>
feat: support unauthenticated requests (<a
href="https://redirect.github.com/dsaltares/fetch-gh-release-asset/issues/59">#59</a>)</li>
<li><a
href="https://github.com/dsaltares/fetch-gh-release-asset/commit/5d24fa77c1ae2e1e1dea54677d267f127d5de53a"><code>5d24fa7</code></a>
chore: remove support notice</li>
<li><a
href="https://github.com/dsaltares/fetch-gh-release-asset/commit/a40c8b4a0471f9ab81bdf73a010f74cc51476ad4"><code>a40c8b4</code></a>
Bump json5 from 1.0.1 to 1.0.2 (<a
href="https://redirect.github.com/dsaltares/fetch-gh-release-asset/issues/55">#55</a>)</li>
<li><a
href="https://github.com/dsaltares/fetch-gh-release-asset/commit/5a71312bcb7a436e89a7dd26123cdbdd7b3df709"><code>5a71312</code></a>
fix: 50 - actually default version to latest (<a
href="https://redirect.github.com/dsaltares/fetch-gh-release-asset/issues/56">#56</a>)</li>
<li>See full diff in <a
href="https://github.com/dsaltares/fetch-gh-release-asset/compare/1.1.0...1.1.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dsaltares/fetch-gh-release-asset&package-manager=github_actions&previous-version=1.1.0&new-version=1.1.2)](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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump vite from 6.2.3 to 6.2.4 in /js/web/test/e2e/exports/testcases/vite-default (#24255)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 6.2.3 to 6.2.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v6.2.4</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.2.4/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v6.2.4/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->6.2.4 (2025-03-31)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: fs check in transform middleware (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19761">#19761</a>)
(<a
href="https://github.com/vitejs/vite/commit/7a4fabab6a3aa24c89144e15a13d78f92b52e588">7a4faba</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19761">#19761</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/037f801075ec35bb6e52145d659f71a23813c48f"><code>037f801</code></a>
release: v6.2.4</li>
<li><a
href="https://github.com/vitejs/vite/commit/7a4fabab6a3aa24c89144e15a13d78f92b52e588"><code>7a4faba</code></a>
fix: fs check in transform middleware (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19761">#19761</a>)</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite/commits/v6.2.4/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=6.2.3&new-version=6.2.4)](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)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/onnxruntime/network/alerts).

</details>

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

* [WebGPU EP] fixes bugs in split implementation (#24259)

Fixes the following errors:

```
[ONNXRuntimeError] : 1 : FAIL : WebGPU validation failed. Error while parsing WGSL: :48:1 error: unexpected token } ^    - While validating [ShaderModuleDescriptor]  - While calling [Device].CreateShaderModule([ShaderModuleDescriptor]).
```
```
[E:onnxruntime:sam, sequential_executor.cc:572 onnxruntime::ExecuteKernel] Non-zero status code returned while running Split node. Name:'/Split_1' Status Message: WebGPU validation failed. Error while parsing WGSL: :62:14 error: cannot index type 'u32' index -= uniforms.sizes_in_split_axis[output_number - 1u];
```

* Bump microsoft/onnxruntime-github-actions from 35f8bd42417991aa46577e9c32e445af4250f098 to f3d90afe522476c858909e0de2be0b12bc890068 (#24249)

Bumps
[microsoft/onnxruntime-github-actions](https://github.com/microsoft/onnxruntime-github-actions)
from 35f8bd42417991aa46577e9c32e445af4250f098 to
f3d90afe522476c858909e0de2be0b12bc890068.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/onnxruntime-github-actions/commit/f3d90afe522476c858909e0de2be0b12bc890068"><code>f3d90af</code></a>
update</li>
<li><a
href="https://github.com/microsoft/onnxruntime-github-actions/commit/fe4bffdebbaf16477883ba661ecfeeeb5703c85a"><code>fe4bffd</code></a>
update</li>
<li><a
href="https://github.com/microsoft/onnxruntime-github-actions/commit/2cf46f409099e5a27977bbece1c89f3d6dca6a1b"><code>2cf46f4</code></a>
update</li>
<li><a
href="https://github.com/microsoft/onnxruntime-github-actions/commit/bb6b16e409684ffd0f46b35e8e217ce6ed72097c"><code>bb6b16e</code></a>
update</li>
<li><a
href="https://github.com/microsoft/onnxruntime-github-actions/commit/0c8c2ab4b6ca3be3c8287a0e0549038ecca38d7d"><code>0c8c2ab</code></a>
update</li>
<li><a
href="https://github.com/microsoft/onnxruntime-github-actions/commit/f861fd3c0d13dedcf2fae39ad7023acaad97532d"><code>f861fd3</code></a>
update</li>
<li>See full diff in <a
href="https://github.com/microsoft/onnxruntime-github-actions/compare/35f8bd42417991aa46577e9c32e445af4250f098...f3d90afe522476c858909e0de2be0b12bc890068">compare
view</a></li>
</ul>
</details>
<br />


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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update xcode and iphoneSimulatorVersion after MacOS-14 (#24260)

### Description
Update xcode and iphoneSimulatorVersion after MacOS-14



### Motivation and Context
iOS packaging pipeline and Github Action were still using the old xcode
version after https://github.com/microsoft/onnxruntime/pull/23293

* Exclude onnxruntime-inference-examples directory from Component Gover… (#24258)

…nance

### Description
Exclude onnxruntime-inference-examples directory from Component
Governance


### Motivation and Context
onnxruntime-inference-examples is a extneral repos

* [VitisAI] Fixed include error. (#24199)

### Description
<!-- Describe your changes. -->
include mp11 as it is used for provider related headers


### 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. -->
VitisAI failed to be built on latest g++ version.

* Migrate pull:wasm to github action (#24269)

### Description

The ADO Web CI is migrated to Github Actions now. This PR makes the
corresponding changes to the `npm run pull:wasm` command to use the new
Github Action.



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

* Ensure to use correct GPU device in RunSince when it's invoked by new thread (#24192)

Running cuda kernel on incorrect GPU device will end up getting CUDA
error: `invalid resource handle.`

CUDA EP and TRT EP both have this issue when ExecutionMode::ORT_PARALLEL
is enabled.

Repro code:
````python

provider = [
        [
            ('TensorrtExecutionProvider', {
            'device_id': 0,
            }),
        ],
        [
            ('TensorrtExecutionProvider', {
            'device_id': 1,
            }),
        ]
       ]

class ThreadObj():
    def __init__(self, model_path: str, iterations: int, idx: int):
       ...
        sess_opt = ort.SessionOptions()
        sess_opt.execution_mode = ort.ExecutionMode.ORT_PARALLEL
        self.inference_session = ort.InferenceSession(model_path, sess_opt, provider[idx % 2])
     
    def warmup(self):
        self.inference_session.run(None, self.input)

    def run(self, thread_times, threads_complete):
        for iter in range(self.iterations):
            self.inference_session.run(None, self.input)

def thread_target(obj, thread_times, threads_complete):
    obj.run(thread_times, threads_complete)

...

iterations = 500
num_threads = 13
t_obj_list = []
thread_list = []

for tidx in range(num_threads):
    obj = ThreadObj(model_path, iterations, tidx)
    t_obj_list.append(obj)
    obj.warmup()
    
for t_obj in t_obj_list:
    thread = threading.Thread(target=thread_target, daemon=True, args=(t_obj,thread_times,threads_complete,))
    thread.start()
    thread_list.append(thread)

...
````
The reason is when the inference session is initialized, it can be bound
to device > 0, whereas when running the inference, i.e. RunSince can be
invoked by a new thread and new threads default to using device 0, then
we will hit the error of using the incorrect GPU device.
This PR provides a general fix for both CUDA EP and TRT EP to call
cudaSetDeivce in RunSince.

* Adding build-system to pyproject.toml (#24216)

* [WebGPU EP] Implements ceil mode for Average Pool  (#24270)

Ceil mode is required for rtdetr model.

The actual ceil mode calculation is already implemented in the
PoolAttributes::ComputeOutputSize() method from pool_attributes.h under
CPU EP.

* Pin vcpkg version (#24284)

### Description
Pin vcpkg version. Yesterday vcpkg-tool made a new release that broke
all our Linux pipelines.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Support load TensorRT V3 plugin (#24211)

### Description
TensorRT V3 plugin is not able to load in TensorRT EP. The change
deprecates `getPluginCreatorList` with `getAllCreators` to load V1 and
V3 plugin creators.

### 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. -->
Support load TensorRT plugin.

Reference:
https://github.com/NVIDIA/TensorRT/blob/8c6d69ddec0b2feff12f55472dc5d55cb6861d53/python/src/infer/pyPlugin.cpp#L2971C1-L2995C6

* Expose TRT preview features as EP option (#24212)

### Description
<!-- Describe your changes. -->

Expose TRT preview features as EP option.

### 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. -->
Add support to turn on TensorRT preview features. For example,
> If the IPluginV3OneBuildV2 build capability is used, the plugin can
also communicate to TensorRT that certain input-output pairs are aliased
(share the same data buffer). TensorRT will query
IPluginV3OneBuildV2::getAliasedInput to determine any such aliasing
behavior. To use this feature,
**PreviewFeature::kALIASED_PLUGIN_IO_10_03** must be enabled.

---------

Co-authored-by: Vcpkg Builder <builder@vcpkg>

* [webgpu] test_layer_normalization_3d_axis0_epsilon (#24276)

This uses dummy override shapes to bypass the 'components' check.

* [webgpu][dawn API optimization] reduce number of calls to wgpuDeviceHasFeature (#24281)

### Description

This PR is one of a series of changes for optimization of Dawn API
usage. Currently, the WebGPU EP has some suboptimal code paths that
result in unnecessary Dawn API calls. Reducing the number of calls to
those API will help improve the performance of the WebGPU EP, especially
on WebAssembly.

This PR optimizes the usage of `wgpuDeviceHasFeature`.

* Bump next from 15.2.3 to 15.2.4 in /js/web/test/e2e/exports/testcases/nextjs-default (#24283)

Bumps [next](https://github.com/vercel/next.js) from 15.2.3 to 15.2.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases">next's
releases</a>.</em></p>
<blockquote>
<h2>v15.2.4</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Match subrequest handling for edge and node (<a
href="https://redirect.github.com/vercel/next.js/issues/77474">#77474</a>)</li>
<li>exclude images and static media from dev origin check (<a
href="https://redirect.github.com/vercel/next.js/issues/77417">#77417</a>)</li>
<li>ensure /__next middleware URLs are included in the origin check (<a
href="https://redirect.github.com/vercel/next.js/issues/77416">#77416</a>)</li>
<li>remove direct ip/port bypass in dev origin check (<a
href="https://redirect.github.com/vercel/next.js/issues/77414">#77414</a>)</li>
<li>switch development origin verification to be opt-in rather than
opt-out (<a
href="https://redirect.github.com/vercel/next.js/issues/77395">#77395</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk"><code>@​ijjk</code></a> and <a
href="https://github.com/ztanner"><code>@​ztanner</code></a> for
helping!</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/804aa35c71cc65cf3ddc29cdadcd29f06b368285"><code>804aa35</code></a>
v15.2.4</li>
<li><a
href="https://github.com/vercel/next.js/commit/ecb72ee9ead86aaa1e3992b427bfb43b046aa08d"><code>ecb72ee</code></a>
Match subrequest handling for edge and node (<a
href="https://redirect.github.com/vercel/next.js/issues/77474">#77474</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/25f810b596cdb6875d1f068ae8d203f1a5df7a46"><code>25f810b</code></a>
exclude images and static media from dev origin check (<a
href="https://redirect.github.com/vercel/next.js/issues/77417">#77417</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/d9bcb833dd2a8dd5c13f30775d688f7015cd75b1"><code>d9bcb83</code></a>
ensure /__next middleware URLs are included in the origin check (<a
href="https://redirect.github.com/vercel/next.js/issues/77416">#77416</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/cfeaa86fa718f1fecce9fb5f5fad3c310117fc53"><code>cfeaa86</code></a>
remove direct ip/port bypass in dev origin check (<a
href="https://redirect.github.com/vercel/next.js/issues/77414">#77414</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/f84730266087817b39c9b87c42ccf1c3bb7de0c5"><code>f847302</code></a>
switch development origin verification to be opt-in rather than opt-out
(<a
href="https://redirect.github.com/vercel/next.js/issues/77395">#77395</a>)</li>
<li>See full diff in <a
href="https://github.com/vercel/next.js/compare/v15.2.3...v15.2.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=next&package-manager=npm_and_yarn&previous-version=15.2.3&new-version=15.2.4)](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)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/microsoft/onnxruntime/network/alerts).

</details>

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

* Bump image-size from 1.1.1 to 1.2.1 in /js/react_native/e2e (#24278)

Bumps [image-size](https://github.com/image-size/imag…
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.

2 participants