Skip to content

[Plugin EP] Preserve streams in single-tensor data transfers - #32666

Merged
Xiaofei Han (xiaofeihan1) merged 1 commit into
microsoft:mainfrom
xiaofeihan1:xiaofeihan-microsoft-plugin-ep-stream-forwarding
Sep 17, 2026
Merged

Xiaofei Han (xiaofeihan1) merged 1 commit into
microsoft:mainfrom
xiaofeihan1:xiaofeihan-microsoft-plugin-ep-stream-forwarding

Conversation

@xiaofeihan1

Copy link
Copy Markdown
Contributor

Description

Forward the caller's stream through the Plugin EP single-tensor CopyTensorImpl path. This matches the existing batched-copy behavior while preserving a null stream for synchronous copies.

Adds focused callback regression coverage for asynchronous, synchronous, and batched copies.

Motivation and Context

The single-tensor Plugin EP data-transfer path discarded the supplied stream, preventing asynchronous copies from receiving the execution stream.

Fixes #32643

Forward the caller's stream through CopyTensorImpl, matching the existing batch path while preserving null streams for synchronous copies. Add focused callback regression coverage for async, sync, and batch copies.

Fixes microsoft#32643

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings September 17, 2026 05:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The focused fix matches existing batched behavior and is adequately covered by regression tests.

Pull request overview

Forwards execution streams through Plugin EP single-tensor transfers, preserving asynchronous operation ordering.

Changes:

  • Passes the supplied stream to the Plugin EP callback.
  • Adds regression coverage for asynchronous, synchronous, and batched copies.
  • No actionable issues identified.
File summaries
File Description
onnxruntime/core/framework/plugin_data_transfer.cc Forwards the stream in single-tensor copies.
onnxruntime/test/framework/data_transfer_manager_test.cc Verifies stream forwarding across copy paths.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@xiaofeihan1
Xiaofei Han (xiaofeihan1) merged commit 5899c7c into microsoft:main Sep 17, 2026
90 checks passed
adrastogi pushed a commit that referenced this pull request Sep 28, 2026
### Description

Forward the caller's stream through the Plugin EP single-tensor
`CopyTensorImpl` path. This matches the existing batched-copy behavior
while preserving a null stream for synchronous copies.

Adds focused callback regression coverage for asynchronous, synchronous,
and batched copies.

### Motivation and Context

The single-tensor Plugin EP data-transfer path discarded the supplied
stream, preventing asynchronous copies from receiving the execution
stream.

Fixes #32643

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
(cherry picked from commit 5899c7c)
Tianlei Wu (tianleiwu) added a commit that referenced this pull request Sep 29, 2026
This cherry-picks the following commits for the release:

* #32610
* #32633
* #32641
* #32611
* #32609
* #32607
* #32679
* #32681
* #32666

CI fixes:

* #32491 (installs `uuid-dev` for the Linux minimal-build CoreML job;
that check also fails on the `rel-1.28.3` base)
* Raise the Android minimal baseline binary-size threshold from
1,440,768 to 1,443,840 bytes (release branch only). The checks added by
these fixes grow the minimal build from 1,440,538 to 1,443,098 bytes
(+2,560).

All picks except #32607 applied cleanly with `git cherry-pick -x`, in
the order they merged into main (#32666 was added afterward).

#32607 required a manual backport because `bert_defs.cc` has diverged on
main since 1.28 branched:
- `GroupQueryAttention` / `SparseAttention`: backported as-is
(`total_sequence_length_index` of 6 / 7, plus the single-element check).
The GQA call site in 1.28 has no `sliding_window_cache`, so it only gets
the new argument.
- `CausalConvWithState`: the 1.28 schema predates `channels_last`,
`state_window`, and `dilation`. Only the `ndim` in [1, 3] check and the
`weight`/`input` rank == `ndim + 2` checks are backported. These match
what the 1.28 CPU kernel already enforces.
`ChannelsLastInputRankBelowThreeIsRejected` is dropped.
- `GatedDeltaNet`: this op does not exist on 1.28.3, so its hunk and
test are dropped.

Validation (Windows x64, CPU EP, RelWithDebInfo):
- All 14 regression tests added by these PRs pass.
- `onnxruntime_test_all`: 1848 tests (including #32666's
`PluginCopiesForwardStreams`), 0 failures.
- `onnxruntime_provider_test`: 5370 tests, 0 failures.

---------

Co-authored-by: Wei Wang <wei4.wang@intel.com>
Co-authored-by: shiyi <shiyi.zou@intel.com>
Co-authored-by: Bin Miao <bin.miao@intel.com>
Co-authored-by: Bryan B <bryan.bernhart@intel.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: tianleiwu <30328909+tianleiwu@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Xiaofei Han <xiaofeihan@microsoft.com>
Xiaofei Han (xiaofeihan1) added a commit that referenced this pull request Oct 10, 2026
…and serialized execution (#33082)

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

Restore WebGPU plugin compatibility starting with **ORT 1.24.4**, while
retaining **Session-owned command recording in both execution modes**.
The additional real-host matrix below found an unresolved **ORT 1.26.0
host-side rejection**; this is not a claim that every intervening
release currently works.

- Each Session exclusively owns its recording through `unique_ptr`;
there is no context-owned shared legacy recording.
- Select the older-host compatibility policy with
`UseSerializedExecutionMode()` and `ShouldUseSerializedExecutionMode()`,
now isolated in `ep/runtime_compatibility.h/.cc` rather than the stream
implementation.
- In serialized mode, Session `Alloc` and matching `AllocOnStream` use
`!IsRunActive()` to submit cached-buffer clears outside Run and defer
them during Run. Kernel scratch uses ordinary Tensor allocation through
the same allocator, without an `AllocForKernel` API or the unavailable
old-host `KernelContext_GetSyncStream`.
- Env allocations and concurrent-mode ordinary Session allocations
retain independent, immediately submitted clears. Cached-buffer clearing
and kernel dispatch batching remain enabled.
- For streamless framework copies, submit pending active-Session work
before recording the copy independently. The context borrows a
non-owning pointer to that recording; it does not own or share the
command state. Session teardown discards only that Session's pending
entries.
- Remove the context-wide Run gate and rely on the required
caller-serialization contract. `SerialRunsAfterRejectedStreamOverride`
covers a rejected stream override followed by successful serial Runs on
both the affected Session and another Session.

| Host ORT version | Default execution mode |
| --- | --- |
| 1.26.0 | Currently blocked by the host's plugin-version check; see
validation below |
| 1.28.x starting at 1.28.3 | Concurrent independent Sessions |
| 1.30.x starting at 1.30.1 | Concurrent independent Sessions |
| 1.31 and later | Concurrent independent Sessions |
| Other supported versions, including all 1.29.x | Serialized
compatibility |

Set `ORT_WEBGPU_EP_FORCE_LEGACY=1` **before plugin registration** to
force serialized compatibility. The existing override and
`onnxruntime_webgpu_legacy_test` CTest name are retained for
compatibility; neither implies shared recording. The override cannot
enable concurrency on an unsupported host.

**Serialized mode requires callers to serialize all WebGPU operations on
the same device**, including Session creation/destruction, Run,
allocation, I/O binding, and Env transfers. Use sequential graph
execution. This is not a fixed-CPU-thread requirement, and the plugin
neither detects nor serializes overlapping operations. Callback reentry
remains unsupported.

#### Input/output copy ordering

ORT 1.24.4 forwards supplied streams through batched `CopyTensors`; its
separate single-tensor wrapper drops the stream. `BindInput` uses a
single-input copy, and mixed source/destination device pairs can make a
batch fall back to individual copies.

| Path | Ordering mechanism |
| --- | --- |
| `BindInput` outside Run, CPU to GPU | Allocation submits any
cached-buffer clear before returning, including through `AllocOnStream`.
A subsequent streamless upload is ordered after it on the device queue;
no active Run pointer is needed. |
| Input copy during Run, CPU to GPU | With a stream, the clear and
upload use the same Session recording. Without a stream, flush the
active Session first, then upload using a local recording. |
| Output copy during Run, GPU to CPU | Submit the producer before
readback, either through its explicit stream or the active-Session
pre-copy flush. This does not depend on `OnRunEnd`, which occurs after
output copies. |
| Mixed-direction inputs/outputs | Each streamless copy follows the same
submission boundary if the old host falls back to individual copies. |
| Streamless GPU-to-GPU copy within one context | Submit preceding
active Session work, then submit the local copy before returning.
Cross-context copies remain unsupported. |

These are submission boundaries, not per-kernel CPU waits. Readback
retains its existing completion wait. Compared with a shared recording,
a streamless copy with pending Session work can require an additional
queue submission; performance equivalence has not been established.

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

Allow independently distributed WebGPU plugins to support older
applications without requiring the host-side single-copy
stream-forwarding fix in #32666. Builds on #32874.

Following review, the implementation now keeps Session-owned recording
rather than introducing a second ownership model for old hosts. A real
ORT 1.24.4 mixed-output repro demonstrated the missing submission
boundary: an independent GPU Neg branch fetched to CPU returned 0
instead of -1 when the Session's pending computation was not submitted
before a streamless readback. The other independent CPU branch was
fetched to GPU, triggering mixed-direction single-copy fallback. Both
targets and the GPU input were preallocated. Adding the boundary makes
both output orderings pass; this shows the need for ordering
coordination, not shared recording ownership.

The alternative developed in #33228 has been incorporated here, and that
duplicate PR is closed. This revision includes upstream `main` at
`e19a9ae831`.

**Scope:** Removing the context-wide gate avoids permanently blocking
other Sessions when a host error skips `OnRunEnd`. It does not guarantee
recovery of all unfinished Run/capture state. Clarifying the host's
`OnRunStart`/`OnRunEnd` error-path contract and complete failed-replay
recovery remain separate follow-up work.

### Validation

Validated commit **`20ff4e2f63`** on Windows x64 Release with the shared
WebGPU plugin and EP API adapters. Current-host tests use ORT
**1.32.0**. `W:` was a temporary mapping to this worktree and was
removed afterward.

**Build: passed.**

```powershell
cmake --build W:\build\WebGpuCompat\Release --config Release --target onnxruntime_providers_webgpu onnxruntime_provider_test --parallel 8 -- /nologo /verbosity:minimal
```

**Serialized compatibility: 41 executed tests passed, no failures or
skips.** CTest sets `ORT_WEBGPU_EP_FORCE_LEGACY=1` before loading the
plugin and selects serial-safe cases.

```powershell
Set-Location W:\build\WebGpuCompat\Release
ctest -C Release -R '^onnxruntime_webgpu_legacy_test$' --output-on-failure
```

**Concurrent-mode selection: 57 executed tests passed, no failures or
skips.** Two pre-existing disabled diagnostic tests were not enabled in
either selection.

```powershell
Set-Location W:\build\WebGpuCompat\Release\Release
$env:ORT_UNIT_TEST_MAIN_DYNAMIC_PLUGIN_EP_CONFIG_JSON='{"ep_library_registration_name":"WebGPU_PluginEP","ep_library_path":"onnxruntime_providers_webgpu.dll","selected_ep_name":"WebGpuExecutionProvider"}'
$env:ORT_WEBGPU_EP_FORCE_LEGACY='0'
.\onnxruntime_provider_test.exe '--gtest_filter=WebGpuPluginRecordingModeTest.*:WebGpuPluginSharedAllocatorRegistrationTest.*:WebGpuPluginSharedAllocatorTest.*:WebGpuSessionAllocatorDeathTest.*:PluginEpWebGpuConcurrency.*'
```

Coverage includes version boundaries, allocation-clear submission,
scratch batching, serial and concurrent capture/replay, mixed
feeds/fetches, and serial Runs after a rejected stream override.

**Actual ORT 1.24.4: all 9 local-harness scenarios passed, 20 iterations
each.** The standalone API-24 C++ probe loaded the official 1.24.4 DLL
and the plugin rebuilt from this commit; profiles confirmed CPU/WebGPU
node placement. Cases cover CPU I/O, dirty-buffer BindInput,
mixed-direction inputs and outputs in both orders, GPU-to-CPU-to-GPU
graph execution, scratch reuse, and capture-enabled execution.

The following invocation used the existing local
`recording-ownership-probe` directory (`$probe`); this harness is not
part of the repository or CI:

```powershell
$variant='serialized-policy-20ff4e2f63'
$dest=Join-Path $probe $variant
$env:ORT_WEBGPU_EP_FORCE_LEGACY='1'
python "$probe\run_probe.py" $variant "$dest\onnxruntime_providers_webgpu.dll"
```

**Capture limitation:** the actual 1.24.4 run exercised initial capture
and its internal replay. Its subsequent Runs did not exercise
host-driven replay, because that host lacks the plugin capture/replay
callbacks. Repeated host-driven replay was covered by the current-host
tests above.

Other operating systems and performance benchmarks were not tested in
the above `20ff4e2f63` validation.

#### Additional local validation at `62e3504c2e`

Removed only the redundant pre-capture `OnRunStart` flush.
`CaptureBegin` still flushes before entering capture; streamless-copy,
Run-end, and standalone replay submission boundaries are unchanged. The
plugin rebuilt successfully, and the three focused serialized capture
tests passed:

```powershell
$env:ORT_UNIT_TEST_MAIN_DYNAMIC_PLUGIN_EP_CONFIG_JSON='{"ep_library_registration_name":"WebGPU_PluginEP","ep_library_path":"onnxruntime_providers_webgpu.dll","selected_ep_name":"WebGpuExecutionProvider"}'
$env:ORT_WEBGPU_EP_FORCE_LEGACY='1'
.\onnxruntime_provider_test.exe '--gtest_filter=PluginEpWebGpuConcurrency.SerialGraphCaptureWithCpuFeedsAndFetches:PluginEpWebGpuConcurrency.SerialSingleSessionMultipleGraphCaptureIds:PluginEpWebGpuConcurrency.GraphCaptureReplayInterleavedWithIdleSessionCpuBindInput'
```

A separate local matrix used **one unchanged plugin DLL** with official
Windows x64 cores 1.24.4, 1.25.1, 1.26.0, 1.27.1, 1.28.3, 1.29.1, and
1.30.0, plus the local 1.32.0 Release core. Loaded module paths, actual
core versions, and plugin hashes were checked.

- **Native copy/allocation/capture probe: 63 scenarios passed, 9
failed**, with 20 iterations per scenario. All nine scenarios passed on
every tested core except 1.26.0. That core rejects
`OrtEp::ort_version_supported=32` because its kernel-creation check
requires a value no greater than 26. This host restriction remains
unresolved; forcing serialized mode does not address it.
- **Capture support differs from execution-mode eligibility.** In the
simple native capture probe, 1.24.4 and 1.25.1 performed one initial
internal replay; the other passing cores performed repeated host-driven
replay.
- **Local Phi-4 workload, capture OFF:** all seven usable cores passed
fresh-generator repeatability, serially interleaved-generator checks,
multi-turn checks, and a repeated exact 1024-input/300-output-token
workload. An isolated GenAI build compiled against API 24 was held fixed
across cores; the normal installed package requires API 29. Performance
measurements used two warmups and five measured runs, generator reuse
and shared KV buffers, with profiling disabled.
- **Capture ON is not valid for this model graph.** It contains an `If`
node. Tested cores from 1.26 onward reject capture at Session
initialization. On 1.24.4 and 1.25.1, initialization succeeds but
generated tokens differ after rewinding and repeating the same prompt.
This also reproduces without profiling and with the pre-cleanup
`20ff4e2f63` plugin, so it was not introduced by removing the redundant
flush. No capture-ON throughput is reported for this model.
- **Performance interpretation:** default core graph optimizations were
retained; newer cores use additional MLP fusion. Cross-version
throughput is therefore not an isolated measurement of serialized-mode
overhead. Generated tokens were repeatable within each core but not
identical between the older and newer optimizer groups.

The matrix scripts and model are session-local, not checked into the
repository or run by CI. `$matrix` below refers to the isolated
`phi4-core-matrix` artifact directory:

```powershell
python "$matrix\run_native.py"                   # failed overall: 63 passed, 9 failed on 1.26.0
python "$matrix\run_phi4.py" --phase smoke        # failed overall: 7 passed, 9 unsupported/failing combinations
python "$matrix\run_phi4.py" --phase correctness # passed: 21 checks; failing smoke combinations excluded
python "$matrix\run_phi4.py" --phase benchmark   # completed: 7 capture-OFF configurations; failing smoke combinations excluded
```

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b6fbaacb-9846-4330-8fb3-2f0b13737d48
Copilot-Session: 8ca4e5fc-8c08-46bd-82a9-5cff5108efed
Franklin Moormann (ooples) pushed a commit to ooples/AiDotNet that referenced this pull request Oct 13, 2026
Updated
[Microsoft.ML.OnnxRuntime](https://github.com/Microsoft/onnxruntime)
from 1.30.0 to 1.31.0.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.ML.OnnxRuntime's
releases](https://github.com/Microsoft/onnxruntime/releases)._

## 1.31.0

ONNX Runtime 1.31.0 stabilizes model-package and EPContext data APIs,
improves CPU model loading and quantized MoE inference, expands
device-based execution-provider selection, and strengthens model-loading
and runtime reliability. These notes cover changes since ONNX Runtime
1.30.0. CUDA and WebGPU kernel updates are summarized here; detailed
provider notes are covered by their separate plugin EP releases.

## Highlights

- Promoted the model-package API and EPContext data callbacks to stable
C and C++ APIs, with EPContext callback support added across language
bindings
([#​33166](microsoft/onnxruntime#33166),
[#​32265](microsoft/onnxruntime#32265)).
- Reduced CPU session-initialization overhead by parallelizing eligible
weight prepacking, and accelerated block-wise INT4/INT8 QMoE experts
with MLAS QNBit kernels and grouped expert dispatch
([#​31691](microsoft/onnxruntime#31691),
[#​32644](microsoft/onnxruntime#32644),
[#​32668](microsoft/onnxruntime#32668)).
- Added x86 FP16 LayerNorm/RMSNorm acceleration, Arm KleidiAI SVE2.1
FP16 GEMM support, and additional RISC-V vector kernels
([#​32715](microsoft/onnxruntime#32715),
[#​32670](microsoft/onnxruntime#32670),
[#​32710](microsoft/onnxruntime#32710)).
- Enabled CoreML participation in device-based EP selection, including
Apple Neural Engine selection through `PREFER_NPU`
([#​31975](microsoft/onnxruntime#31975)).
- Added workspace-memory accounting and verification for
constrained-memory graph partitioning, alongside broader model, graph,
and tensor validation
([#​31962](microsoft/onnxruntime#31962),
[#​32189](microsoft/onnxruntime#32189)).

## Announcements & Compatibility

- [CUDA Plugin EP
v0.3.0](https://github.com/microsoft/onnxruntime/releases/tag/plugin-ep-cuda/v0.3.0)
and WebGPU Plugin EP v0.5.0 are matched with ONNX Runtime 1.31.0. For
**contrib-op compatibility**, core and the plugin must use the same
contributed-operator schemas; building both from the **same ONNX Runtime
revision** is recommended. Schema mismatches can cause incorrect
execution or crashes and may not be detected during plugin registration.
- **`GatherBlockQuantized` behavior change:** out-of-range indices now
produce zero output slices across CPU, CUDA, and WebGPU for both integer
and floating-point quantized formats. This deliberately differs from
ONNX `Gather` error semantics
([#​32480](microsoft/onnxruntime#32480)).
- **Experimental API migration:** model-package consumers should use
`OrtApi::GetModelPackageApi` and the stable `OrtModelPackageApi` table.
EPContext callback registration now uses stable APIs; the corresponding
experimental lookup entries were removed. The stable native callback
contract carries callback/state pointers, with payload limits enforced
by application callbacks, bindings, or EPs rather than a native
read-options policy
([#​33166](microsoft/onnxruntime#33166),
[#​32265](microsoft/onnxruntime#32265)).
- **ACL EP is deprecated** and will be removed in a future release.
Source builds using `--use_acl` now receive a deprecation warning
([#​32564](microsoft/onnxruntime#32564)).
- The ONNX dependency remains at **1.22.0**. The initial ONNX 1.23
integration was reverted pending upstream fixes; this release does not
ship that integration's new opset or FLOAT6 support
([#​33073](microsoft/onnxruntime#33073)).
- Supported native builds now default to **1DS telemetry**. Windows
TraceLogging remains selectable with `--use_windows_telemetry` or
`onnxruntime_USE_WINDOWS_TELEMETRY=ON`; telemetry can be disabled with
`--no_telemetry`
([#​32384](microsoft/onnxruntime#32384)).

## New Features

### Core APIs & Runtime

- Stabilized the model-package C and C++ APIs for loading packages,
selecting compatible model variants, and creating sessions
([#​33166](microsoft/onnxruntime#33166)).
- Stabilized named EPContext data read/write callbacks for
application-managed storage. Added EP support negotiation so registered
callbacks do not silently fall back to filesystem I/O
([#​32265](microsoft/onnxruntime#32265)).
- Extended the Compile API to write external initializers and EP context
data to buffers, enabling in-memory compilation workflows for models
larger than 2 GB
([#​31347](microsoft/onnxruntime#31347)).
- Added workspace-memory accounting, source reporting, and
post-partition reservation verification. Set
`session.strict_workspace_verification=1` to fail initialization on
workspace declaration overruns or nonzero orphaned reservations; strict
verification is not supported for ORT-format model loads
([#​31962](microsoft/onnxruntime#31962),
[#​32189](microsoft/onnxruntime#32189)).
- Added the opt-in source-build option
`onnxruntime_DISABLE_DEVICE_DISCOVERY=ON` to skip platform accelerator
probing and report only the CPU device
([#​32592](microsoft/onnxruntime#32592)).

### Shared Contrib Operators

These updates affect core operator schemas and cross-provider behavior,
not only the separately released GPU plugins.

- Extended `EngramGate` and `NGramHashMapping` for Qwen4-Exp, and added
`VarlenNGramHashMapping` for packed DeepSeek Engram batching with
request-local history. Packed hashing also supports Qwen4-Exp head
offsets, EOS resets, and segment boundaries
([#​32285](microsoft/onnxruntime#32285),
[#​32358](microsoft/onnxruntime#32358),
[#​32467](microsoft/onnxruntime#32467)).
- Added the `activation` attribute to `GatedRMSNorm` for SiLU, its Swish
alias, and Sigmoid gating across CPU, CUDA, and WebGPU. SiLU remains the
default
([#​32512](microsoft/onnxruntime#32512)).
- Added weightless hyper-connection operators `BranchwiseRMSNorm`,
`ScaledSiLU`, `HyperConnectionPreMix`, and `HyperConnectionPostMix`,
with CPU, CUDA, and WebGPU implementations
([#​32687](microsoft/onnxruntime#32687)).
- Extended `GatherBlockQuantized` to FP8/FP4 data, full-axis blocks, and
scale broadcasting, and improved CPU UINT8 dequantization. See the
out-of-range-index behavior change above
([#​32480](microsoft/onnxruntime#32480),
[#​32621](microsoft/onnxruntime#32621)).

### Plugin Execution Provider Infrastructure

- Added support for statically linked plugin EPs, with a static WebGPU
plugin build configuration
([#​32395](microsoft/onnxruntime#32395)).
- Preserved caller streams in single-tensor plugin data transfers and
handled null plugin allocator returns
([#​32666](microsoft/onnxruntime#32666),
[#​32683](microsoft/onnxruntime#32683)).
- Deduplicated AutoEP custom-op domains and corrected EP assignment
reporting after NHWC layout transformation
([#​32711](microsoft/onnxruntime#32711),
[#​33184](microsoft/onnxruntime#33184)).
- Added reference guidance for compiled-model compatibility validation,
including multi-device scenarios
([#​29168](microsoft/onnxruntime#29168)).

## Execution Provider Updates

### CUDA EP

CUDA updates include sparse attention and packed continuous batching,
expanded paged speculative decoding, INT2 and mixed-width QMoE
execution, opt-in MatMul auto-tuning, improved MXFP4 support on
Blackwell consumer GPUs, and reliability fixes.
 ... (truncated)

Commits viewable in [compare
view](microsoft/onnxruntime@v1.30.0...v1.31.0).
</details>

Updated
[Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore)
from 10.2.3 to 10.3.0.

<details>
<summary>Release notes</summary>

_Sourced from [Swashbuckle.AspNetCore's
releases](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases)._

## 10.3.0

## What's Changed

* Change nullability handling for schemas with `anyOf`, `allOf`, `oneOf`
or `type = null` by @​ldeluigi in
domaindrivendev/Swashbuckle.AspNetCore#3976
* Handle leading slash on route prefix during index.html GET by
@​superstator in
domaindrivendev/Swashbuckle.AspNetCore#4084
* Move NRT handling to DataContractResolver by @​desjoerd in
domaindrivendev/Swashbuckle.AspNetCore#3998
* Clarify nullable behaviour by @​martincostello in
domaindrivendev/Swashbuckle.AspNetCore#4094
* Fix review issues for caching and encoding by @​martincostello in
domaindrivendev/Swashbuckle.AspNetCore#4093
* Support multiple response types per status code by @​DeagleGross in
domaindrivendev/Swashbuckle.AspNetCore#4100
* Add coverage for `AddServer` across multiple documents by
@​RaphaelFakhri in
domaindrivendev/Swashbuckle.AspNetCore#4115
* Fix Swagger sort key fallback for empty endpoint tags metadata by
@​AleksaMCode in
domaindrivendev/Swashbuckle.AspNetCore#4125
* Fix parameter matching to consider location when names collide by
@​nonsoikem in
domaindrivendev/Swashbuckle.AspNetCore#4126
* Emit form encoding for properties of a complex form parameter by
@​RaphaelFakhri in
domaindrivendev/Swashbuckle.AspNetCore#4128
* Keep a property's own summary when comments come from several XML
files by @​RaphaelFakhri in
domaindrivendev/Swashbuckle.AspNetCore#4129
* Strip query string from relative document URLs in Swagger UI by
@​GabeSilvaDev in
domaindrivendev/Swashbuckle.AspNetCore#4152
* Document that System.Text.Json ignores `[EnumMember]` by
@​RaphaelFakhri in
domaindrivendev/Swashbuckle.AspNetCore#4127
* Drop the regex route constraint from the default Swagger route by
@​RaphaelFakhri in
domaindrivendev/Swashbuckle.AspNetCore#4130
* Serialize custom values in the UI `ConfigObject.AdditionalItems` by
@​RaphaelFakhri in
domaindrivendev/Swashbuckle.AspNetCore#4132
* Use Minimal APIs JSON options when MVC is not registered by
@​RaphaelFakhri in
domaindrivendev/Swashbuckle.AspNetCore#4116
* Resolve enum contracts against the underlying type under source
generation by @​RaphaelFakhri in
domaindrivendev/Swashbuckle.AspNetCore#4131

## New Contributors

* @​ldeluigi made their first contribution in
domaindrivendev/Swashbuckle.AspNetCore#3976
* @​superstator made their first contribution in
domaindrivendev/Swashbuckle.AspNetCore#4084
* @​desjoerd made their first contribution in
domaindrivendev/Swashbuckle.AspNetCore#3998
* @​RaphaelFakhri made their first contribution in
domaindrivendev/Swashbuckle.AspNetCore#4115
* @​AleksaMCode made their first contribution in
domaindrivendev/Swashbuckle.AspNetCore#4125
* @​nonsoikem made their first contribution in
domaindrivendev/Swashbuckle.AspNetCore#4126
* @​GabeSilvaDev made their first contribution in
domaindrivendev/Swashbuckle.AspNetCore#4152
* @​JulianThoms made their first contribution in
domaindrivendev/Swashbuckle.AspNetCore#4182

**Full Changelog**:
domaindrivendev/Swashbuckle.AspNetCore@v10.2.3...v10.3.0


Commits viewable in [compare
view](domaindrivendev/Swashbuckle.AspNetCore@v10.2.3...v10.3.0).
</details>

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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

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

[Plugin EP] Plugin EP data transfer drops the stream in CopyTensorImpl

3 participants