Debugging
Use Custom Build of ONNX Runtime
- Follow the WebNN Installation Guide to enable WebNN API and switch to Windows ML / ONNX Runtime backend
- Put the ONNX Runtime dynamic link librares into a folder under
C:\Program Files\, e.g.C:\Program Files\ONNXRuntime - Launch your Chrome or Edge browser with switch
--webnn-ort-library-path-for-testing
"%LOCALAPPDATA%\Google\Chrome SxS\Application\chrome.exe" --webnn-ort-library-path-for-testing="C:\Program Files\ONNXRuntime" --allow-third-party-modules"%LOCALAPPDATA%\Microsoft\Edge SxS\Application\msedge.exe" --webnn-ort-library-path-for-testing="C:\Program Files\ONNXRuntime" --allow-third-party-modulesUse Custom Build of Execution Providers
If you are running WebNN on AMD, Intel, Nvidia, or Qualcomm devices and need to debug WebNN using specific Execution Provider of ONNX Runtime:
- Follow the WebNN Installation Guide to enable WebNN API and switch to Windows ML / ONNX Runtime backend
- Put the ONNX Runtime and Execution Provider dynamic link librares into a folder under
C:\Program Files\, e.g.C:\Program Files\ONNXRuntime-EP - Launch your Chrome or Edge browser with switch
--webnn-ort-ep-library-path-for-testing
Execution Provider Mapping Table for Independent Hardware Vendors
| IHVs | Execution Provider | DLL |
|---|---|---|
| OpenVINOExecutionProvider | onnxruntime_providers_openvino_plugin.dll | |
| TBD | TBD | |
| NvTensorRTRTXExecutionProvider | onnxruntime_providers_nv_tensorrt_rtx.dll | |
| QNNExecutionProvider | onnxruntime_providers_qnn.dll |
Intel OpenVINO Execution Provider
The following examples show how to specify the locations of ONNX Runtime and Intel OpenVINO Execution Provider libraries:
"%LOCALAPPDATA%\Google\Chrome SxS\Application\chrome.exe" --webnn-ort-ep-library-path-for-testing=OpenVINOExecutionProvider?"C:\Program Files\ONNXRuntime-EP\onnxruntime_providers_openvino_plugin.dll" --allow-third-party-modules"%LOCALAPPDATA%\Microsoft\Edge SxS\Application\msedge.exe" --webnn-ort-ep-library-path-for-testing=OpenVINOExecutionProvider?"C:\Program Files\ONNXRuntime-EP\onnxruntime_providers_openvino_plugin.dll" --allow-third-party-modulesOther IHVs
AMD (TBD)
TBD
Nvidia Nv Tensor RT RTX Execution Provider
"%LOCALAPPDATA%\Google\Chrome SxS\Application\chrome.exe" --webnn-ort-ep-library-path-for-testing=NvTensorRTRTXExecutionProvider?"C:\Program Files\ONNXRuntime-EP\onnxruntime_providers_nv_tensorrt_rtx.dll" --allow-third-party-modules"%LOCALAPPDATA%\Microsoft\Edge SxS\Application\msedge.exe" --webnn-ort-ep-library-path-for-testing=NvTensorRTRTXExecutionProvider?"C:\Program Files\ONNXRuntime-EP\onnxruntime_providers_nv_tensorrt_rtx.dll" --allow-third-party-modulesQualcomm QNN Execution Provider
"%LOCALAPPDATA%\Google\Chrome SxS\Application\chrome.exe" --webnn-ort-ep-library-path-for-testing=QNNExecutionProvider?"C:\Program Files\ONNXRuntime-EP\onnxruntime_providers_qnn.dll" --allow-third-party-modules"%LOCALAPPDATA%\Microsoft\Edge SxS\Application\msedge.exe" --webnn-ort-ep-library-path-for-testing=QNNExecutionProvider?"C:\Program Files\ONNXRuntime-EP\onnxruntime_providers_qnn.dll" --allow-third-party-modulesUse Custom Build of GPU or NPU Drivers
If you are testing with custom or internal GPU or NPU drivers, add the --allow-third-party-modules switch when launching the browser.
"%LOCALAPPDATA%\Google\Chrome SxS\Application\chrome.exe" --allow-third-party-modules"%LOCALAPPDATA%\Microsoft\Edge SxS\Application\msedge.exe" --allow-third-party-modulesDebug Sandbox Issues
In some cases, you may need to debug WebNN by disabling Chromium’s security sandbox using the --disable-gpu-sandbox switch.
"%LOCALAPPDATA%\Google\Chrome SxS\Application\chrome.exe" --disable-gpu-sandbox"%LOCALAPPDATA%\Microsoft\Edge SxS\Application\msedge.exe" --disable-gpu-sandboxInspect the Verbose Logging
You can configure the logging severity level of ONNX Runtime using the switch --webnn-ort-logging-level. Other available severity levels include “INFO”, “WARNING”, “ERROR” (default), and “FATAL”.
"%LOCALAPPDATA%\Google\Chrome SxS\Application\chrome.exe" --webnn-ort-logging-level=VERBOSE"%LOCALAPPDATA%\Microsoft\Edge SxS\Application\msedge.exe" --webnn-ort-logging-level=VERBOSEAdditional Debug Options
Additional WebNN switches are available:
--webnn-ort-graph-optimization-level--webnn-ort-enable-profiling--webnn-ort-dump-model--webnn-tflite-dump-model