Skip to content

Commit ce01c37

Browse files
authored
Cleanup macros used to register activations. (#6628)
Registrations need to either be between a start and end version, or be the current version. Having a macro that uses 3 versions will break or lead to misuse when a 4th version is released.
1 parent 1916e35 commit ce01c37

File tree

1 file changed

+31
-43
lines changed

1 file changed

+31
-43
lines changed

onnxruntime/core/providers/cpu/activation/activations.cc

+31-43
Original file line numberDiff line numberDiff line change
@@ -20,41 +20,44 @@ namespace onnxruntime {
2020
return Status::OK(); \
2121
}
2222

23-
#define REGISTER_UNARY_ELEMENTWISE_KERNEL_ALIAS(alias, x, sinceVersion) \
24-
ONNX_CPU_OPERATOR_KERNEL( \
25-
alias, sinceVersion, \
26-
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), x<float>);
27-
28-
#define REGISTER_UNARY_ELEMENTWISE_KERNEL(x, sinceVersion) REGISTER_UNARY_ELEMENTWISE_KERNEL_ALIAS(x, x, sinceVersion)
29-
30-
#define REGISTER_VERSIONED_UNARY_ELEMENTWISE_KERNEL_ALIAS(alias, x, sinceVersion, firstEnd, newVersion) \
31-
ONNX_CPU_OPERATOR_VERSIONED_KERNEL( \
32-
alias, sinceVersion, firstEnd, \
33-
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), x<float>); \
34-
ONNX_CPU_OPERATOR_KERNEL( \
35-
alias, newVersion, \
36-
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), x<float>);
37-
38-
#define REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL_ALIAS(alias, x, sinceVersion, firstEnd, newVersion, type) \
39-
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL( \
40-
alias, sinceVersion, firstEnd, type, \
41-
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<type>()), x<type>); \
42-
ONNX_CPU_OPERATOR_TYPED_KERNEL( \
43-
alias, newVersion, type, \
44-
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<type>()), x<type>);
23+
#define REGISTER_VERSIONED_UNARY_ELEMENTWISE_KERNEL(op, since_version, end_version) \
24+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL( \
25+
op, since_version, end_version, \
26+
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), op<float>);
27+
28+
#define REGISTER_UNARY_ELEMENTWISE_KERNEL(op, since_version) \
29+
ONNX_CPU_OPERATOR_KERNEL( \
30+
op, since_version, \
31+
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), op<float>);
32+
33+
#define REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(op, since_version, end_version, type) \
34+
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL( \
35+
op, since_version, end_version, type, \
36+
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<type>()), op<type>);
37+
38+
#define REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(op, since_version, type) \
39+
ONNX_CPU_OPERATOR_TYPED_KERNEL( \
40+
op, since_version, type, \
41+
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<type>()), op<type>);
4542

4643
REGISTER_UNARY_ELEMENTWISE_KERNEL(Elu, 6);
4744
REGISTER_UNARY_ELEMENTWISE_KERNEL(HardSigmoid, 6);
4845
REGISTER_UNARY_ELEMENTWISE_KERNEL(LeakyRelu, 6);
49-
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL_ALIAS(Relu, Relu, 6, 12, 13, float);
50-
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL_ALIAS(Relu, Relu, 6, 12, 13, double);
46+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Relu, 6, 12, float);
47+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Relu, 6, 12, double);
48+
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(Relu, 13, float);
49+
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(Relu, 13, double);
5150
REGISTER_UNARY_ELEMENTWISE_KERNEL(Selu, 6);
52-
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL_ALIAS(Sigmoid, Sigmoid, 6, 12, 13, float);
53-
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL_ALIAS(Sigmoid, Sigmoid, 6, 12, 13, double);
51+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Sigmoid, 6, 12, float);
52+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Sigmoid, 6, 12, double);
53+
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(Sigmoid, 13, float);
54+
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(Sigmoid, 13, double);
5455
REGISTER_UNARY_ELEMENTWISE_KERNEL(Softplus, 1);
5556
REGISTER_UNARY_ELEMENTWISE_KERNEL(Softsign, 1);
56-
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL_ALIAS(Tanh, Tanh, 6, 12, 13, float);
57-
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL_ALIAS(Tanh, Tanh, 6, 12, 13, double);
57+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Tanh, 6, 12, float);
58+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Tanh, 6, 12, double);
59+
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(Tanh, 13, float);
60+
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(Tanh, 13, double);
5861
REGISTER_UNARY_ELEMENTWISE_KERNEL(ThresholdedRelu, 10);
5962

6063
namespace functors {
@@ -82,21 +85,6 @@ template Status ElementWiseRangedTransform<float>::Create(const std::string& typ
8285
std::unique_ptr<ElementWiseRangedTransform<float>>& out);
8386
} // namespace functors
8487

85-
#define REGISTER_UNARY_ELEMENTWISE_KERNEL_ALIAS(alias, x, sinceVersion) \
86-
ONNX_CPU_OPERATOR_KERNEL( \
87-
alias, sinceVersion, \
88-
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), x<float>);
89-
90-
#define REGISTER_UNARY_ELEMENTWISE_KERNEL(x, sinceVersion) REGISTER_UNARY_ELEMENTWISE_KERNEL_ALIAS(x, x, sinceVersion)
91-
92-
#define REGISTER_VERSIONED_UNARY_ELEMENTWISE_KERNEL_ALIAS(alias, x, sinceVersion, firstEnd, newVersion) \
93-
ONNX_CPU_OPERATOR_VERSIONED_KERNEL( \
94-
alias, sinceVersion, firstEnd, \
95-
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), x<float>); \
96-
ONNX_CPU_OPERATOR_KERNEL( \
97-
alias, newVersion, \
98-
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), x<float>);
99-
10088
namespace functors {
10189
template <>
10290
void Sigmoid<float>::operator()(std::ptrdiff_t first, std::ptrdiff_t last) const {

0 commit comments

Comments
 (0)