onnxruntime/tools/ci_build
Wanming Lin 00b1e79e04
Support WebNN EP (#15698)
**Description**: 

This PR intends to enable WebNN EP in ONNX Runtime Web. It translates
the ONNX nodes by [WebNN
API](https://webmachinelearning.github.io/webnn/), which is implemented
in C++ and uses Emscripten [Embind
API](https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html#).
Temporarily using preferred layout **NHWC** for WebNN graph partitions
since the restriction in WebNN XNNPack backend implementation and the
ongoing
[discussion](https://github.com/webmachinelearning/webnn/issues/324) in
WebNN spec that whether WebNN should support both 'NHWC' and 'NCHW'
layouts. No WebNN native EP, only for Web.

**Motivation and Context**:
Allow ONNXRuntime Web developers to access WebNN API to benefit from
hardware acceleration.

**WebNN API Implementation Status in Chromium**:
- Tracked in Chromium issue:
[#1273291](https://bugs.chromium.org/p/chromium/issues/detail?id=1273291)
- **CPU device**: based on XNNPack backend, and had been available on
Chrome Canary M112 behind "#enable-experimental-web-platform-features"
flag for Windows and Linux platforms. Further implementation for more
ops is ongoing.
- **GPU device**: based on DML, implementation is ongoing.

**Open**:
- GitHub CI: WebNN currently is only available on Chrome Canary/Dev with
XNNPack backend for Linux and Windows. This is an open to reviewers to
help identify which GitHub CI should involved the WebNN EP and guide me
to enable it. Thanks!
2023-05-08 21:25:10 -07:00
..
github upgrade emsdk to 3.1.37 (#15817) 2023-05-08 16:49:47 -07:00
__init__.py
amd_hipify.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
build.py Support WebNN EP (#15698) 2023-05-08 21:25:10 -07:00
clean_docker_image_cache.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
coverage.py
gen_def.py [VitisAI]Update VitisAI EP to be compatible with VitisAI 3.5 (#15673) 2023-05-01 08:28:26 -07:00
get_docker_image.py Bump ruff in CI (#15533) 2023-04-17 10:11:44 -07:00
logger.py
op_registration_utils.py Support additional op domains in op reduction script. (#15424) 2023-04-11 08:57:51 -07:00
op_registration_validator.py Update kernel registration validation to allow kernel registrations to appear in arbitrary order. (#15705) 2023-04-27 18:49:31 -07:00
patch_manylinux.py detach patch manylinux from get_docker_image (#14958) 2023-03-09 15:40:58 +08:00
policheck_exclusions.xml
reduce_op_kernels.py Bump ruff in CI (#15533) 2023-04-17 10:11:44 -07:00
replace_urls_in_deps.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
requirements.txt upgrade protobuf to 3.20.2 and onnx to 1.13 (#14279) 2023-01-31 12:55:09 -08:00
update_tsaoptions.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00
upload_python_package_to_azure_storage.py Adopt linrtunner as the linting tool - take 2 (#15085) 2023-03-24 15:29:03 -07:00