From cbf0cf06db251594ae3a24877a131b5f75e729d8 Mon Sep 17 00:00:00 2001 From: Wanming Lin Date: Mon, 13 Nov 2023 00:56:39 +0800 Subject: [PATCH] [WebNN EP] Disable clamp fusion for WebNN GPU (#18386) As which has not been supported in WebNN DirectML backend. --- .../providers/webnn/builders/model_builder.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/onnxruntime/core/providers/webnn/builders/model_builder.cc b/onnxruntime/core/providers/webnn/builders/model_builder.cc index d26a1ca5ce32..b6631263dfb9 100644 --- a/onnxruntime/core/providers/webnn/builders/model_builder.cc +++ b/onnxruntime/core/providers/webnn/builders/model_builder.cc @@ -64,12 +64,15 @@ void ModelBuilder::PreprocessActivations() { const auto& op_type(node->OpType()); if (op_type == "Clip") { - float minValue, maxValue; - GetClipMinMax(GetInitializerTensors(), *node, minValue, maxValue, logger_); - emscripten::val options = emscripten::val::object(); - options.set("minValue", minValue); - options.set("maxValue", maxValue); - activation_nodes_.emplace(node->Index(), wnn_builder_.call("clamp", options)); + // Temporarily disable clamp fusion for WebNN GPU as which is not supported yet. + if (wnn_device_type_ == WebnnDeviceType::CPU) { + float minValue, maxValue; + GetClipMinMax(GetInitializerTensors(), *node, minValue, maxValue, logger_); + emscripten::val options = emscripten::val::object(); + options.set("minValue", minValue); + options.set("maxValue", maxValue); + activation_nodes_.emplace(node->Index(), wnn_builder_.call("clamp", options)); + } } else if (op_type == "Elu") { NodeAttrHelper helper(*node); emscripten::val options = emscripten::val::object();