github microsoft/onnxruntime plugin-ep-webgpu/v0.5.0
ONNX Runtime WebGPU Plugin EP v0.5.0

latest release: v1.30.1
3 hours ago

ONNX Runtime WebGPU Plugin EP 0.5.0 expands attention, mixture-of-experts, and quantized operator support, improves GPU kernel performance, and strengthens runtime integration and correctness.

Highlights

Performance

  • Enabled subgroup-matrix kernels on AMD GPUs (#32667).
  • Added an FP16 GEMV specialization for single-row decode projections (#33070).
  • Improved data movement in Concat, Slice, Transpose, and pooling, and vectorized NHWC depthwise convolution across channels (#32497, #32498).
  • Enabled local-window flash attention for GroupQueryAttention (#32462).
  • Optimized recurrent and chunked GatedDeltaNet execution (#32645, #33143).
  • Optimized sparse attention indexers and SparsePagedAttention softmax, and cached sparse-indexer QSA visibility and scores (#32613, #32656, #33017).

Operator and Model Support

  • Added native GatedDeltaNet and VarlenCausalConvWithState kernels, including subsequent state-update-capacity support for GatedDeltaNet (#32510, #32477, #32767).
  • Added SparseAttentionIndexer, DynamicSparseAttention, and SparsePagedAttention, plus a packed sparse attention indexer for continuous batching (#32528, #32529, #32533, #32618).
  • Extended PagedAttention with full-context and local non-causal attention, and per-head Q/K normalization (#32763, #32792, #32808).
  • Added unquantized MoE and expanded QMoE activation, gating, routing, and packed-input support (#32447).
  • Added block-scaled FP8 QMoE, INT2 expert weights, and mixed-width integer QMoE execution (#32794, #32878).
  • Added Qwen4-Exp Engram support and VarlenNGramHashMapping for packed and variable-length batching (#32285, #32358, #32467).
  • Extended GatherBlockQuantized to FP8 and FP4 data. Out-of-range indices now produce zero output slices for both floating-point and existing integer formats (#32480).
  • Added GroupNorm, SkipGroupNorm, and 3D ConvTranspose support (#32463, #32688).
  • Added weightless hyper-connection primitives: BranchwiseRMSNorm, ScaledSiLU, HyperConnectionPreMix, and HyperConnectionPostMix (#32687).
  • Added SiLU/Swish/Sigmoid activation modes to GatedRMSNorm and QuickGelu fusion in the im2col-matmul convolution path (#32512, #32560).

Runtime Integration and Configuration

  • Added adapterIndex to select a physical Dawn adapter independently of the ORT WebGPU context identifier, deviceId (#32319).
  • Added the opt-in enableMatmulFp32Accumulation provider option for MatMulNBits and its fused variants; the default remains false (#29599).
  • Added concurrent independent-Session execution on eligible ORT hosts, with Session-owned command recordings and separate buffer-reuse tracking; retained serialized compatibility for older hosts (#32587, #32874, #33082).
  • Improved external-device integration with context-aware memory identity, host-owned cache coverage, and stateless shared data transfers (#33110, #33208).

Reliability and Correctness

  • Fixed out-of-bounds stores in subgroup-matrix MatMulNBits and added bounds checks for writes based on seqlens_k (#32582, #32623).
  • Fixed grouped-convolution underflow and vectorization across group boundaries (#32478, #33129).
  • Fixed mixed-type LayerNormalization shaders and retained FP32 arithmetic in LayerNormalization (#32629, #32896).
  • Fixed DequantizeLinear scalar/vector shader-cache collisions and 1D block_size handling (#33122, #32734).
  • Fixed initializer uploads on GPUs without Resizable BAR (#32816).
  • Fixed OrtMemoryInfo ABI mismatches across the plugin boundary and bundled Dawn platform cleanup (#33571, #33526).

Build and Native Hosting

  • Added a statically linked WebGPU plugin EP build configuration (#32395).
  • Isolated the bundled Dawn implementation and added standalone Dawn API package support for native hosts, with external-Dawn plugin CI coverage (#32964, #33006, #33077).
  • Updated Dawn and fixed WebGPU builds with LTO enabled and subgroup-configuration header dependencies (#32686, #32813, #32672).

Runtime Compatibility

The minimum ORT version is 1.24.4. Concurrent independent Sessions are enabled on ORT 1.28.3 and later in the 1.28 series, 1.30.1 and later in the 1.30 series, and 1.31 or later. Other supported versions, including 1.29.x, use serialized compatibility. In serialized mode, callers must serialize all WebGPU operations on the same device, including Session creation/destruction, allocation, I/O binding, transfers, and Run; the plugin does not enforce this serialization. Concurrent mode does not permit overlapping I/O binding and Run on the same Session (#33082).

Known compatibility caveat: ORT 1.26.0 was reported to reject the plugin during kernel creation because of its host-side plugin-version check. Forcing serialized execution does not resolve that restriction (#33082).

Contributors

Thanks to everyone who contributed to this release:

@aciddelgado, @adrastogi, @AkZGhost, @apsonawane, @edgchen1, @feich-ms, @gramalingam, @gyagp, @jchen10, @jiafatom, @justinchuby, @kunal-vaishnavi, @kylo5aby, @linzuojian, @mei1127, @mustjab, @prathikr, @qjia7, @sayanshaw24, @SharmaRithik, @skottmckay, @tianleiwu, @xadupre, @xhcao, @xiaofeihan1.


This release covers changes affecting ONNX Runtime WebGPU Plugin EP code and packaging since 0.4.0.

These release notes were prepared with AI assistance from commit history and pull request metadata.

Don't miss a new onnxruntime release

NewReleases is sending notifications on new releases.