diff --git a/onnxruntime/contrib_ops/cpu/layer_norm.cc b/onnxruntime/contrib_ops/cpu/layer_norm.cc index 387857c941..2fd931db1c 100644 --- a/onnxruntime/contrib_ops/cpu/layer_norm.cc +++ b/onnxruntime/contrib_ops/cpu/layer_norm.cc @@ -15,7 +15,7 @@ namespace contrib { ONNX_OPERATOR_TYPED_KERNEL_EX( \ LayerNormalization, \ kOnnxDomain, \ - 9, \ + 1, \ T, \ kCpuExecutionProvider, \ KernelDefBuilder() \ diff --git a/onnxruntime/contrib_ops/cpu_contrib_kernels.cc b/onnxruntime/contrib_ops/cpu_contrib_kernels.cc index db05ed5b3a..e18ccf10ed 100644 --- a/onnxruntime/contrib_ops/cpu_contrib_kernels.cc +++ b/onnxruntime/contrib_ops/cpu_contrib_kernels.cc @@ -67,8 +67,8 @@ class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMSNchwcDomai class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMSNchwcDomain, 1, float, GlobalMaxPool); class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMSNchwcDomain, 1, float, AveragePool); class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMSNchwcDomain, 1, float, GlobalAveragePool); -class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 9, float, LayerNormalization); -class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 9, double, LayerNormalization); +class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, float, LayerNormalization); +class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, double, LayerNormalization); class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMSDomain, 1, float, SkipLayerNormalization); class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMSDomain, 1, double, SkipLayerNormalization); @@ -141,8 +141,8 @@ Status RegisterCpuContribKernels(KernelRegistry& kernel_registry) { BuildKernelCreateInfo, BuildKernelCreateInfo, BuildKernelCreateInfo, - BuildKernelCreateInfo, - BuildKernelCreateInfo, + BuildKernelCreateInfo, + BuildKernelCreateInfo, BuildKernelCreateInfo, BuildKernelCreateInfo, }; diff --git a/onnxruntime/contrib_ops/cuda/layer_norm.cc b/onnxruntime/contrib_ops/cuda/layer_norm.cc index 723574fcfe..f295990817 100644 --- a/onnxruntime/contrib_ops/cuda/layer_norm.cc +++ b/onnxruntime/contrib_ops/cuda/layer_norm.cc @@ -15,7 +15,7 @@ namespace cuda { ONNX_OPERATOR_TYPED_KERNEL_EX( \ LayerNormalization, \ kOnnxDomain, \ - 9, \ + 1, \ T##_##U, \ kCudaExecutionProvider, \ KernelDefBuilder() \ diff --git a/onnxruntime/contrib_ops/cuda_contrib_kernels.cc b/onnxruntime/contrib_ops/cuda_contrib_kernels.cc index d18869aa46..674546219a 100644 --- a/onnxruntime/contrib_ops/cuda_contrib_kernels.cc +++ b/onnxruntime/contrib_ops/cuda_contrib_kernels.cc @@ -47,9 +47,9 @@ class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCudaExecutionProvider, kMSDomain, 1 class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCudaExecutionProvider, kOnnxDomain, 1, float, ThresholdedRelu); class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCudaExecutionProvider, kOnnxDomain, 1, double, ThresholdedRelu); class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCudaExecutionProvider, kOnnxDomain, 1, MLFloat16, ThresholdedRelu); -class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCudaExecutionProvider, kOnnxDomain, 9, float_float, LayerNormalization); -class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCudaExecutionProvider, kOnnxDomain, 9, double_float, LayerNormalization); -class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCudaExecutionProvider, kOnnxDomain, 9, MLFloat16_float, LayerNormalization); +class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCudaExecutionProvider, kOnnxDomain, 1, float_float, LayerNormalization); +class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCudaExecutionProvider, kOnnxDomain, 1, double_float, LayerNormalization); +class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCudaExecutionProvider, kOnnxDomain, 1, MLFloat16_float, LayerNormalization); void RegisterCudaContribKernels(KernelRegistry& kernel_registry) { static const BuildKernelCreateInfoFn function_table[] = { @@ -91,9 +91,9 @@ void RegisterCudaContribKernels(KernelRegistry& kernel_registry) { BuildKernelCreateInfo, BuildKernelCreateInfo, BuildKernelCreateInfo, - BuildKernelCreateInfo, - BuildKernelCreateInfo, - BuildKernelCreateInfo}; + BuildKernelCreateInfo, + BuildKernelCreateInfo, + BuildKernelCreateInfo}; for (auto& function_table_entry : function_table) { kernel_registry.Register(function_table_entry()); diff --git a/onnxruntime/core/graph/contrib_ops/contrib_defs.cc b/onnxruntime/core/graph/contrib_ops/contrib_defs.cc index d32ee8f961..0bcbe7aa32 100644 --- a/onnxruntime/core/graph/contrib_ops/contrib_defs.cc +++ b/onnxruntime/core/graph/contrib_ops/contrib_defs.cc @@ -2387,7 +2387,7 @@ Example 4: ONNX_CONTRIB_OPERATOR_SCHEMA(LayerNormalization) .SetDomain(kOnnxDomain) - .SinceVersion(9) + .SinceVersion(1) .SetSupportLevel(OpSchema::SupportType::EXPERIMENTAL) .SetDoc("LayerNormalization") .Attr("axis", diff --git a/onnxruntime/core/optimizer/attention_fusion.cc b/onnxruntime/core/optimizer/attention_fusion.cc index d3decdd761..caab616eca 100644 --- a/onnxruntime/core/optimizer/attention_fusion.cc +++ b/onnxruntime/core/optimizer/attention_fusion.cc @@ -280,7 +280,7 @@ Status AttentionFusion::ApplyImpl(Graph& graph, bool& modified, int graph_level, ORT_RETURN_IF_ERROR(Recurse(node, modified, graph_level, logger)); if (node.GetOutputEdgesCount() == 4 && - graph_utils::IsSupportedOptypeVersionAndDomain(node, "LayerNormalization", {9}, kOnnxDomain) && + graph_utils::IsSupportedOptypeVersionAndDomain(node, "LayerNormalization", {1}, kOnnxDomain) && graph_utils::IsSupportedProvider(node, GetCompatibleExecutionProviders())) { // Get hidden size from layer norm bias tensor shape. const NodeArg& layer_norm_bias = *(node.InputDefs()[2]); @@ -389,7 +389,7 @@ bool AttentionFusion::FuseSubGraph(Node& layer_norm, const Node& add_after_layer {0, 0, "Reshape", {5}, kOnnxDomain}, {0, 0, "Add", {7}, kOnnxDomain}, {0, 0, "MatMul", {1, 9}, kOnnxDomain}, - {0, 0, "LayerNormalization", {9}, kOnnxDomain}}; + {0, 0, "LayerNormalization", {1}, kOnnxDomain}}; std::vector edges; if (!graph_utils::FindPath(add_after_layer_norm, true, parent_path, edges, logger)) { @@ -532,7 +532,7 @@ bool AttentionFusion::FuseSubGraph(Node& layer_norm, const Node& add_after_layer {0, 0, "Reshape", {5}, kOnnxDomain}, {0, 0, "Add", {7}, kOnnxDomain}, {0, 0, "MatMul", {1, 9}, kOnnxDomain}, - {0, 0, "LayerNormalization", {9}, kOnnxDomain}}; + {0, 0, "LayerNormalization", {1}, kOnnxDomain}}; if (!graph_utils::FindPath(mask_add, true, q_path, edges, logger)) { DEBUG_LOG("Failed to find path for q"); @@ -583,7 +583,7 @@ bool AttentionFusion::FuseSubGraph(Node& layer_norm, const Node& add_after_layer {0, 0, "Reshape", {5}, kOnnxDomain}, {0, 0, "Add", {7}, kOnnxDomain}, {0, 0, "MatMul", {1, 9}, kOnnxDomain}, - {0, 0, "LayerNormalization", {9}, kOnnxDomain}}; + {0, 0, "LayerNormalization", {1}, kOnnxDomain}}; if (!graph_utils::FindPath(qk_matmul, true, k_path, edges, logger)) { DEBUG_LOG("Failed to find path for k"); diff --git a/onnxruntime/core/optimizer/embed_layer_norm_fusion.cc b/onnxruntime/core/optimizer/embed_layer_norm_fusion.cc index ea726ff749..49d2b7b5c5 100644 --- a/onnxruntime/core/optimizer/embed_layer_norm_fusion.cc +++ b/onnxruntime/core/optimizer/embed_layer_norm_fusion.cc @@ -498,7 +498,7 @@ Status EmbedLayerNormFusion::ApplyImpl(Graph& graph, bool& modified, int graph_l Node& layer_norm_node = *p_layer_norm; ORT_RETURN_IF_ERROR(Recurse(layer_norm_node, modified, graph_level, logger)); - if (!graph_utils::IsSupportedOptypeVersionAndDomain(layer_norm_node, "LayerNormalization", {9}, kOnnxDomain) || + if (!graph_utils::IsSupportedOptypeVersionAndDomain(layer_norm_node, "LayerNormalization", {1}, kOnnxDomain) || !graph_utils::IsSupportedProvider(layer_norm_node, GetCompatibleExecutionProviders())) { continue; } diff --git a/onnxruntime/core/optimizer/skip_layer_norm_fusion.cc b/onnxruntime/core/optimizer/skip_layer_norm_fusion.cc index 8edeec1939..c76781d28f 100644 --- a/onnxruntime/core/optimizer/skip_layer_norm_fusion.cc +++ b/onnxruntime/core/optimizer/skip_layer_norm_fusion.cc @@ -139,7 +139,7 @@ Status SkipLayerNormFusion::ApplyImpl(Graph& graph, bool& modified, int graph_le Node& ln_node = *p_layernorm; ORT_RETURN_IF_ERROR(Recurse(ln_node, modified, graph_level, logger)); - if (!graph_utils::IsSupportedOptypeVersionAndDomain(ln_node, "LayerNormalization", {9}) || + if (!graph_utils::IsSupportedOptypeVersionAndDomain(ln_node, "LayerNormalization", {1}) || !graph_utils::IsSupportedProvider(ln_node, GetCompatibleExecutionProviders()) || !IsSupportedDataType(ln_node)) { continue;