Skip to Content
🚧 The WebNN documentation is work-in-progress. Share feedback →

Browser Compatibility

Windows ML Backend / Windows

WebNNCPUGPUNPU
Windows✅ LiteRT/XNNPACK
ℹ️ WCR/MLAS (deprecated)
🚀ℹ️ Windows ML🚀ℹ️ Windows ML

OpenVINO EP

Additional Resources

ONNX Layers supported using OpenVINO

DirectML Backend / Windows (Deprecated)

May 20, 2025: DirectML was officially deprecated during Microsoft Build 2025. WebNN will leverage Windows ML to access OpenVINO and other EPs to get hardware acceleration.

WebNNCPUGPUNPU
Windows✅ LiteRT/XNNPACK
ℹ️ WCR/MLAS (deprecated)
✅ DirectML (deprecated)✅ DirectML (deprecated)

The WebNN DirectML backend mainly supported on Windows.

WebNN SpecOperationsChromium Version
argMax✅ REDUCE_FUNCTION_ARGMAXM122
argMin✅ REDUCE_FUNCTION_ARGMINM122
batchNormalization✅ BATCH_NORMALIZATIONM122
cast✅ CASTM122
clamp✅ ELEMENT_WISE_CLIPM119
concat✅ JOINM120
conv2d✅ CONVOLUTIONM119
convTranspose2d✅ CONVOLUTIONM121
cumulativeSum✅ CUMULATIVE_SUMMATIONM131
dequantizeLinear✅ ELEMENT_WISE_DEQUANTIZE_LINEARM132
element-wise binary / add✅ ELEMENT_WISE_ADDM119
element-wise binary / div✅ ELEMENT_WISE_DIVIDEM119
element-wise binary / max✅ ELEMENT_WISE_MAXM119
element-wise binary / min✅ ELEMENT_WISE_MINM119
element-wise binary / mul✅ ELEMENT_WISE_MULTIPLYM119
element-wise binary / notEqual✅ Emulated with ELEMENT_WISE_LOGICAL_EQUALS and ELEMENT_WISE_LOGICAL_NOTM134
element-wise binary / pow✅ ELEMENT_WISE_POWM119
element-wise binary / sub✅ ELEMENT_WISE_SUBTRACTM119
element-wise logical / equal✅ ELEMENT_WISE_LOGICAL_EQUALSM122
element-wise logical / greater✅ ELEMENT_WISE_LOGICAL_GREATER_THANM122
element-wise logical / greaterOrEqual✅ ELEMENT_WISE_LOGICAL_GREATER_THAN_OR_EQUALM122
element-wise logical / lesser✅ ELEMENT_WISE_LOGICAL_LESS_THANM122
element-wise logical / lesserOrEqual✅ ELEMENT_WISE_LOGICAL_LESS_THAN_OR_EQUALM122
element-wise logical / logicalAnd✅ ELEMENT_WISE_LOGICAL_ANDM131
element-wise logical / logicalOr✅ ELEMENT_WISE_LOGICAL_ORM131
element-wise logical / logicalXor✅ ELEMENT_WISE_LOGICAL_XORM131
element-wise logical / not✅ ELEMENT_WISE_LOGICAL_NOTM121
element-wise unary / abs✅ ELEMENT_WISE_ABSM121
element-wise unary / ceil✅ ELEMENT_WISE_CEILM121
element-wise unary / identity✅ ELEMENT_WISE_IDENTITYM121
element-wise unary / cos✅ ELEMENT_WISE_COSM121
element-wise unary / erf✅ ELEMENT_WISE_ERFM121
element-wise unary / exp✅ ELEMENT_WISE_EXPM121
element-wise unary / floor✅ ELEMENT_WISE_FLOORM121
element-wise unary / log✅ ELEMENT_WISE_LOGM121
element-wise unary / neg✅ ELEMENT_WISE_NEGATEM121
element-wise unary / reciprocal✅ ELEMENT_WISE_RECIPM121
element-wise unary / sin✅ ELEMENT_WISE_SINM121
element-wise unary / sqrt✅ ELEMENT_WISE_SQRTM121
element-wise unary / tan✅ ELEMENT_WISE_TANM121
elu✅ ACTIVATION_ELUM121
expand✅ ELEMENT_WISE_IDENTITYM121
gather✅ GATHERM122
gatherElements✅ GATHER_ELEMENTSM130
gatherND✅ GATHER_NDM131
gelu✅ ACTIVATION_GELUM126
gemm✅ GEMMM119
gru✅ GRUM125
gruCell✅ GRUM125
hardSigmoid✅ ACTIVATION_HARD_SIGMOIDM123
hardSwish✅ Map to other opM123
instanceNormalization✅ MEAN_VARIANCE_NORMALIZATION1M122
layerNormalization✅ MEAN_VARIANCE_NORMALIZATION1M122
leakyRelu✅ ACTIVATION_LEAKY_RELUM121
linear✅ ACTIVATION_LINEARM122
lstm✅ LSTMM125
lstmCell✅ LSTMM125
matmul✅ GEMMM121
pad✅ PADDINGM120
pooling / averagePool2d✅ AVERAGE_POOLINGM119
pooling / l2Pool2d✅ LP_POOLINGM123
pooling / maxPool2d✅ MAX_POOLING2M119
prelu✅ ACTIVATION_PARAMETERIZED_RELUM120
quantizeLinear✅ ELEMENT_WISE_QUANTIZE_LINEARM132
reduction / reduceL1✅ REDUCE_FUNCTION_L1M121
reduction / reduceL2✅ REDUCE_FUNCTION_L2M121
reduction / reduceLogSum✅ REDUCE_FUNCTION_LOG_SUMM121
reduction / reduceLogSumExp✅ REDUCE_FUNCTION_LOG_SUM_EXPM121
reduction / reduceMax✅ REDUCE_FUNCTION_MAXM121
reduction / reduceMean✅ REDUCE_FUNCTION_AVERAGEM121
reduction / reduceMin✅ REDUCE_FUNCTION_MINM121
reduction / reduceProduct✅ REDUCE_FUNCTION_MULTIPLYM121
reduction / reduceSum✅ REDUCE_FUNCTION_SUMM121
reduction / reduceSumSquare✅ REDUCE_FUNCTION_SUM_SQUAREM121
relu✅ ACTIVATION_RELUM119
resample2d✅ RESAMPLEM121
reshape✅ Supported by tensor stridesM119
reverse✅ SLICE1M133
scatterElements✅ SCATTER_ELEMENTSM132
scatterND✅ SCATTER_NDM131
sigmoid✅ ACTIVATION_SIGMOIDM121
sign✅ ELEMENT_WISE_SIGNM130
slice✅ SLICEM120
softmax✅ ACTIVATION_SOFTMAXM119
softplus✅ ACTIVATION_SOFTPLUSM122
softsign✅ ACTIVATION_SOFTSIGNM123
split✅ SPLITM120
tanh✅ ACTIVATION_TANHM121
tile✅ TILEM130
transpose✅ Supported by tensor stridesM120
triangular✅ Supported by combined operationsM126
where✅ ELEMENT_WISE_IFM122
Last updated on