Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
192 commits
Select commit Hold shift + click to select a range
2b5c9da
[Shape Inference] Add shape inference for QLinearAdd and QLinearMul o…
pravg-amd Mar 24, 2025
8eb8c2b
[mobile] Add Android NuGet BrowserStack test to NuGet packaging pipel…
carzh Mar 24, 2025
828e372
[CPU] Add fp16 support to sparse attention (#24015)
fajin-corp Mar 24, 2025
373b9e2
refactor mac CI pipelines (#24138)
fs-eire Mar 24, 2025
5244d68
Address Windows CUDA build issue (#24149)
yuslepukhin Mar 24, 2025
e03631e
[webgpu] add option to perserve device and enable in unittest (#24115)
fs-eire Mar 24, 2025
78d91cd
[js/web] allow bundler import condition for not bundling wasm (#24014)
fs-eire Mar 24, 2025
618aef7
[js] Add API for accessing metadata of a model's input/output (#23937)
fs-eire Mar 24, 2025
afaf4a5
add cache "onnxnodetests" for node tests (#24150)
fs-eire Mar 25, 2025
ce65e25
[Native WebGPU] Add Matmul (#24046)
vraspar Mar 25, 2025
bb005b9
Upgrade Big Model pipeline CUDA from 11.8 to 12.x (#24156)
tianleiwu Mar 25, 2025
de502c8
Proper Error Message when fp16 model is used for Beam Search in CPU (…
tianleiwu Mar 25, 2025
a4b8f11
Change type len from int to size_t (#24157)
jiafatom Mar 25, 2025
a8fb786
Limit the Pipeline ability to build cuda 11 (#24073)
jchen351 Mar 25, 2025
8680667
Move Linux CPU CI pipeline to Github Actions (#24154)
snnn Mar 25, 2025
d9c961c
Bump vite from 6.2.1 to 6.2.3 in /js/web/test/e2e/exports/testcases/v…
dependabot[bot] Mar 25, 2025
1ef3044
[onnxruntime_perf_test] Fix custom_allocator_ destruction order. (#24…
edgchen1 Mar 25, 2025
25b06f2
Fix layout transformer for FusedConv (#24169)
fs-eire Mar 25, 2025
1f6dc88
Migrate Zip-Nuget Package Pipeline to 1ES (#23609) Also, kleidail is …
jchen351 Mar 25, 2025
9dbfee9
Update the min GCC version (#24148)
snnn Mar 25, 2025
2a800d1
[QNN EP] ARM64EC python package remove --vcpkg in build (#24174)
jywu-msft Mar 26, 2025
a8673c6
[WebGPU EP] Add GEMM implementation (#24023)
xiaofeihan1 Mar 26, 2025
513e8de
[wasm] remove --vcpkg in wasm build (#24179)
fs-eire Mar 26, 2025
32b376c
revise mac os pipeline to reduce the amount of jobs (#24177)
fs-eire Mar 26, 2025
be1cfc4
fix triggering for "Validate Gradle Wrapper" pipeline (#24181)
fs-eire Mar 26, 2025
5d805c2
upgrade QNN to version 2.32.0.250228 (#23977)
HectorSVC Mar 26, 2025
24ece47
[JSEP] adjust edge case logic for scatternd (#24172)
prathikr Mar 26, 2025
1f70fc2
Make the custom nuget packaging pipeline 1ES commpliant. (#24191)
baijumeswani Mar 27, 2025
4d13b70
Disable KleidiAI in Python Packaging pipeline MacOS build (#24194)
edgchen1 Mar 27, 2025
041674a
Rolling back the python/cuda (#24170)
jchen351 Mar 27, 2025
914be22
Remove all CG template from pipelines (#24193)
jchen351 Mar 27, 2025
bd00c39
Move Linux ARM64 CI pipeline and Linux DNNL CI pipeline to Github Act…
snnn Mar 27, 2025
86b4c78
[webgpu-ep] Fix test_batchnorm_example (#24184)
jchen10 Mar 27, 2025
2656671
Further reduce work load for Mac CI pipeline (#24197)
fs-eire Mar 27, 2025
64b0d07
Generate unique names for SliceSplit fusion. (#24217)
yuslepukhin Mar 27, 2025
2592147
Fix the pipeline that failed because of vcpkg (#24226)
fs-eire Mar 28, 2025
c756e0a
Improve Shape Inference for GQA (#24143)
peishenyan Mar 28, 2025
19d8d69
Add React Native namespace back in for iOS (#24218)
carzh Mar 28, 2025
180ba8f
RoPE fp16 avx (#23772)
liqunfu Mar 28, 2025
f430dce
Migrate Linux GPU pipelines to Github Actions (#24232)
snnn Mar 28, 2025
41dde35
Migrate Web CI into github actions (#24219)
fs-eire Mar 28, 2025
4a669fd
update the readme doc for the tool ep_weight_sharing_ctx_gen (#24233)
HectorSVC Mar 29, 2025
7ef0ddc
[WebGPU EP] If Implementation for WebGPU EP (#24242)
prathikr Mar 29, 2025
8de342a
Update linux-dnnl.yml: rename the pipeline (#24240)
snnn Mar 29, 2025
d71aa4d
[webgpu] Fix test_layer_normalization_2d_axis0 (#24223)
jchen10 Mar 29, 2025
f1d790c
[webgpu] fix LayerNorm with empty input (#24244)
fs-eire Mar 29, 2025
492af7a
Bump actions/setup-python from 4 to 5 (#24251)
dependabot[bot] Mar 31, 2025
83650ed
Bump actions/cache from 3 to 4 (#24250)
dependabot[bot] Mar 31, 2025
22787ae
[QNN EP] Add platform-agnostic EP option to specify QNN backend, `bac…
edgchen1 Mar 31, 2025
ad2e565
[webgpu] Fix opset-12 softmax nhwc issue (#24227)
xhcao Mar 31, 2025
528f29a
Extend pyright exclude list in pyproject.toml (#24246)
fs-eire Mar 31, 2025
ba2999c
[js/web] Add Wasm Relaxed SIMD support to wasm backend (#22794)
jing-bao Mar 31, 2025
4eeefd7
Add shader key validation step in WebGPU CI pipeline (#24243)
fs-eire Mar 31, 2025
30115cf
upgrade dawn version to 4cb1f9be152a4fa6bb695c08cd707ab078a1e2fb (#24…
fs-eire Mar 31, 2025
5982430
Bump dsaltares/fetch-gh-release-asset from 1.1.0 to 1.1.2 (#24248)
dependabot[bot] Mar 31, 2025
e227415
Bump vite from 6.2.3 to 6.2.4 in /js/web/test/e2e/exports/testcases/v…
dependabot[bot] Apr 1, 2025
5068ab9
[WebGPU EP] fixes bugs in split implementation (#24259)
prathikr Apr 1, 2025
1b48cc4
Bump microsoft/onnxruntime-github-actions from 35f8bd42417991aa46577e…
dependabot[bot] Apr 1, 2025
5b08055
Update xcode and iphoneSimulatorVersion after MacOS-14 (#24260)
jchen351 Apr 1, 2025
24620e7
Exclude onnxruntime-inference-examples directory from Component Gover…
jchen351 Apr 1, 2025
67216c8
[VitisAI] Fixed include error. (#24199)
BoarQing Apr 2, 2025
a5bc69c
Migrate pull:wasm to github action (#24269)
fs-eire Apr 2, 2025
b379390
Ensure to use correct GPU device in RunSince when it's invoked by new…
chilo-ms Apr 2, 2025
b5d15bc
Adding build-system to pyproject.toml (#24216)
jchen351 Apr 2, 2025
bc7b07d
[WebGPU EP] Implements ceil mode for Average Pool (#24270)
prathikr Apr 2, 2025
55aa03c
Pin vcpkg version (#24284)
snnn Apr 3, 2025
a14d586
Support load TensorRT V3 plugin (#24211)
toothache Apr 3, 2025
21db38c
Expose TRT preview features as EP option (#24212)
toothache Apr 3, 2025
8465ca3
[webgpu] test_layer_normalization_3d_axis0_epsilon (#24276)
jchen10 Apr 3, 2025
7a55188
[webgpu][dawn API optimization] reduce number of calls to wgpuDeviceH…
fs-eire Apr 3, 2025
d238813
Bump next from 15.2.3 to 15.2.4 in /js/web/test/e2e/exports/testcases…
dependabot[bot] Apr 3, 2025
cbaa8bc
Bump image-size from 1.1.1 to 1.2.1 in /js/react_native/e2e (#24278)
dependabot[bot] Apr 3, 2025
a28da4b
[QNN-EP] Enhance QNN-EP support for Softmax with opset < 13. (#24180)
zhaoxul-qti Apr 3, 2025
e5e906e
Update publish-nuget.yml to correct feed. (#24299)
jchen351 Apr 4, 2025
3dfc2ae
[webgpu] Optimize MatMulNBits for f16 Block32 prefill performance (#2…
daijh Apr 4, 2025
82c8e56
upgrade action shellcheck to v1.30.0 (#24304)
fs-eire Apr 4, 2025
1cb53d0
[QNN-EP] Fix ONNX context model helper. (#24271)
minfhong-quic Apr 4, 2025
318cc87
[WebGPU] fix Pad cache key (#24305)
fs-eire Apr 4, 2025
56f1018
Bump vite from 6.2.4 to 6.2.5 in /js/web/test/e2e/exports/testcases/v…
dependabot[bot] Apr 4, 2025
2e94c5a
[WebGPU] fix cache key of AttentionProbs/VxAttentionScore (#24309)
fs-eire Apr 4, 2025
e944379
Support Gemma3 with Clip fused attention (#24280)
titaiwangms Apr 4, 2025
11fda2a
Update packaging pipeline for Nodejs binding (#24301)
fs-eire Apr 4, 2025
a4976e3
Add support for uint8_t as data type for GatherBlockQuantized (#24239)
sushraja-msft Apr 4, 2025
9102aae
[Native WebGPU] Add Conv, ConTranspose and FusedConv (#24186)
satyajandhyala Apr 4, 2025
a7e62d6
[webgpu][dawn API optimization] reduce number of calls to wgpuDeviceG…
fs-eire Apr 4, 2025
55c1a3b
Fix 'minimal_power' to 'minimum_power' for DirectML performance selec…
virajwad Apr 5, 2025
d6df4f2
Add ConvTranspose cache key (#24317)
satyajandhyala Apr 5, 2025
a1186f6
[webgpu] Use 1D dispatch groups for attention (#24228)
qjia7 Apr 7, 2025
73676fc
[webgpu][dawn API optimization] reduce number of calls to buffer APIs…
fs-eire Apr 7, 2025
350d140
Implement load cancellation ability (#24257)
yuslepukhin Apr 7, 2025
ca1b32d
[webgpu] Fix ROUND_PREFER_CEIL issue of Resize operator (#24229)
xhcao Apr 7, 2025
b803429
[Native WebGPU] Exclude WebGPU EP from ConvFp16 3D tests. (#24327)
satyajandhyala Apr 7, 2025
554fb4a
[VitisAI EP] export InferShapes to VitisAIEP (#23881)
zz002 Apr 8, 2025
18f91e5
[webgpu] Flash attention for generation (#23808)
qjia7 Apr 8, 2025
04e0b50
Use WASM f32x4 relaxed min/max for relaxed simd build (#24324)
fanchenkong1 Apr 8, 2025
f83e661
webgpu support for DequantizeLinear (#24268)
guschmue Apr 8, 2025
10e51d2
[webgpu] fix the reflect mode issue of Pad (#24202)
xhcao Apr 8, 2025
4edada6
Remove explicit batch network flag for TRT 10+ (#24298)
kevinch-nv Apr 8, 2025
2265613
[webgpu] Fix bias_split_gelu (#24342)
jchen10 Apr 8, 2025
34abb8b
[webgpu] fix bias-add (#24336)
jchen10 Apr 8, 2025
0acb048
[webgpu] optimize SkipLayerNormalization operator (#24164)
xhcao Apr 8, 2025
d7a38a5
ROCm: Remove -Wno-interference-size compiler flag (#24326)
jagadish-amd Apr 8, 2025
39e585f
[web] revise flag `ort.env.wasm.simd` (#24314)
fs-eire Apr 8, 2025
5a5e668
[WebGPU EP] Exclude zero-dim input test case for WebGPU EP. (#24350)
satyajandhyala Apr 8, 2025
4dc0e35
Group build args (#24337)
snnn Apr 8, 2025
cda0d14
[webgpu][dawn API optimization] workgroup dispatch (#24329)
fs-eire Apr 8, 2025
89f8206
Pin wheel version to 0.45.1 (#24349)
amarin16 Apr 9, 2025
f6db653
[QNN EP] Add support for Int64 tensors (#24351)
quic-ashwshan Apr 9, 2025
1d928a1
Support WebGPU build for android and ios (#24308)
sheetalarkadam Apr 9, 2025
85e6b4c
[web] fix TypeScript typing and add a test case (#24354)
fs-eire Apr 9, 2025
5612ce5
[WebNN] Support MatMulNBits op (#24142)
Honry Apr 9, 2025
6ba73a1
[EP Perf] Extension to post benchmark perf from local devices (#24236)
yf711 Apr 9, 2025
aa87e34
Update unknown provider error message with current providers (#24352)
RyanUnderhill Apr 9, 2025
c5d1416
[WebGPU] fix compile on latest 24.02 (#24364)
guschmue Apr 9, 2025
f12a89e
[WebNN EP] Support GroupQueryAttention(GQA) (#23416)
peishenyan Apr 10, 2025
2f8d79e
Remove build-nuget from dml-vs-2022.yml (#24372)
snnn Apr 10, 2025
f44f1a9
Make test `CApiTest.RequestLoadCancellation` deterministic (#24348)
yuslepukhin Apr 10, 2025
d58ff6b
[web] allow NPM tests to run nodejs binding for webgpu (#24370)
fs-eire Apr 11, 2025
7a03764
MlasTranspose multi-threads support. (#24261)
msy-kato Apr 11, 2025
2d5316f
[webgpu] Use workgroup memory to reduce register pressure (#24286)
qjia7 Apr 11, 2025
f7028a3
[QNN EP] Add support for int64 shape input of Expand Op (#24389)
quic-tirupath Apr 11, 2025
c70425a
[webgpu] fix 2 bugs in Conv/ConvTranspose (#24388)
fs-eire Apr 11, 2025
d003b6e
Migrate OpenVino Pipeline to Github Actions (#24297)
snnn Apr 11, 2025
aada488
[Native WebGPU EP] Add InstranceNormalization (#24369)
satyajandhyala Apr 11, 2025
d7c688e
Bump vite from 6.2.5 to 6.2.6 in /js/web/test/e2e/exports/testcases/v…
dependabot[bot] Apr 11, 2025
699b4db
Update protobuf-java to 3.25.5 (#24333)
jchen351 Apr 12, 2025
90c263f
Add API to compile a model (#24207)
adrianlizarraga Apr 12, 2025
9a993c3
[CPU] Add 8bit support to matmulnbits quantizer (#24384)
fajin-corp Apr 14, 2025
bbd2739
[webgpu] move comments out from WGSL in FlashAttention impl (#24400)
fs-eire Apr 14, 2025
7417f43
Replace gsl::narrow with narrow in xnnpack code (#24392)
cdliang11 Apr 14, 2025
bb5a879
[WebGPU EP] Fixes bugs in slice operator implementation (#24415)
prathikr Apr 14, 2025
d205bb7
Support mixed precision in quantization for RTN (#24401)
jiafatom Apr 14, 2025
1f14dac
Add Resize cubic mode without antialias (scales = [1, ≥1, ≥1, 1]) (#2…
yihonglyu Apr 15, 2025
8de1639
[webgpu] Enable DP4A MatMul generation path for Qualcomm (#24408)
qjia7 Apr 15, 2025
ac5e434
workaround linux CI pipeline: pin triton to v3.2.0 (#24423)
fs-eire Apr 15, 2025
fd22509
Fix typo in option text s/buildings/bindings (#24412)
clementperon Apr 15, 2025
c47d694
[Native WebGPU EP] Increase error tolerance limit for f16 (#24420)
satyajandhyala Apr 15, 2025
c619218
Fix doc gen issue (#24424)
HectorSVC Apr 15, 2025
c18e06d
[MacOS] Add MLProgram Gather op for CoreML EP (#24387)
carzh Apr 15, 2025
ff607b4
[Native WebGPU] Support shared memory version of ReduceOps (#24399)
satyajandhyala Apr 15, 2025
fc7595f
[web] fix 'npm run pull:wasm' for main branch (#24429)
fs-eire Apr 15, 2025
c27975f
Fix the Python API docs update pipeline (#24434)
HectorSVC Apr 15, 2025
4b24ddf
[node.js] fix handling null value for externalData (#24428)
fs-eire Apr 15, 2025
d60891d
[webgpu] Fix batch-norm for ort-web-tests (#24404)
jchen10 Apr 15, 2025
98f075c
Enable Inference Results Saving in onnx-test-runner (#24210)
quic-hungjuiw Apr 15, 2025
cf99ca9
[nodejs] allow installing DLLs from Nuget feed (#24418)
fs-eire Apr 15, 2025
39d60b7
Clean up Compile API (#24436)
adrianlizarraga Apr 16, 2025
4d03aef
Support canonical EP names in SessionOptionsAppendExecutionProvider (…
adrianlizarraga Apr 16, 2025
4b9e26d
Add static quantization runner (#24114)
quic-hungjuiw Apr 16, 2025
ec02406
[nodejs] support Node.js binding in multi env (#24366)
fs-eire Apr 16, 2025
b4b5a79
[QNN EP] Enable QnnGpu backend in QNN EP. (#24435)
johnpaultaken Apr 16, 2025
201012e
Update QNN version to 2.33.2 (#24440)
HectorSVC Apr 16, 2025
171e297
ONNXRuntime OpenVINO - Release 1.22 (#24394)
preetha-intel Apr 16, 2025
9ab6b87
Add GQA fusion for CUDA EP (#24335)
nenad1002 Apr 16, 2025
42c2a62
[nodejs] upgrade N-API version to 6 (#24443)
fs-eire Apr 16, 2025
01c8e83
Fix compile issue in Azure EP unit test (#24446)
adrianlizarraga Apr 16, 2025
1c2225e
[WebNN EP] Automatically use ml-tensor for outputs (#24282)
egalli Apr 16, 2025
c5b82a5
[nodejs] add missing header files for linux build (#24448)
fs-eire Apr 16, 2025
f267b7e
Fix MatmulTransposeFusion when input A and B are the same (#24373)
fs-eire Apr 17, 2025
99f2b80
Fix cuda memory access violation in GQA FlashAttention (#24447)
RyanUnderhill Apr 17, 2025
ef832b9
[QNN EP] Reverting a recent logging change for QNN GPU only, (#24444)
johnpaultaken Apr 17, 2025
9db4b10
[nodejs] update Node.js binding document for 1.22 release (#24452)
fs-eire Apr 17, 2025
3252320
[Native WebGPU] Handle corner cases in naive kernel. (#24438)
satyajandhyala Apr 17, 2025
2bb99ea
[OpenVINO EP] Implement new overload of CreateProvider() for OpenVINO…
adrianlizarraga Apr 17, 2025
e5ce1b3
[DML EP] Support in-memory external data TensorProto (#24391)
huningxin Apr 17, 2025
cad382f
include corresponding Nuget version info to Node.js binding (#24450)
fs-eire Apr 17, 2025
d3e9250
[webgpu] Supports batch and zero points in MatMulNBits WideTileProgr…
daijh Apr 17, 2025
5ff7bfb
Validate CreateSessionFromArray with ep.context_enable enabled (#24176)
HectorSVC Apr 17, 2025
1a1dac6
[QNN EP] Update the generated Qnn context binary file name to align w…
HectorSVC Apr 17, 2025
89965af
[OVEP] update: Introduce enable_causallm provider option in OVEP (pre…
ankitm3k Apr 18, 2025
689ec47
[VitisAI EP] Implement new overload of CreateProvider() called with s…
adrianlizarraga Apr 18, 2025
c19a496
Upgrade transformers to 4.48.0 for llama2 (#24302)
selenayang888 Apr 18, 2025
fcb4866
Add session config to return an error if model needs to be compiled (…
adrianlizarraga Apr 18, 2025
cd9c02f
Allow EpContext models with input/output models completely in buffers…
adrianlizarraga Apr 18, 2025
0d26928
Rename matmul_4bits_quantizer.py to matmul_nbits_quantizer.py (#24472)
tianleiwu Apr 19, 2025
07b6bb6
Disambiguate the winml OrtModel with the model editing API OrtModel. …
skottmckay Apr 19, 2025
67c87a1
[WebNN] Fallback unsupported integer input and output of a WebNN grap…
Honry Apr 20, 2025
6df6206
Add infrastructure for auto EP selection (#24430)
skottmckay Apr 20, 2025
9c6351f
[WebNN] Support AveragePool with count_include_pad == 1 (#24465)
Honry Apr 20, 2025
2abab8d
Refine device discovery a bit more. (#24481)
skottmckay Apr 21, 2025
ef546e9
Cherry-picks into rel-1.22.0 (#24580)
vraspar Apr 30, 2025
cf92d98
Cherry-picks into rel-1.22.0 (#24611)
vraspar May 1, 2025
d66cff1
Cherry-picks into rel-1.22.0 (#24624)
vraspar May 3, 2025
ab9141e
Cherry pick #24625 into rel-1.22.0 (#24626)
skottmckay May 4, 2025
93f85fb
Cherry pick #24629 (QNN prefer npu) into rel-1.22.0 (#24630)
adrianlizarraga May 4, 2025
d08403c
Add support for selection policy delegate (based on PR #24653) (#24638)
adrianlizarraga May 6, 2025
8fbc5d7
Publish debug symbols for windows (#24643) (#24651)
vraspar May 6, 2025
6b0f7c9
Revert "Publish debug symbols for windows (#24643) (#24651)" (#24668)
vraspar May 7, 2025
6c8097a
Qnn nuget package update for arm64x (#24690) (#24694)
HectorSVC May 8, 2025
f217402
Cherry pick fix for NuGet DML Release package Issue (#24696)
vraspar May 8, 2025
0fd2dc8
Merge commit 'f217402897f40ebba457e2421bc0a4702771968e' into onnxrt_1…
TedThemistokleous Jun 3, 2025
b0d9525
Add ROCm execution provider to excluded EP for test with Cuda EP
TedThemistokleous Jun 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/03-mobile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,6 @@ body:
id: ep-version
attributes:
label: Execution Provider Library Version
placeholder: ex. CUDA 11.6 or ROCm 5.1.1
placeholder: ex. CUDA 12.2 or ROCm 5.1.1
validations:
required: false
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/05-performance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ body:
id: ep-version
attributes:
label: Execution Provider Library Version
placeholder: ex. CUDA 11.6 or ROCm 5.1.1
placeholder: ex. CUDA 12.2 or ROCm 5.1.1
validations:
required: false
- type: textarea
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/06-training.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,6 @@ body:
id: ep-version
attributes:
label: Execution Provider Library Version
placeholder: ex. CUDA 11.6 or ROCm 5.1.1
placeholder: ex. CUDA 12.2 or ROCm 5.1.1
validations:
required: false
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/08-general.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,6 @@ body:
id: ep-version
attributes:
label: Execution Provider Library Version
placeholder: ex. CUDA 11.6 or ROCm 5.1.1
placeholder: ex. CUDA 12.2 or ROCm 5.1.1
validations:
required: false
71 changes: 71 additions & 0 deletions .github/actions/linux-web-init-and-check/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: "Web Build Initialize and Check on Linux"
description: "Initializes and checks the ONNX Runtime Web build on Linux."
runs:
using: "composite"
steps:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "22.x"

- name: npm ci /js/
run: npm ci
shell: bash
working-directory: ${{ github.workspace }}/js

- name: npm ci /js/common/
run: npm ci
shell: bash
working-directory: ${{ github.workspace }}/js/common

- name: run onnxruntime-common tests
run: npm test
shell: bash
working-directory: ${{ github.workspace }}/js/common

- name: run onnxruntime-common tests (enable Float16Array)
run: npm run test:f16
shell: bash
working-directory: ${{ github.workspace }}/js/common

- name: npm ci /js/web/
run: npm ci
shell: bash
working-directory: ${{ github.workspace }}/js/web

- name: run TypeScript type check in /js/web/
run: npm run prebuild
shell: bash
working-directory: ${{ github.workspace }}/js/web

- name: run ESLint
run: npm run lint
shell: bash
working-directory: ${{ github.workspace }}/js

- name: Format code
run: npm run format
shell: bash
working-directory: ${{ github.workspace }}/js

- name: Check unformatted files
run: |
node -e "a=require('child_process').execSync('git diff --name-only').toString();if(a)throw new Error('Following source files are not formatted: (did you run \"npm run format\"?)\n'+a)"
shell: bash
working-directory: ${{ github.workspace }}/js

- name: TypeDoc Validation
run: npx typedoc --emit none --treatWarningsAsErrors
shell: bash
working-directory: ${{ github.workspace }}/js/common

- name: Generating documents
run: npm run build:doc
shell: bash
working-directory: ${{ github.workspace }}/js/web

- name: Check out of dated documents
run: |
node -e "a=require('child_process').execSync('git diff --name-only').toString();if(a)throw new Error('Following documents are not up-to-date: (did you run \"npm run build:doc\"?)\n'+a)"
shell: bash
working-directory: ${{ github.workspace }}/js/web
19 changes: 18 additions & 1 deletion .github/actions/locate-vcvarsall-and-setup-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,23 @@ outputs:
runs:
using: "composite"
steps:

- name: Setup VCPKG
uses: microsoft/onnxruntime-github-actions/[email protected]
with:
vcpkg-version: '2025.03.19'
vcpkg-hash: '17e96169cd3f266c4716fcdc1bb728e6a64f103941ece463a2834d50694eba4fb48f30135503fd466402afa139abc847ef630733c442595d1c34979f261b0114'
cmake-version: '3.31.6'
cmake-hash: '0f1584e8666cf4a65ec514bd02afe281caabf1d45d2c963f3151c41484f457386aa03273ab25776a670be02725354ce0b46f3a5121857416da37366342a833a0'
add-cmake-to-path: 'true'
disable-terrapin: 'false'

- name: Verify vcpkg setup
shell: pwsh # Use powershell to easily access env var
run: |
Write-Host "VCPKG_INSTALLATION_ROOT is set to: $env:VCPKG_INSTALLATION_ROOT"
& "$env:VCPKG_INSTALLATION_ROOT/vcpkg" version

- name: Find vcvarsall.bat
id: find-vcvarsall
shell: python # Use Python shell
Expand Down Expand Up @@ -60,4 +77,4 @@ runs:
set > final_env.txt

REM Call the Python script to update the GitHub Actions environment
python ${{ github.action_path }}\update_environment.py
python ${{ github.action_path }}\update_environment.py
79 changes: 79 additions & 0 deletions .github/actions/macos-ci-setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: "macOS CI pipeline setup steps"
description: "Common setup steps for macOS CI pipelines"

inputs:
platform_machine:
required: false
type: string
default: "arm64"
python_version:
required: false
type: string
default: "3.11"
node_version:
required: false
type: string
default: "20.x"
java_version:
required: false
type: string
default: "17"
xcode_version:
required: false
type: string
default: "16"
use_cache:
required: false
type: boolean
default: false

runs:
using: "composite"
steps:
- name: Use Python
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python_version }}

- name: Verify machine architecture
shell: python
run: |
import platform
print(f"Running on {platform.machine()}")
assert platform.machine().lower() == "${{ inputs.platform_machine}}", "This job expects to be run on an ${{ inputs.platform_machine}} machine."

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node_version }}

- name: Install coreutils and ninja
shell: bash
run: brew install coreutils ninja

- name: Install Java
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: ${{ inputs.java_version }}

- name: Use Xcode ${{ inputs.xcode_version }}
shell: bash
run: |
XCODE_DEVELOPER_DIR="/Applications/Xcode_${{ inputs.xcode_version }}.app/Contents/Developer"
sudo xcode-select --switch "${XCODE_DEVELOPER_DIR}"

- name: Export GitHub Actions cache environment variables
if: ${{ inputs.use_cache }}
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');

- name: Install python dependencies
shell: bash
working-directory: ${{ github.workspace }}
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements-dev.txt
29 changes: 29 additions & 0 deletions .github/actions/webgpu-validate-shader-key/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: "WebGPU Validate Shader Key"
description: "Validate if the shader key is consistent for WebGPU shaders."

inputs:
log_file_path:
required: true
type: string
is_chromium_log:
required: false
type: boolean
default: false

runs:
using: "composite"
steps:
- name: Validate shader keys (chromium log)
# GitHub Actions treats all inputs as strings even if it's specified as a boolean.
if: ${{ inputs.is_chromium_log == 'true' }}
shell: cmd
run: |
node parse-chromium-debug-log.js < "${{ inputs.log_file_path }}" | node validate-shader-key.js
working-directory: ${{ github.action_path }}

- name: Validate shader keys (native log)
if: ${{ inputs.is_chromium_log != 'true' }}
shell: cmd
run: |
node validate-shader-key.js < "${{ inputs.log_file_path }}"
working-directory: ${{ github.action_path }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

"use strict";

const { EOL } = require("os");
const readline = require("readline");

// This script is used to parse the Chromium debug log and extract the raw log data.

async function processChromiumDebugLog() {
const rl = readline.createInterface({
input: process.stdin,
crlfDelay: Infinity,
});

for await (const line of rl) {
const result =
/^\[.+INFO:CONSOLE\(\d+\)]\ "(?<raw_log_data>.+)",\ source:\ [^"]+?\(\d+\)$/.exec(
line
);
if (!result) {
continue;
}
const rawLogData = result.groups.raw_log_data;
process.stdout.write(`${rawLogData}${EOL}`);
}
}

processChromiumDebugLog();
122 changes: 122 additions & 0 deletions .github/actions/webgpu-validate-shader-key/validate-shader-key.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

"use strict";

const { EOL } = require("os");
const readline = require("readline");

// This script is used to parse the raw log data and check if there are inconsistent shader.
// When the shader key is the same, the shader code should be the same.

const shaderMap = new Map();

const regexStartingProgram =
/onnxruntime::webgpu::WebGpuContext::Run.+Starting program \"(?<key>.+)\"/;
const regexShaderStart =
/^===\ WebGPU\ Shader\ code\ \[.+?(Key=\"(?<key>.+)\")?]\ Start\ ===$/;
const regexShaderEnd =
/^===\ WebGPU\ Shader\ code\ \[.+?(Key=\"(?<key>.+)\")?]\ End\ ===$/;

async function processVerboseLog() {
const rl = readline.createInterface({
input: process.stdin,
crlfDelay: Infinity,
});

let lastProgramKey = null;
let currentShaderKey = null;
let currentShaderCode = null;

for await (const line of rl) {
const startingProgram = regexStartingProgram.exec(line);
if (startingProgram) {
lastProgramKey = startingProgram.groups.key;
continue;
}

const resultStart = regexShaderStart.exec(line);
if (resultStart) {
if (currentShaderKey) {
throw new Error(
`Found incomplete shader code for key "${currentShaderKey}".`
);
}

const key = resultStart.groups.key ?? lastProgramKey;
if (!key) {
throw new Error(
'No shader key is found in the log. Please use debug build or enable verbose logging in session options in release build.'
);
}
if (lastProgramKey && key !== lastProgramKey) {
throw new Error(
`Found incorrect shader key from log. Expected "${lastProgramKey}", but got "${key}".`
);
}
currentShaderKey = key;
currentShaderCode = "";
continue;
}

const resultEnd = regexShaderEnd.exec(line);
if (resultEnd) {
if (!currentShaderKey) {
throw new Error(
`Found unexpected shader end for key "${resultEnd.groups.key}".`
);
}

const key = resultEnd.groups.key ?? lastProgramKey;
if (!key) {
throw new Error(
'No shader key is found in the log. Please use debug build or enable verbose logging in session options in release build.'
);
}
if (lastProgramKey && key !== lastProgramKey) {
throw new Error(
`Found incorrect shader key from log. Expected "${lastProgramKey}", but got "${key}".`
);
}

if (shaderMap.has(currentShaderKey)) {
if (shaderMap.get(currentShaderKey) !== currentShaderCode) {
throw new Error(`Found inconsistent shader code for key "${currentShaderKey}".
=== Previous Shader Start ===
${shaderMap.get(currentShaderKey)}
=== Previous Shader End ===

=== Current Shader Start ===
${currentShaderCode}
=== Current Shader End ===`);
}
} else {
shaderMap.set(currentShaderKey, currentShaderCode);
}

currentShaderKey = null;
currentShaderCode = null;
continue;
}

if (currentShaderKey) {
currentShaderCode += line + EOL;
}
}

if (currentShaderKey) {
throw new Error(
`Found incomplete shader code for key "${currentShaderKey}".`
);
}

if (shaderMap.size === 0) {
throw new Error("No shader code found.");
}

console.log(
`All shader code is consistent. Total ${shaderMap.size} shader keys found.`
);
}

processVerboseLog();
Loading
Loading