onnxruntime/tools/ci_build/github/apple
Yulong Wang 7a8fa12850
Add implementation of WebGPU EP (#22591)
### 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)
2024-10-29 18:29:40 -07:00
..
c Updates to apple packaging (#21611) 2024-08-06 08:50:56 +10:00
ios_packaging Rename ios_packaging.requirements.txt to ios_packaging/requirements.txt (#21936) 2024-09-04 13:18:05 -07:00
objectivec Updates to apple packaging (#21611) 2024-08-06 08:50:56 +10:00
__init__.py
assemble_apple_packaging_artifacts.sh Updates to apple packaging (#21611) 2024-08-06 08:50:56 +10:00
build_and_assemble_apple_pods.py Initial WebGPU EP checkin (#22318) 2024-10-08 16:10:46 -07:00
build_apple_framework.py Updates to apple packaging (#21611) 2024-08-06 08:50:56 +10:00
coreml_supported_mlprogram_ops.md Fix syntax for some CoreML ML Program supported operator entries (#22268) 2024-10-01 15:49:43 +10:00
coreml_supported_neuralnetwork_ops.md Match changes in gh-pages PR (#21628) 2024-08-08 10:29:15 +10:00
default_full_apple_framework_build_settings.json Add implementation of WebGPU EP (#22591) 2024-10-29 18:29:40 -07:00
default_full_ios_framework_build_settings.json Add implementation of WebGPU EP (#22591) 2024-10-29 18:29:40 -07:00
default_training_ios_framework_build_settings.json Upgrade min ios version to 13.0 (#20773) 2024-06-04 10:15:20 -07:00
default_vision_os_framework_build_settings.json Support visionos build (#20365) 2024-04-23 18:15:07 -07:00
framework_info.json.template
get_simulator_device_info.py Specify iOS simulator runtime version (#22474) 2024-10-18 09:26:06 -07:00
package_assembly_utils.py Updates to apple packaging (#21611) 2024-08-06 08:50:56 +10:00
package_release_tasks.py Update package_release_tasks.py (#20835) 2024-05-28 17:50:25 -07:00
test_apple_packages.py Updates to apple packaging (#21611) 2024-08-06 08:50:56 +10:00
test_ios_framework_build_settings.json [Fix] Exception in iosDynamicFramework Post-Merge workflow (#21262) 2024-07-12 09:24:12 -07:00
test_minimal_training_ios_simulator_framework_build_settings.json Upgrade min ios version to 13.0 (#20773) 2024-06-04 10:15:20 -07:00
use_ios_pods_with_custom_build.md Remove deprecated "mobile" packages (#20941) 2024-06-07 16:20:32 -05:00