浏览器兼容性
设备选择示意图
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 类型选择设备。
- 排序规则:NPU > GPU > CPU;GPU 中独立显卡优先于集成显卡;EP 厂商与硬件厂商一致者优先;WebGPU EP 优先于 DirectML EP;默认 CPU EP 始终排在最后。
cpu:第一个 CPU EP 设备,加上默认 CPU EP。gpu:第一个 GPU EP 设备,加上 CPU 回退(默认 CPU EP 以及同厂商的 CPU EP)。如果没有 GPU,或唯一的 GPU 是软件适配器(例如 Microsoft Basic Render Driver / WARP),则使用 CPU 的选择结果。npu:第一个 NPU EP 设备加上 CPU 回退。如果没有 NPU,或其驱动版本低于该 EP 要求的最低版本,则使用 GPU 的选择结果。- 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 后 |
|---|---|---|
cpu | MLComputeUnitsCPUOnly | MLComputeUnitsCPUOnly |
gpu | MLComputeUnitsAll | MLComputeUnitsCPUAndGPU |
npu | MLComputeUnitsAll | MLComputeUnitsCPUAndNeuralEngine |
Last updated on