From 5c89c37f7fb448a5a36e32cdd6f8a1c7c02cbceb Mon Sep 17 00:00:00 2001 From: Edward Chen <18449977+edgchen1@users.noreply.github.com> Date: Tue, 27 Sep 2022 14:04:15 -0700 Subject: [PATCH] Consolidate enabled/default kernel def type constraints (#13034) Consolidate enabled/default kernel def type constraint types into enabled. --- .../core/framework/kernel_def_builder.h | 59 +++++---------- .../core/framework/kernel_def_builder.cc | 65 ++++++----------- onnxruntime/core/framework/kernel_registry.cc | 2 +- .../cpu/generator/constant_of_shape.cc | 5 -- .../core/providers/cpu/generator/random.cc | 15 ---- .../core/providers/cpu/generator/range.cc | 4 -- onnxruntime/core/providers/cpu/math/clip.cc | 16 ++--- .../providers/cpu/math/element_wise_ops.cc | 71 +++++++------------ onnxruntime/core/providers/cpu/math/sign.cc | 4 -- onnxruntime/core/providers/cpu/nn/pool.cc | 6 -- onnxruntime/core/providers/cpu/nn/shrink.cc | 3 - .../providers/cpu/sequence/sequence_ops.cc | 3 - .../core/providers/cpu/tensor/cast_op.cc | 12 ++-- .../core/providers/cpu/tensor/concat.cc | 2 - .../core/providers/cpu/tensor/eye_like.cc | 4 -- .../core/providers/cpu/tensor/gather.cc | 8 +-- .../core/providers/cpu/tensor/isinf.cc | 4 -- onnxruntime/core/providers/cpu/tensor/pad.cc | 9 --- .../providers/cpu/tensor/reverse_sequence.cc | 3 - .../core/providers/cpu/tensor/scatter.cc | 8 --- .../core/providers/cpu/tensor/scatter_nd.cc | 5 -- .../core/providers/cpu/tensor/slice.cc | 18 ++--- .../core/providers/cpu/tensor/split.cc | 5 -- .../core/providers/cpu/tensor/transpose.cc | 6 +- .../core/providers/cpu/tensor/unique.cc | 3 - .../core/providers/op_kernel_type_control.h | 31 -------- 26 files changed, 89 insertions(+), 282 deletions(-) diff --git a/include/onnxruntime/core/framework/kernel_def_builder.h b/include/onnxruntime/core/framework/kernel_def_builder.h index 8b6a2571a5..55aa72bfe7 100644 --- a/include/onnxruntime/core/framework/kernel_def_builder.h +++ b/include/onnxruntime/core/framework/kernel_def_builder.h @@ -3,17 +3,17 @@ #pragma once +#include #include +#include #include #include #include -#include #include "core/common/common.h" -#include "core/common/optional.h" -#include "core/graph/basic_types.h" -#include "core/framework/data_types.h" #include "core/framework/allocator.h" +#include "core/framework/data_types.h" +#include "core/graph/basic_types.h" namespace onnxruntime { class KernelDefBuilder; @@ -53,16 +53,9 @@ class KernelDef { return provider_type_; } - // TODO(edgchen1) do we need both TypeConstraints() and EnabledTypeConstraints()? - - // type constraints with types supported by default - const std::unordered_map>& TypeConstraints() const { - return default_type_constraints_; - } - // type constraints with types supported in this build - const std::unordered_map>& EnabledTypeConstraints() const { - return enabled_type_constraints_; + const std::unordered_map>& TypeConstraints() const { + return type_constraints_; } const std::vector>& MayInplace() const { @@ -73,7 +66,7 @@ class KernelDef { return alias_map_; } - const optional>& VariadicAlias() const { + const std::optional>& VariadicAlias() const { return variadic_alias_offsets_; } @@ -130,12 +123,9 @@ class KernelDef { // The type of the execution provider. std::string provider_type_; - // The data types that are supported by default for inputs/outputs. - // Key is input/output/type constraint name defined in op schema, Value are supported types. - std::unordered_map> default_type_constraints_; - - // the type constraints that are supported in this build (enabled) for the kernel - std::unordered_map> enabled_type_constraints_; + // The data types that are supported in this build (enabled) for inputs/outputs. + // Key is input/output/type constraint name defined in op schema, Value is supported types. + std::unordered_map> type_constraints_; // An element means that output j reuses the memory of input i. std::vector> inplace_map_; @@ -145,7 +135,7 @@ class KernelDef { // This variable stores for the variadic alias mapping // output 'i + output_offset' is an alias of input 'i + input_offset' for all i >= 0 - optional> variadic_alias_offsets_; + std::optional> variadic_alias_offsets_; // Require input tensors to be allocated contiguously. bool allocate_inputs_contiguously_ = false; @@ -210,7 +200,7 @@ class KernelDefBuilder { /** The execution provider type of the kernel. */ - KernelDefBuilder& Provider(onnxruntime::ProviderType provider_type); + KernelDefBuilder& Provider(ProviderType provider_type); KernelDefBuilder& Provider(const char* provider_type); /** @@ -219,27 +209,16 @@ class KernelDefBuilder { @param arg_name The arg name can be either op formal parameter name, say "X", or type argument name specified in op schema, say "T". - @param default_types The types that are supported by default. - @param enabled_types The types that are supported in this build. - Possibly different from default_types when type reduction is enabled. + @param types The types that are supported in this build. */ - KernelDefBuilder& TypeConstraint(const std::string& arg_name, - const std::vector& default_types); - KernelDefBuilder& TypeConstraint(const char* arg_name, - const std::vector& default_types); - - KernelDefBuilder& TypeConstraint(const std::string& arg_name, - const std::vector& default_types, - const std::vector& enabled_types); - KernelDefBuilder& TypeConstraint(const char* arg_name, - const std::vector& default_types, - const std::vector& enabled_types); + KernelDefBuilder& TypeConstraint(const std::string& arg_name, std::vector types); + KernelDefBuilder& TypeConstraint(const char* arg_name, std::vector types); /** Like TypeConstraint but supports just a single type. */ - KernelDefBuilder& TypeConstraint(const std::string& arg_name, MLDataType default_type); - KernelDefBuilder& TypeConstraint(const char* arg_name, MLDataType default_type); + KernelDefBuilder& TypeConstraint(const std::string& arg_name, MLDataType type); + KernelDefBuilder& TypeConstraint(const char* arg_name, MLDataType type); /** Inplace mapping from inputs to outputs allowed. @@ -367,10 +346,6 @@ class KernelDefBuilder { } private: - KernelDefBuilder& TypeConstraintImpl(const std::string& arg_name, - const std::vector& default_types, - const std::vector* enabled_types = nullptr); - // we own the KernelDef until Build() is called. std::unique_ptr kernel_def_; }; diff --git a/onnxruntime/core/framework/kernel_def_builder.cc b/onnxruntime/core/framework/kernel_def_builder.cc index c939d96039..463e8b583a 100644 --- a/onnxruntime/core/framework/kernel_def_builder.cc +++ b/onnxruntime/core/framework/kernel_def_builder.cc @@ -52,9 +52,9 @@ bool KernelDef::IsConflict(const KernelDef& other) const { //only one case they don't conflict: //There is a type_constraint, it exists in both hands, but they don't overlap //check types - const auto& other_types = other.default_type_constraints_; + const auto& other_types = other.type_constraints_; bool type_has_conflict = true; - for (const auto& it : default_type_constraints_) { + for (const auto& it : type_constraints_) { auto iter = other_types.find(it.first); if (iter != other_types.end()) { if (!AreVectorsOverlap(it.second, iter->second)) { @@ -106,7 +106,7 @@ KernelDefBuilder& KernelDefBuilder::SetName(const std::string& op_name) { } KernelDefBuilder& KernelDefBuilder::SetName(const char* op_name) { - kernel_def_->op_name_ = std::string(op_name); + kernel_def_->op_name_ = std::string{op_name}; return *this; } @@ -116,61 +116,42 @@ KernelDefBuilder& KernelDefBuilder::SetDomain(const std::string& domain) { } KernelDefBuilder& KernelDefBuilder::SetDomain(const char* domain) { - kernel_def_->op_domain_ = std::string(domain); + kernel_def_->op_domain_ = std::string{domain}; return *this; } -KernelDefBuilder& KernelDefBuilder::Provider(onnxruntime::ProviderType provider_type) { +KernelDefBuilder& KernelDefBuilder::Provider(ProviderType provider_type) { kernel_def_->provider_type_ = provider_type; return *this; } KernelDefBuilder& KernelDefBuilder::Provider(const char* provider_type) { - kernel_def_->provider_type_ = std::string(provider_type); - return *this; -} - -KernelDefBuilder& KernelDefBuilder::TypeConstraintImpl(const std::string& arg_name, - const std::vector& default_types, - const std::vector* enabled_types) { - // use the enabled types list if provided - kernel_def_->enabled_type_constraints_[arg_name] = enabled_types ? *enabled_types : default_types; - kernel_def_->default_type_constraints_[arg_name] = default_types; + kernel_def_->provider_type_ = std::string{provider_type}; return *this; } KernelDefBuilder& KernelDefBuilder::TypeConstraint(const std::string& arg_name, - const std::vector& default_types) { - return TypeConstraintImpl(arg_name, default_types, nullptr); -} - -KernelDefBuilder& KernelDefBuilder::TypeConstraint(const char* arg_name, - const std::vector& default_types) { - return TypeConstraintImpl(arg_name, default_types, nullptr); -} - -KernelDefBuilder& KernelDefBuilder::TypeConstraint(const std::string& arg_name, - const std::vector& default_types, - const std::vector& enabled_types) { - return TypeConstraintImpl(arg_name, default_types, &enabled_types); -} - -KernelDefBuilder& KernelDefBuilder::TypeConstraint(const char* arg_name, - const std::vector& default_types, - const std::vector& enabled_types) { - return TypeConstraintImpl(arg_name, default_types, &enabled_types); -} - -KernelDefBuilder& KernelDefBuilder::TypeConstraint(const std::string& arg_name, - MLDataType default_type) { - kernel_def_->enabled_type_constraints_[arg_name] = std::vector{default_type}; - kernel_def_->default_type_constraints_[arg_name] = std::vector{default_type}; + std::vector types) { + kernel_def_->type_constraints_.insert_or_assign(arg_name, std::move(types)); return *this; } KernelDefBuilder& KernelDefBuilder::TypeConstraint(const char* arg_name, - MLDataType default_type) { - return TypeConstraint(std::string(arg_name), default_type); + std::vector types) { + kernel_def_->type_constraints_.insert_or_assign(std::string{arg_name}, std::move(types)); + return *this; +} + +KernelDefBuilder& KernelDefBuilder::TypeConstraint(const std::string& arg_name, + MLDataType type) { + std::vector types{type}; + return TypeConstraint(arg_name, std::move(types)); +} + +KernelDefBuilder& KernelDefBuilder::TypeConstraint(const char* arg_name, + MLDataType type) { + std::vector types{type}; + return TypeConstraint(arg_name, std::move(types)); } KernelDefBuilder& KernelDefBuilder::MayInplace(const std::vector>& inplaces) { diff --git a/onnxruntime/core/framework/kernel_registry.cc b/onnxruntime/core/framework/kernel_registry.cc index 2b314999a7..e2bc7c3e3c 100644 --- a/onnxruntime/core/framework/kernel_registry.cc +++ b/onnxruntime/core/framework/kernel_registry.cc @@ -63,7 +63,7 @@ bool MatchKernelDefTypes(const Node& node, // for each type constraint // map type constraint to arg // check arg type against type constraint enabled types - const auto& kernel_type_constraints = kernel_def.EnabledTypeConstraints(); + const auto& kernel_type_constraints = kernel_def.TypeConstraints(); for (const auto& [kernel_type_str, enabled_types] : kernel_type_constraints) { gsl::span constraint_args{}; ORT_THROW_IF_ERROR(kernel_type_str_resolver.ResolveKernelTypeStr(node, kernel_type_str, diff --git a/onnxruntime/core/providers/cpu/generator/constant_of_shape.cc b/onnxruntime/core/providers/cpu/generator/constant_of_shape.cc index bba62b290e..ea595d95bc 100644 --- a/onnxruntime/core/providers/cpu/generator/constant_of_shape.cc +++ b/onnxruntime/core/providers/cpu/generator/constant_of_shape.cc @@ -20,10 +20,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_REQUIRED_TYPES_ALL_OPSETS( namespace { -using OutputTypes = - ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, ConstantOfShape, Output, 0); - using EnabledOutputTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, ConstantOfShape, Output, 0); @@ -76,7 +72,6 @@ ONNX_CPU_OPERATOR_KERNEL( KernelDefBuilder() .TypeConstraint("T1", DataTypeImpl::GetTensorType()) .TypeConstraint("T2", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), ConstantOfShape); diff --git a/onnxruntime/core/providers/cpu/generator/random.cc b/onnxruntime/core/providers/cpu/generator/random.cc index 6492b2ca63..7d75fb31fe 100644 --- a/onnxruntime/core/providers/cpu/generator/random.cc +++ b/onnxruntime/core/providers/cpu/generator/random.cc @@ -59,28 +59,18 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPES_ALL_OPSETS( int32_t, int64_t); } -using RandomNormalOutputTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, RandomNormal, Output, 0); using EnabledRandomNormalOutputTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, RandomNormal, Output, 0); -using RandomUniformOutputTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, RandomUniform, Output, 0); using EnabledRandomUniformOutputTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, RandomUniform, Output, 0); -using RandomNormalLikeOutputTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, RandomNormalLike, Output, 0); using EnabledRandomNormalLikeOutputTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, RandomNormalLike, Output, 0); -using RandomUniformLikeOutputTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, RandomUniformLike, Output, 0); using EnabledRandomUniformLikeOutputTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, RandomUniformLike, Output, 0); -using MultinomialOutputTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, Multinomial, Output, 0); using EnabledMultinomialOutputTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, Multinomial, Output, 0); @@ -99,7 +89,6 @@ ONNX_CPU_OPERATOR_KERNEL( 1, KernelDefBuilder() .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), RandomNormal); @@ -108,7 +97,6 @@ ONNX_CPU_OPERATOR_KERNEL( 1, KernelDefBuilder() .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), RandomUniform); @@ -118,7 +106,6 @@ ONNX_CPU_OPERATOR_KERNEL( KernelDefBuilder() .TypeConstraint("T1", DataTypeImpl::AllTensorTypes()) .TypeConstraint("T2", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), RandomNormalLike); @@ -128,7 +115,6 @@ ONNX_CPU_OPERATOR_KERNEL( KernelDefBuilder() .TypeConstraint("T1", DataTypeImpl::AllTensorTypes()) .TypeConstraint("T2", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), RandomUniformLike); @@ -139,7 +125,6 @@ ONNX_CPU_OPERATOR_KERNEL( KernelDefBuilder() .TypeConstraint("T1", DataTypeImpl::GetTensorType()) .TypeConstraint("T2", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Multinomial); diff --git a/onnxruntime/core/providers/cpu/generator/range.cc b/onnxruntime/core/providers/cpu/generator/range.cc index 029dbffb0f..ed4d082132 100644 --- a/onnxruntime/core/providers/cpu/generator/range.cc +++ b/onnxruntime/core/providers/cpu/generator/range.cc @@ -21,8 +21,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_REQUIRED_TYPES_ALL_OPSETS( int32_t, int64_t); } // namespace op_kernel_type_control -using RangeDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, Range, Input, 0); using EnabledRangeDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, Range, Input, 0); @@ -41,7 +39,6 @@ ONNX_OPERATOR_KERNEL_EX( kCpuExecutionProvider, KernelDefBuilder() .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Range); @@ -54,7 +51,6 @@ ONNX_CPU_OPERATOR_KERNEL( 11, KernelDefBuilder() .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Range); diff --git a/onnxruntime/core/providers/cpu/math/clip.cc b/onnxruntime/core/providers/cpu/math/clip.cc index 15e83dcf7a..55f63e18c0 100644 --- a/onnxruntime/core/providers/cpu/math/clip.cc +++ b/onnxruntime/core/providers/cpu/math/clip.cc @@ -26,12 +26,8 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPES( float, double, int8_t, uint8_t, int64_t, uint64_t); } // namespace op_kernel_type_control -using Clip11Types = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST( - kCpuExecutionProvider, kOnnxDomain, Clip, 11, Input, 0); using EnabledClip11Types = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST( kCpuExecutionProvider, kOnnxDomain, Clip, 11, Input, 0); -using Clip12Types = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST( - kCpuExecutionProvider, kOnnxDomain, Clip, 12, Input, 0); using EnabledClip12Types = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST( kCpuExecutionProvider, kOnnxDomain, Clip, 12, Input, 0); @@ -41,7 +37,7 @@ using AllEnabledClipTypes = EnabledClip12Types>; #define REG_KERNEL_VERSIONED_NONTEMPL( \ - OP_TYPE, START_VER, END_VER, KERNEL_CLASS, DEFAULT_TYPE_LIST, ENABLED_TYPE_LIST) \ + OP_TYPE, START_VER, END_VER, KERNEL_CLASS, ENABLED_TYPE_LIST) \ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( \ OP_TYPE, \ START_VER, \ @@ -49,25 +45,23 @@ using AllEnabledClipTypes = KernelDefBuilder() \ .MayInplace(0, 0) \ .TypeConstraint("T", \ - BuildKernelDefConstraintsFromTypeList(), \ BuildKernelDefConstraintsFromTypeList()), \ KERNEL_CLASS); #define REG_KERNEL_NONTEMPL( \ - OP_TYPE, VERSION, KERNEL_CLASS, DEFAULT_TYPE_LIST, ENABLED_TYPE_LIST) \ + OP_TYPE, VERSION, KERNEL_CLASS, ENABLED_TYPE_LIST) \ ONNX_CPU_OPERATOR_KERNEL( \ OP_TYPE, \ VERSION, \ KernelDefBuilder() \ .MayInplace(0, 0) \ .TypeConstraint("T", \ - BuildKernelDefConstraintsFromTypeList(), \ BuildKernelDefConstraintsFromTypeList()), \ KERNEL_CLASS); -REG_KERNEL_VERSIONED_NONTEMPL(Clip, 11, 11, Clip, Clip11Types, EnabledClip11Types); -REG_KERNEL_VERSIONED_NONTEMPL(Clip, 12, 12, Clip, Clip12Types, EnabledClip12Types); -REG_KERNEL_NONTEMPL(Clip, 13, Clip, Clip12Types, EnabledClip12Types); +REG_KERNEL_VERSIONED_NONTEMPL(Clip, 11, 11, Clip, EnabledClip11Types); +REG_KERNEL_VERSIONED_NONTEMPL(Clip, 12, 12, Clip, EnabledClip12Types); +REG_KERNEL_NONTEMPL(Clip, 13, Clip, EnabledClip12Types); #undef REG_KERNEL_VERSIONED_NONTEMPL #undef REG_KERNEL_NONTEMPL diff --git a/onnxruntime/core/providers/cpu/math/element_wise_ops.cc b/onnxruntime/core/providers/cpu/math/element_wise_ops.cc index 02a56eed3e..a7c05751d8 100644 --- a/onnxruntime/core/providers/cpu/math/element_wise_ops.cc +++ b/onnxruntime/core/providers/cpu/math/element_wise_ops.cc @@ -51,23 +51,15 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPES(kCpuExecutionProvider, kOnnxDomain, Pow, // // reduce the supported type lists to what's allowed in this build // -using Max8Types = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Max, 8, Input, 0); -using Max12Types = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Max, 12, Input, 0); using EnabledMax8Types = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Max, 8, Input, 0); using EnabledMax12Types = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Max, 12, Input, 0); -using Min8Types = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Min, 8, Input, 0); -using Min12Types = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Min, 12, Input, 0); using EnabledMin8Types = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Min, 8, Input, 0); using EnabledMin12Types = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Min, 12, Input, 0); -using ModTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, Mod, Input, 0); using EnabledModTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, Mod, Input, 0); -using Pow7Types = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Pow, 7, Input, 0); -using Pow12BaseTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Pow, 12, Input, 0); -using Pow12ExpTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Pow, 12, Input, 1); using EnabledPow7Types = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Pow, 7, Input, 0); using EnabledPow12BaseTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST(kCpuExecutionProvider, kOnnxDomain, Pow, 12, Input, 0); @@ -119,45 +111,45 @@ void Exp::operator()(std::ptrdiff_t first, std::ptrdiff_t last) const { .TypeConstraint("T1", DataTypeImpl::GetTensorType()), \ KERNEL_CLASS); -#define REG_ELEMENTWISE_KERNEL_NONT(OP_TYPE, VERSION, KERNEL_CLASS, CONSTRAINTS, ENABLED_TYPES_CONSTRAINTS) \ - ONNX_CPU_OPERATOR_KERNEL( \ - OP_TYPE, \ - VERSION, \ - KernelDefBuilder() \ - .TypeConstraint("T", CONSTRAINTS, ENABLED_TYPES_CONSTRAINTS), \ +#define REG_ELEMENTWISE_KERNEL_NONT(OP_TYPE, VERSION, KERNEL_CLASS, CONSTRAINTS) \ + ONNX_CPU_OPERATOR_KERNEL( \ + OP_TYPE, \ + VERSION, \ + KernelDefBuilder() \ + .TypeConstraint("T", CONSTRAINTS), \ KERNEL_CLASS); #define REG_ELEMENTWISE_VERSIONED_KERNEL_NONT(OP_TYPE, VERSION_FROM, VERSION_TO, KERNEL_CLASS, \ - CONSTRAINTS, ENABLED_TYPES_CONSTRAINTS) \ + CONSTRAINTS) \ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( \ OP_TYPE, \ VERSION_FROM, \ VERSION_TO, \ KernelDefBuilder() \ - .TypeConstraint("T", CONSTRAINTS, ENABLED_TYPES_CONSTRAINTS), \ + .TypeConstraint("T", CONSTRAINTS), \ KERNEL_CLASS); -#define REG_ELEMENTWISE_KERNEL_NONT_2(OP_TYPE, VERSION, KERNEL_CLASS, \ - T1_CONSTRAINTS, T1_ENABLED_TYPES_CONSTRAINTS, \ - T2_CONSTRAINTS, T2_ENABLED_TYPES_CONSTRAINTS) \ - ONNX_CPU_OPERATOR_KERNEL( \ - OP_TYPE, \ - VERSION, \ - KernelDefBuilder() \ - .TypeConstraint("T", T1_CONSTRAINTS, T1_ENABLED_TYPES_CONSTRAINTS) \ - .TypeConstraint("T1", T2_CONSTRAINTS, T2_ENABLED_TYPES_CONSTRAINTS), \ +#define REG_ELEMENTWISE_KERNEL_NONT_2(OP_TYPE, VERSION, KERNEL_CLASS, \ + T1_CONSTRAINTS, \ + T2_CONSTRAINTS) \ + ONNX_CPU_OPERATOR_KERNEL( \ + OP_TYPE, \ + VERSION, \ + KernelDefBuilder() \ + .TypeConstraint("T", T1_CONSTRAINTS) \ + .TypeConstraint("T1", T2_CONSTRAINTS), \ KERNEL_CLASS); #define REG_ELEMENTWISE_VERSIONED_KERNEL_NONT_2(OP_TYPE, VERSION_FROM, VERSION_TO, KERNEL_CLASS, \ - T1_CONSTRAINTS, T1_ENABLED_TYPES_CONSTRAINTS, \ - T2_CONSTRAINTS, T2_ENABLED_TYPES_CONSTRAINTS) \ + T1_CONSTRAINTS, \ + T2_CONSTRAINTS) \ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( \ OP_TYPE, \ VERSION_FROM, \ VERSION_TO, \ KernelDefBuilder() \ - .TypeConstraint("T", T1_CONSTRAINTS, T1_ENABLED_TYPES_CONSTRAINTS) \ - .TypeConstraint("T1", T2_CONSTRAINTS, T2_ENABLED_TYPES_CONSTRAINTS), \ + .TypeConstraint("T", T1_CONSTRAINTS) \ + .TypeConstraint("T1", T2_CONSTRAINTS), \ KERNEL_CLASS); REG_ELEMENTWISE_VERSIONED_TYPED_KERNEL(Add, 7, 12, float, Add); @@ -262,25 +254,18 @@ REG_ELEMENTWISE_TYPED_KERNEL(Sqrt, 13, float, Sqrt); REG_ELEMENTWISE_TYPED_KERNEL(Sqrt, 13, double, Sqrt); REG_ELEMENTWISE_VERSIONED_KERNEL_NONT(Pow, 7, 11, Pow, - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()); REG_ELEMENTWISE_VERSIONED_KERNEL_NONT_2(Pow, 12, 12, Pow, - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList(), - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()); REG_ELEMENTWISE_VERSIONED_KERNEL_NONT_2(Pow, 13, 14, Pow, - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList(), - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()); REG_ELEMENTWISE_KERNEL_NONT_2(Pow, 15, Pow, - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList(), - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()); REG_ELEMENTWISE_VERSIONED_TYPED_KERNEL(Exp, 6, 12, float, Exp); @@ -303,16 +288,16 @@ REG_ELEMENTWISE_TYPED_KERNEL(Sum, 13, double, Sum_8); REG_ELEMENTWISE_VERSIONED_TYPED_KERNEL(Max, 6, 7, float, Max_6); -REG_ELEMENTWISE_VERSIONED_KERNEL_NONT(Max, 8, 11, Max_8, BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()); -REG_ELEMENTWISE_VERSIONED_KERNEL_NONT(Max, 12, 12, Max_8, BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()); +REG_ELEMENTWISE_VERSIONED_KERNEL_NONT(Max, 8, 11, Max_8, BuildKernelDefConstraintsFromTypeList()); +REG_ELEMENTWISE_VERSIONED_KERNEL_NONT(Max, 12, 12, Max_8, BuildKernelDefConstraintsFromTypeList()); // Supposed to add BFloat16 but we are not supporting now, however, separate registration -REG_ELEMENTWISE_KERNEL_NONT(Max, 13, Max_8, BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()); +REG_ELEMENTWISE_KERNEL_NONT(Max, 13, Max_8, BuildKernelDefConstraintsFromTypeList()); REG_ELEMENTWISE_VERSIONED_TYPED_KERNEL(Min, 6, 7, float, Min_6); -REG_ELEMENTWISE_VERSIONED_KERNEL_NONT(Min, 8, 11, Min_8, BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()); -REG_ELEMENTWISE_VERSIONED_KERNEL_NONT(Min, 12, 12, Min_8, BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()); +REG_ELEMENTWISE_VERSIONED_KERNEL_NONT(Min, 8, 11, Min_8, BuildKernelDefConstraintsFromTypeList()); +REG_ELEMENTWISE_VERSIONED_KERNEL_NONT(Min, 12, 12, Min_8, BuildKernelDefConstraintsFromTypeList()); // Supposed to add BFloat16 but we are not supporting now, however, separate registration -REG_ELEMENTWISE_KERNEL_NONT(Min, 13, Min_8, BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()); +REG_ELEMENTWISE_KERNEL_NONT(Min, 13, Min_8, BuildKernelDefConstraintsFromTypeList()); REG_ELEMENTWISE_LOGICALOP_VERSIONED_TYPED_KERNEL(Less, 7, 8, float, Less); REG_ELEMENTWISE_LOGICALOP_VERSIONED_TYPED_KERNEL(Less, 7, 8, double, Less); @@ -1585,7 +1570,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( KernelDefBuilder() .TypeConstraint( "T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Mod); @@ -1595,7 +1579,6 @@ ONNX_CPU_OPERATOR_KERNEL( KernelDefBuilder() .TypeConstraint( "T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Mod); diff --git a/onnxruntime/core/providers/cpu/math/sign.cc b/onnxruntime/core/providers/cpu/math/sign.cc index 0390114ff0..1684a09252 100644 --- a/onnxruntime/core/providers/cpu/math/sign.cc +++ b/onnxruntime/core/providers/cpu/math/sign.cc @@ -22,8 +22,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, Sign, Input, 0, element_type_lists::AllNumeric); } -using SignDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, Sign, Input, 0); using EnabledSignDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, Sign, Input, 0); @@ -39,7 +37,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 9, 12, KernelDefBuilder().TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Sign); @@ -47,7 +44,6 @@ ONNX_CPU_OPERATOR_KERNEL( Sign, 13, KernelDefBuilder().TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Sign); diff --git a/onnxruntime/core/providers/cpu/nn/pool.cc b/onnxruntime/core/providers/cpu/nn/pool.cc index 19c2277b33..c66d7f4f7d 100644 --- a/onnxruntime/core/providers/cpu/nn/pool.cc +++ b/onnxruntime/core/providers/cpu/nn/pool.cc @@ -26,12 +26,8 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPES( uint8_t); } // namespace op_kernel_type_control -using MaxPool8DataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST( - kCpuExecutionProvider, kOnnxDomain, MaxPool, 8, Input, 0); using EnabledMaxPool8DataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST( kCpuExecutionProvider, kOnnxDomain, MaxPool, 8, Input, 0); -using MaxPool12DataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST( - kCpuExecutionProvider, kOnnxDomain, MaxPool, 12, Input, 0); using EnabledMaxPool12DataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST( kCpuExecutionProvider, kOnnxDomain, MaxPool, 12, Input, 0); @@ -272,7 +268,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL(MaxPool, 8, 11, KernelDefBuilder() .TypeConstraint( "T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) .TypeConstraint("I", DataTypeImpl::GetTensorType()), MaxPoolV8); @@ -281,7 +276,6 @@ ONNX_CPU_OPERATOR_KERNEL(MaxPool, 12, KernelDefBuilder() .TypeConstraint( "T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) .TypeConstraint("I", DataTypeImpl::GetTensorType()), MaxPoolV8); diff --git a/onnxruntime/core/providers/cpu/nn/shrink.cc b/onnxruntime/core/providers/cpu/nn/shrink.cc index 02186f2a99..62c7e6def1 100644 --- a/onnxruntime/core/providers/cpu/nn/shrink.cc +++ b/onnxruntime/core/providers/cpu/nn/shrink.cc @@ -17,8 +17,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( element_type_lists::AllNumeric); } -using ShrinkDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, Shrink, Input, 0); using EnabledShrinkDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, Shrink, Input, 0); @@ -28,7 +26,6 @@ ONNX_CPU_OPERATOR_KERNEL( KernelDefBuilder() .MayInplace(0, 0) .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Shrink); //TODO: fix the warnings diff --git a/onnxruntime/core/providers/cpu/sequence/sequence_ops.cc b/onnxruntime/core/providers/cpu/sequence/sequence_ops.cc index cf85ffc071..d3fdcaf351 100644 --- a/onnxruntime/core/providers/cpu/sequence/sequence_ops.cc +++ b/onnxruntime/core/providers/cpu/sequence/sequence_ops.cc @@ -328,8 +328,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPES_ALL_OPSETS( } // namespace op_kernel_type_control namespace { -using SplitToSequenceDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, SplitToSequence, Input, 0); using EnabledSplitToSequenceDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, SplitToSequence, Input, 0); } // namespace @@ -339,7 +337,6 @@ ONNX_CPU_OPERATOR_KERNEL( 11, KernelDefBuilder() .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) .TypeConstraint("S", DataTypeImpl::AllSequenceTensorTypes()) .TypeConstraint("I", std::vector{ diff --git a/onnxruntime/core/providers/cpu/tensor/cast_op.cc b/onnxruntime/core/providers/cpu/tensor/cast_op.cc index f94718fe5a..4c23a15a6c 100644 --- a/onnxruntime/core/providers/cpu/tensor/cast_op.cc +++ b/onnxruntime/core/providers/cpu/tensor/cast_op.cc @@ -49,10 +49,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_REQUIRED_TYPES_ALL_OPSETS( } // namespace op_kernel_type_control namespace { -using SrcTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, - Cast, Input, 0); -using DstTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, - Cast, Output, 0); using EnabledSrcTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, Cast, Input, 0); using EnabledDstTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, @@ -324,8 +320,8 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 6, 12, KernelDefBuilder() - .TypeConstraint("T1", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) - .TypeConstraint("T2", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) + .TypeConstraint("T1", BuildKernelDefConstraintsFromTypeList()) + .TypeConstraint("T2", BuildKernelDefConstraintsFromTypeList()) .MayInplace(0, 0), // allocation planner will check input and output sizes match before inplacing Cast); @@ -333,8 +329,8 @@ ONNX_CPU_OPERATOR_KERNEL( Cast, 13, KernelDefBuilder() - .TypeConstraint("T1", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) - .TypeConstraint("T2", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) + .TypeConstraint("T1", BuildKernelDefConstraintsFromTypeList()) + .TypeConstraint("T2", BuildKernelDefConstraintsFromTypeList()) .MayInplace(0, 0), // allocation planner will check input and output sizes match before inplacing Cast); diff --git a/onnxruntime/core/providers/cpu/tensor/concat.cc b/onnxruntime/core/providers/cpu/tensor/concat.cc index 11b36135d3..e035dd5185 100644 --- a/onnxruntime/core/providers/cpu/tensor/concat.cc +++ b/onnxruntime/core/providers/cpu/tensor/concat.cc @@ -45,8 +45,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_REQUIRED_TYPES_ALL_OPSETS( } // namespace op_kernel_type_control namespace { -using DataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, - Concat, Input, 0); using EnabledDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, Concat, Input, 0); } // namespace diff --git a/onnxruntime/core/providers/cpu/tensor/eye_like.cc b/onnxruntime/core/providers/cpu/tensor/eye_like.cc index 07d3aeac13..7ce4d167b5 100644 --- a/onnxruntime/core/providers/cpu/tensor/eye_like.cc +++ b/onnxruntime/core/providers/cpu/tensor/eye_like.cc @@ -15,8 +15,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPES_ALL_OPSETS( float, double, uint64_t, int64_t, int32_t); } -using EyeLikeDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, EyeLike, Output, 0); using EnabledEyeLikeDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, EyeLike, Output, 0); @@ -26,11 +24,9 @@ ONNX_CPU_OPERATOR_KERNEL( KernelDefBuilder() .TypeConstraint( "T1", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) .TypeConstraint( "T2", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), EyeLike); diff --git a/onnxruntime/core/providers/cpu/tensor/gather.cc b/onnxruntime/core/providers/cpu/tensor/gather.cc index fd499e3653..1e35a14f6d 100644 --- a/onnxruntime/core/providers/cpu/tensor/gather.cc +++ b/onnxruntime/core/providers/cpu/tensor/gather.cc @@ -26,8 +26,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_REQUIRED_TYPES_ALL_OPSETS( #endif } // namespace op_kernel_type_control -using IndexTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, - Gather, Input, 1); using EnabledIndexTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, Gather, Input, 1); ONNX_CPU_OPERATOR_VERSIONED_KERNEL( @@ -36,7 +34,7 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 10, KernelDefBuilder() .TypeConstraint("T", DataTypeImpl::AllTensorTypes()) - .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), + .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList()), Gather); ONNX_CPU_OPERATOR_VERSIONED_KERNEL( @@ -45,7 +43,7 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 12, KernelDefBuilder() .TypeConstraint("T", DataTypeImpl::AllTensorTypes()) - .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), + .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList()), Gather); ONNX_CPU_OPERATOR_KERNEL( @@ -53,7 +51,7 @@ ONNX_CPU_OPERATOR_KERNEL( 13, KernelDefBuilder() .TypeConstraint("T", DataTypeImpl::AllTensorTypes()) - .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), + .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList()), Gather); Status GatherBase::PrepareForCompute(OpKernelContext* context, Prepare& p) const { diff --git a/onnxruntime/core/providers/cpu/tensor/isinf.cc b/onnxruntime/core/providers/cpu/tensor/isinf.cc index 104da86df7..25dfe19cc9 100644 --- a/onnxruntime/core/providers/cpu/tensor/isinf.cc +++ b/onnxruntime/core/providers/cpu/tensor/isinf.cc @@ -21,9 +21,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPES_ALL_OPSETS( class IsInf final : public OpKernel { public: - using DataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, - IsInf, Input, 0); - using EnabledDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, IsInf, Input, 0); @@ -40,7 +37,6 @@ ONNX_CPU_OPERATOR_KERNEL( 10, KernelDefBuilder() .TypeConstraint("T1", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) .TypeConstraint("T2", DataTypeImpl::GetTensorType()), IsInf); diff --git a/onnxruntime/core/providers/cpu/tensor/pad.cc b/onnxruntime/core/providers/cpu/tensor/pad.cc index 28d443e263..dc7fb8946c 100644 --- a/onnxruntime/core/providers/cpu/tensor/pad.cc +++ b/onnxruntime/core/providers/cpu/tensor/pad.cc @@ -72,16 +72,10 @@ ORT_SPECIFY_OP_KERNEL_ARG_REQUIRED_TYPES( kCpuExecutionProvider, kOnnxDomain, Pad, 13, Input, 0, int32_t, int64_t); } // namespace op_kernel_type_control -using Pad2Types = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST( - kCpuExecutionProvider, kOnnxDomain, Pad, 2, Input, 0); using EnabledPad2Types = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST( kCpuExecutionProvider, kOnnxDomain, Pad, 2, Input, 0); -using Pad11Types = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST( - kCpuExecutionProvider, kOnnxDomain, Pad, 11, Input, 0); using EnabledPad11Types = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST( kCpuExecutionProvider, kOnnxDomain, Pad, 11, Input, 0); -using Pad13Types = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST( - kCpuExecutionProvider, kOnnxDomain, Pad, 13, Input, 0); using EnabledPad13Types = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST( kCpuExecutionProvider, kOnnxDomain, Pad, 13, Input, 0); @@ -97,7 +91,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 2, 10, KernelDefBuilder().TypeConstraint( "T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Pad); @@ -110,7 +103,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 11, 12, KernelDefBuilder().TypeConstraint( "T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Pad); @@ -120,7 +112,6 @@ ONNX_CPU_OPERATOR_KERNEL( KernelDefBuilder() .TypeConstraint( "T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Pad); diff --git a/onnxruntime/core/providers/cpu/tensor/reverse_sequence.cc b/onnxruntime/core/providers/cpu/tensor/reverse_sequence.cc index a38093505f..81aa292790 100644 --- a/onnxruntime/core/providers/cpu/tensor/reverse_sequence.cc +++ b/onnxruntime/core/providers/cpu/tensor/reverse_sequence.cc @@ -33,8 +33,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( element_type_lists::All); } -using ReverseSequenceDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, ReverseSequence, Input, 0); using EnabledReverseSequenceDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, ReverseSequence, Input, 0); @@ -44,7 +42,6 @@ ONNX_OPERATOR_KERNEL_EX(ReverseSequence, kCpuExecutionProvider, KernelDefBuilder() .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), ReverseSequenceOp); diff --git a/onnxruntime/core/providers/cpu/tensor/scatter.cc b/onnxruntime/core/providers/cpu/tensor/scatter.cc index ae0fe2d5ba..d24f3965f8 100644 --- a/onnxruntime/core/providers/cpu/tensor/scatter.cc +++ b/onnxruntime/core/providers/cpu/tensor/scatter.cc @@ -26,13 +26,9 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, ScatterElements, Input, 0, element_type_lists::All); } // namespace op_kernel_type_control -using ScatterDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, Scatter, Input, 0); using EnabledScatterDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, Scatter, Input, 0); -using ScatterElementsDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, ScatterElements, Input, 0); using EnabledScatterElementsDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, ScatterElements, Input, 0); @@ -64,7 +60,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( KernelDefBuilder() .MayInplace(0, 0) .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) .TypeConstraint("Tind", BuildKernelDefConstraints()), Scatter); @@ -76,7 +71,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( KernelDefBuilder() .MayInplace(0, 0) .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) .TypeConstraint("Tind", BuildKernelDefConstraints()), Scatter); @@ -88,7 +82,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( KernelDefBuilder() .MayInplace(0, 0) .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) .TypeConstraint("Tind", BuildKernelDefConstraints()), Scatter); @@ -99,7 +92,6 @@ ONNX_CPU_OPERATOR_KERNEL( KernelDefBuilder() .MayInplace(0, 0) .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) .TypeConstraint("Tind", BuildKernelDefConstraints()), Scatter); diff --git a/onnxruntime/core/providers/cpu/tensor/scatter_nd.cc b/onnxruntime/core/providers/cpu/tensor/scatter_nd.cc index 212b4fa9c7..2b08ef4fe0 100644 --- a/onnxruntime/core/providers/cpu/tensor/scatter_nd.cc +++ b/onnxruntime/core/providers/cpu/tensor/scatter_nd.cc @@ -17,8 +17,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( element_type_lists::All); } -using ScatterNDDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, ScatterND, Input, 0); using EnabledScatterNDDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, ScatterND, Input, 0); @@ -28,7 +26,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 12, KernelDefBuilder() .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), ScatterND); @@ -38,7 +35,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 15, KernelDefBuilder() .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), ScatterND); @@ -47,7 +43,6 @@ ONNX_CPU_OPERATOR_KERNEL( 16, KernelDefBuilder() .TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), ScatterND); diff --git a/onnxruntime/core/providers/cpu/tensor/slice.cc b/onnxruntime/core/providers/cpu/tensor/slice.cc index 7b84e00a2e..7e4bb3c3a3 100644 --- a/onnxruntime/core/providers/cpu/tensor/slice.cc +++ b/onnxruntime/core/providers/cpu/tensor/slice.cc @@ -32,10 +32,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_REQUIRED_TYPES_ALL_OPSETS( } // namespace op_kernel_type_control namespace { -using DataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, - Slice, Input, 0); -using IndicesTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, - Slice, Input, 1); using EnabledDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, Slice, Input, 0); using EnabledIndicesTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, @@ -45,15 +41,15 @@ using EnabledIndicesTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS(kCpuE ONNX_CPU_OPERATOR_VERSIONED_KERNEL( Slice, 1, 9, - KernelDefBuilder().TypeConstraint("T", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), + KernelDefBuilder().TypeConstraint("T", BuildKernelDefConstraintsFromTypeList()), Slice1); ONNX_CPU_OPERATOR_VERSIONED_KERNEL( Slice, 10, 10, KernelDefBuilder() - .TypeConstraint("T", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) - .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), + .TypeConstraint("T", BuildKernelDefConstraintsFromTypeList()) + .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList()), Slice10); ONNX_CPU_OPERATOR_VERSIONED_KERNEL( @@ -61,16 +57,16 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 11, 12, KernelDefBuilder() - .TypeConstraint("T", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) - .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), + .TypeConstraint("T", BuildKernelDefConstraintsFromTypeList()) + .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList()), Slice10); ONNX_CPU_OPERATOR_KERNEL( Slice, 13, KernelDefBuilder() - .TypeConstraint("T", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()) - .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), + .TypeConstraint("T", BuildKernelDefConstraintsFromTypeList()) + .TypeConstraint("Tind", BuildKernelDefConstraintsFromTypeList()), Slice10); // Check if it's possible to combine innermost dimensions so we copy larger blocks. diff --git a/onnxruntime/core/providers/cpu/tensor/split.cc b/onnxruntime/core/providers/cpu/tensor/split.cc index 7dc5b0d4fd..5032f230b6 100644 --- a/onnxruntime/core/providers/cpu/tensor/split.cc +++ b/onnxruntime/core/providers/cpu/tensor/split.cc @@ -22,8 +22,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_REQUIRED_TYPES_ALL_OPSETS( int32_t, int64_t); } // namespace op_kernel_type_control -using SplitDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, Split, Input, 0); using EnabledSplitDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, Split, Input, 0); @@ -32,7 +30,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 2, 10, KernelDefBuilder().TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Split); @@ -42,7 +39,6 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( 11, 12, KernelDefBuilder().TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Split); @@ -51,7 +47,6 @@ ONNX_CPU_OPERATOR_KERNEL( Split, 13, KernelDefBuilder().TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Split); diff --git a/onnxruntime/core/providers/cpu/tensor/transpose.cc b/onnxruntime/core/providers/cpu/tensor/transpose.cc index 6075ffa89e..a252186bd7 100644 --- a/onnxruntime/core/providers/cpu/tensor/transpose.cc +++ b/onnxruntime/core/providers/cpu/tensor/transpose.cc @@ -33,8 +33,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_REQUIRED_TYPE_LIST_ALL_OPSETS( namespace { // reduce the supported types with any global or op specific lists -using DataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, - Transpose, Input, 0); using EnabledDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS(kCpuExecutionProvider, kOnnxDomain, Transpose, Input, 0); } // namespace @@ -418,13 +416,13 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL( Transpose, 1, 12, - KernelDefBuilder().TypeConstraint("T", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), + KernelDefBuilder().TypeConstraint("T", BuildKernelDefConstraintsFromTypeList()), Transpose); ONNX_CPU_OPERATOR_KERNEL( Transpose, 13, - KernelDefBuilder().TypeConstraint("T", BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), + KernelDefBuilder().TypeConstraint("T", BuildKernelDefConstraintsFromTypeList()), Transpose); } // namespace onnxruntime diff --git a/onnxruntime/core/providers/cpu/tensor/unique.cc b/onnxruntime/core/providers/cpu/tensor/unique.cc index a0bdf10c34..bcd4102078 100644 --- a/onnxruntime/core/providers/cpu/tensor/unique.cc +++ b/onnxruntime/core/providers/cpu/tensor/unique.cc @@ -17,8 +17,6 @@ ORT_SPECIFY_OP_KERNEL_ARG_DEFAULT_TYPES_ALL_OPSETS( float, int64_t, int8_t, std::string); } -using UniqueDataTypes = ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( - kCpuExecutionProvider, kOnnxDomain, Unique, Input, 0); using EnabledUniqueDataTypes = ORT_OP_KERNEL_ARG_ENABLED_TYPE_LIST_ALL_OPSETS( kCpuExecutionProvider, kOnnxDomain, Unique, Input, 0); @@ -84,7 +82,6 @@ ONNX_CPU_OPERATOR_KERNEL( Unique, 11, KernelDefBuilder().TypeConstraint("T", - BuildKernelDefConstraintsFromTypeList(), BuildKernelDefConstraintsFromTypeList()), Unique); diff --git a/onnxruntime/core/providers/op_kernel_type_control.h b/onnxruntime/core/providers/op_kernel_type_control.h index e4c3a01254..a27e717e7f 100644 --- a/onnxruntime/core/providers/op_kernel_type_control.h +++ b/onnxruntime/core/providers/op_kernel_type_control.h @@ -362,37 +362,6 @@ struct EnabledTypes { ::onnxruntime::op_kernel_type_control::kAllOpSets, \ ArgDirection, ArgIndex, __VA_ARGS__) -/** - * TypeList type with the default types for a given Op kernel argument. - * - * @param OpProvider The Op provider. - * @param OpDomain The Op domain. - * @param OpName The Op name. - * @param OpSet The opset to use for the default types list. - * @param ArgDirection Direction of the given Op kernel argument - Input or Output. - * @param ArgIndex Index of the given Op kernel argument. - */ -#define ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST( \ - OpProvider, OpDomain, OpName, OpSet, ArgDirection, ArgIndex) \ - ::onnxruntime::op_kernel_type_control:: \ - ORT_OP_KERNEL_TYPE_CTRL_INTERNAL_DEFAULT_TYPES_HOLDER( \ - OpProvider, OpDomain, OpName, OpSet, ArgDirection, ArgIndex)::types - -/** - * TypeList type with the default types for a given Op kernel argument that are valid for all opsets. - * - * @param OpProvider The Op provider. - * @param OpDomain The Op domain. - * @param OpName The Op name. - * @param ArgDirection Direction of the given Op kernel argument - Input or Output. - * @param ArgIndex Index of the given Op kernel argument. - */ -#define ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST_ALL_OPSETS( \ - OpProvider, OpDomain, OpName, ArgDirection, ArgIndex) \ - ORT_OP_KERNEL_ARG_DEFAULT_TYPE_LIST(OpProvider, OpDomain, OpName, \ - ::onnxruntime::op_kernel_type_control::kAllOpSets, \ - ArgDirection, ArgIndex) - /** * TypeList type with the enabled types for a given Op kernel argument. *