From 9204cd73920b725219719eb4162b9dc04b02f170 Mon Sep 17 00:00:00 2001 From: Guenther Schmuelling Date: Sat, 12 Aug 2023 11:43:39 -0700 Subject: [PATCH] [js/webgpu] Add C++ registration for operator Tanh in JSEP (#17124) add webgpu/tanh Co-authored-by: Yulong Wang <7679871+fs-eire@users.noreply.github.com> --- js/web/docs/webgpu-operators.md | 1 + onnxruntime/core/providers/js/js_execution_provider.cc | 4 ++++ onnxruntime/core/providers/js/operators/unary.cc | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/js/web/docs/webgpu-operators.md b/js/web/docs/webgpu-operators.md index 84bf69b51f..45c237eaf2 100644 --- a/js/web/docs/webgpu-operators.md +++ b/js/web/docs/webgpu-operators.md @@ -75,6 +75,7 @@ Do not modify directly.* | Squeeze | ai.onnx(1-10,11-12,13+) | | | Sub | ai.onnx(7-12,13,14+) | | | Tan | ai.onnx(7+) | | +| Tanh | ai.onnx(6-12,13+) | | | ThresholdedRelu | ai.onnx(10+) | | | Transpose | ai.onnx(1-12,13+) | need perf optimization | | Unsqueeze | ai.onnx(1-10,11-12,13+) | | diff --git a/onnxruntime/core/providers/js/js_execution_provider.cc b/onnxruntime/core/providers/js/js_execution_provider.cc index 102b2f6cc0..2061dd05fd 100644 --- a/onnxruntime/core/providers/js/js_execution_provider.cc +++ b/onnxruntime/core/providers/js/js_execution_provider.cc @@ -107,6 +107,8 @@ class ONNX_OPERATOR_KERNEL_CLASS_NAME(kJsExecutionProvider, kOnnxDomain, 9, Cosh class ONNX_OPERATOR_KERNEL_CLASS_NAME(kJsExecutionProvider, kOnnxDomain, 9, Asinh); class ONNX_OPERATOR_KERNEL_CLASS_NAME(kJsExecutionProvider, kOnnxDomain, 9, Acosh); class ONNX_OPERATOR_KERNEL_CLASS_NAME(kJsExecutionProvider, kOnnxDomain, 9, Atanh); +class ONNX_OPERATOR_VERSIONED_KERNEL_CLASS_NAME(kJsExecutionProvider, kOnnxDomain, 6, 12, Tanh); +class ONNX_OPERATOR_KERNEL_CLASS_NAME(kJsExecutionProvider, kOnnxDomain, 13, Tanh); class ONNX_OPERATOR_VERSIONED_KERNEL_CLASS_NAME(kJsExecutionProvider, kOnnxDomain, 6, 10, Clip); class ONNX_OPERATOR_VERSIONED_KERNEL_CLASS_NAME(kJsExecutionProvider, kOnnxDomain, 11, 11, Clip); @@ -329,6 +331,8 @@ std::unique_ptr RegisterKernels() { KERNEL_CREATE_INFO(9, Asinh), KERNEL_CREATE_INFO(9, Acosh), KERNEL_CREATE_INFO(9, Atanh), + KERNEL_CREATE_INFO_VERSIONED(6, 12, Tanh), + KERNEL_CREATE_INFO(13, Tanh), // activations KERNEL_CREATE_INFO_VERSIONED(6, 10, Clip), diff --git a/onnxruntime/core/providers/js/operators/unary.cc b/onnxruntime/core/providers/js/operators/unary.cc index ab1d0da625..fd961f53dd 100644 --- a/onnxruntime/core/providers/js/operators/unary.cc +++ b/onnxruntime/core/providers/js/operators/unary.cc @@ -89,6 +89,10 @@ JSEP_ELEMENTWISE_KERNEL(Acosh, 9, float, Acosh) JSEP_KERNEL_IMPL(Atanh, Atanh) JSEP_ELEMENTWISE_KERNEL(Atanh, 9, float, Atanh) +JSEP_KERNEL_IMPL(Tanh, Tanh) +JSEP_ELEMENTWISE_VERSIONED_KERNEL(Tanh, 6, 12, float, Tanh) +JSEP_ELEMENTWISE_KERNEL(Tanh, 13, float, Tanh) + // activation JSEP_CLASS_IMPL_ATTRIBUTE_FLOAT_2_DEFAULT(ClipV10, ClipV10, min, 3.402823e+38f, max, -3.402823e+38f)