mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-23 19:32:23 +00:00
### Description This PR adds the actual implementation of the WebGPU EP based on https://github.com/microsoft/onnxruntime/pull/22318. This change includes the following: <details> <summary><b>core framework of WebGPU EP</b></summary> - WebGPU EP factory classes for: - handling WebGPU options - creating WebGPU EP instance - creating WebGPU context - WebGPU Execution Provider classes - GPU Buffer allocator - data transfer - Buffer management classes - Buffer Manager - BufferCacheManager - DisabledCacheManager - SimpleCacheManager - LazyReleaseCacheManager - BucketCacheManager - Program classes - Program (base) - Program Cache Key - Program Manager - Shader helper classes - Shader Helper - ShaderIndicesHelper - ShaderVariableHelper - Utils - GPU Query based profiler - compute context - string utils - Miscs - Python binding webgpu support (basic) </details> <details> <summary><b>Kernel implementation</b></summary> - onnx.ai (default opset): - Elementwise (math): Abs, Neg, Floor, Ceil, Reciprocal, Sqrt, Exp, Erf, Log, Sin, Cos, Tan, Asin, Acos, Atan, Sinh, Cosh, Asinh, Acosh, Atanh, Tanh, Not, Cast - Elementwise (activation): Sigmoid, HardSigmoid, Clip, Elu, Relu, LeakyRelu, ThresholdedRelu, Gelu - Binary (math): Add, Sub, Mul, Div, Pow, Equal, Greater, GreaterOrEqual, Less, LessOrEqual - (Tensors): Shape, Reshape, Squeeze, Unsqueeze - Where - Transpose - Concat - Expand - Gather - Tile - Range - LayerNormalization - com.microsoft - FastGelu - MatMulNBits - MultiHeadAttention - RotaryEmbedding - SkipLayerNormalization - LayerNormalization - SimplifiedLayerNormalization - SkipSimplifiedLayerNormalization </details> <details> <summary><b>Build, test and CI pipeline integration</b></summary> - build works for Windows, macOS and iOS - support onnxruntime_test_all and python node test - added a new unit test for `--use_external_dawn` build flag. - updated MacOS pipeline to build with WebGPU support - added a new pipeline for WebGPU Windows </details> This change does not include: - Node.js binding support for WebGPU (will be a separate PR) |
||
|---|---|---|
| .. | ||
| jobs | ||
| stages | ||
| android-binary-size-check-stage.yml | ||
| android-dump-logs-from-steps.yml | ||
| android-java-api-aar-test.yml | ||
| android-java-api-aar.yml | ||
| build-linux-wasm-step.yml | ||
| c-api-artifacts-package-and-publish-steps-posix.yml | ||
| c-api-artifacts-package-and-publish-steps-windows.yml | ||
| c-api-cpu.yml | ||
| c-api-linux-cpu.yml | ||
| check-cache-stats.yml | ||
| check_test_result.yml | ||
| clean-agent-build-directory-step.yml | ||
| common-variables.yml | ||
| compliance.yml | ||
| component-governance-component-detection-steps.yml | ||
| download-deps.yml | ||
| esrp_nuget.yml | ||
| explicitly-defined-final-tasks.yml | ||
| final-jar-testing.yml | ||
| flex-downloadPipelineArtifact.yml | ||
| get-docker-image-steps.yml | ||
| install-appcenter.yml | ||
| jar-esrp-dll.yml | ||
| jar-maven-signing-linux.yml | ||
| jar-maven-signing-win.yml | ||
| java-api-artifacts-package-and-publish-steps-posix.yml | ||
| linux-build-step-with-cache.yml | ||
| linux-ci.yml | ||
| linux-cpu-packaging-pipeline.yml | ||
| linux-wasm-ci.yml | ||
| linux-web-init-and-check.yml | ||
| mac-build-step-with-cache.yml | ||
| mac-cpu-packaging-pipeline.yml | ||
| mac-cpu-packaging-steps.yml | ||
| mac-cpu-packing-jobs.yml | ||
| mac-esrp-dylib.yml | ||
| make_java_win_binaries.yml | ||
| nodejs-artifacts-package-and-publish-steps-posix.yml | ||
| nodejs-artifacts-package-and-publish-steps-windows.yml | ||
| ondevice-training-cpu-packaging-pipeline.yml | ||
| orttraining-linux-gpu-test-ci-pipeline.yml | ||
| publish-nuget-steps.yml | ||
| py-linux-qnn.yml | ||
| py-linux.yml | ||
| py-package-smoking-test.yml | ||
| py-packaging-linux-test-cpu.yml | ||
| py-packaging-linux-test-cuda.yml | ||
| py-packaging-selectable-stage.yml | ||
| py-packaging-training-cuda-stage-steps.yml | ||
| py-packaging-training-cuda-stage.yml | ||
| py-win-arm64-qnn.yml | ||
| py-win-arm64ec-qnn.yml | ||
| py-win-x64-qnn.yml | ||
| qnn-ep-win.yml | ||
| react-native-ci.yml | ||
| rocm.yml | ||
| run-docker-build-steps.yml | ||
| set-nightly-build-option-variable-step.yml | ||
| set-python-manylinux-variables-step.yml | ||
| set-version-number-variables-step.yml | ||
| telemetry-steps.yml | ||
| upload-code-coverage-data.yml | ||
| use-android-emulator.yml | ||
| use-android-ndk.yml | ||
| use-xcode-version.yml | ||
| validate-package.yml | ||
| web-browserstack-ci.yml | ||
| web-ci.yml | ||
| win-ci.yml | ||
| win-esrp-dll.yml | ||
| win-wasm-ci.yml | ||
| win-web-ci.yml | ||
| win-web-multi-browsers.yml | ||
| windowsai-steps.yml | ||
| with-container-registry-steps.yml | ||