Skip to Content
💡WebNN Origin Trial 即将到来!开发者很快将可以注册试用密钥进行体验 →

浏览器兼容性

设备选择示意图

Windows ML · OpenVINO Execution Provider

下图展示了 Windows ML 和 OpenVINO EP 的设备选择流程。

此图仅适用于配备 Intel 设备的 Windows 平台,并假设不存在非 Intel 硬件组件。 可以按优先级顺序选择多个设备。

根据各设备的能力,如果某些算子在设备上不受支持,计算图可能会被划分为多个子图,每个子图再被分配到合适的设备。如果所有算子都受支持,则整个计算图会被分配到优先级最高的已选设备。

默认 CPU 作为最终的回退设备,以确保对算子集合及单个算子的最大覆盖。

Windows ML · 通用执行提供程序(EP)选择

对于任何已注册的 EP(不仅是 OpenVINO),Chromium 的 ORT 后端(ort/environment.cc)会先对可用的 EP 设备排序,再按请求的 device 类型选择设备。

  1. 排序规则:NPU > GPU > CPU;GPU 中独立显卡优先于集成显卡;EP 厂商与硬件厂商一致者优先;WebGPU EP 优先于 DirectML EP;默认 CPU EP 始终排在最后。
  2. cpu:第一个 CPU EP 设备,加上默认 CPU EP。
  3. gpu:第一个 GPU EP 设备,加上 CPU 回退(默认 CPU EP 以及同厂商的 CPU EP)。如果没有 GPU,或唯一的 GPU 是软件适配器(例如 Microsoft Basic Render Driver / WARP),则使用 CPU 的选择结果。
  4. npu:第一个 NPU EP 设备加上 CPU 回退。如果没有 NPU,或其驱动版本低于该 EP 要求的最低版本,则使用 GPU 的选择结果。
  5. IHV EP 需要 Windows App Runtime 和 Windows 11 24H2+;否则只使用内置 EP。

可使用 --webnn-ort-ep-device=<ep_name>,<vendor_id>,<device_id> 开关在测试时覆盖选择结果。

Lite RT

下图展示了 WebNN LiteRT 后端的设备选择流程。该后端用于 ChromeOS、Linux、Android,也是 Windows 和 Apple 平台上的回退方案。

NPU 请求目前尚无 LiteRT 加速(crbug.com/454732289),在 XNNPACK 上运行。

Core ML

在 macOS 14.4+ 且为 Apple Silicon(非无痕模式)时,WebNN 会把请求的设备类型映射到 MLModelConfiguration.computeUnits。

device默认开启 kWebNNCoreMLExplicitGPUOrNPU 后
cpuMLComputeUnitsCPUOnlyMLComputeUnitsCPUOnly
gpuMLComputeUnitsAllMLComputeUnitsCPUAndGPU
npuMLComputeUnitsAllMLComputeUnitsCPUAndNeuralEngine
Last updated on