Skip to content

Commit 349d45a

Browse files
titaiwangmsguschmue
authored andcommitted
Register opset 22 (#23344)
### Description Follw up #21897 To be compatible with onnx 17.0, Registering opset 22 is required in terms of the [updated operators (bfloat16)](https://github.com/onnx/onnx/releases/tag/v1.17.0) ### Motivation and Context Fix #23162 Fix #23161 Fix #23164 (Xnnpack) ### Remaining issue #23163 (QNN) See [the file](https://github.com/microsoft/onnxruntime/pull/23344/files#diff-04f5d6db0a6873f7299ed06ff1ec45a49e69f0865cb32f4397cd56db0cd0a784) ### Result of `find_optimizer_opset_version_updates_required.py (cpu only)` ``` [WARNING] - Newer opset found for kOnnxDomain.Conv. Latest:22 Optimizer support ends at 11. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/conv_add_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.IsInf. Latest:20 Optimizer support ends at 10. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/isinf_reducesum_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/isinf_reducesum_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/isinf_reducesum_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.HardSigmoid. Latest:22 Optimizer support ends at 6. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/conv_add_act_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/layer_norm_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/layer_norm_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/layer_norm_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/layer_norm_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/layer_norm_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/layer_norm_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Transpose. Latest:21 Optimizer support ends at 13. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/nchwc_transformer.cc [WARNING] - Newer opset found for kOnnxDomain.Conv. Latest:22 Optimizer support ends at 11. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/nchwc_transformer.cc [WARNING] - Newer opset found for kOnnxDomain.MaxPool. Latest:22 Optimizer support ends at 12. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/nchwc_transformer.cc [WARNING] - Newer opset found for kOnnxDomain.AveragePool. Latest:22 Optimizer support ends at 11. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/nchwc_transformer.cc [WARNING] - Newer opset found for kOnnxDomain.BatchNormalization. Latest:15 Optimizer support ends at 14. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/nchwc_transformer.cc [WARNING] - Newer opset found for kOnnxDomain.Transpose. Latest:21 Optimizer support ends at 13. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/nchwc_transformer.cc [WARNING] - Newer opset found for kOnnxDomain.Upsample. Latest:10 Optimizer support ends at 13. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/nchwc_transformer.cc [WARNING] - Newer opset found for kOnnxDomain.Resize. Latest:19 Optimizer support ends at 13. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/nchwc_transformer.cc [WARNING] - Newer opset found for kOnnxDomain.GlobalMaxPool. Latest:22 Optimizer support ends at 1. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/nchwc_transformer.cc [WARNING] - Newer opset found for kOnnxDomain.GlobalAveragePool. Latest:22 Optimizer support ends at 1. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/nchwc_transformer.cc [WARNING] - Newer opset found for kOnnxDomain.Shape. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/pre_shape_node_elimination.cc [WARNING] - Newer opset found for kOnnxDomain.Conv. Latest:22 Optimizer support ends at 11. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/conv_bn_fusion.cc [ERROR] - Call/Declaration is split over multiple lines. Please check manually.File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/label_encoder_fusion.cc Line:49 [ERROR] - Failed to find version information for "ai.onnx.ml".LabelEncoder. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/label_encoder_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.HardSigmoid. Latest:22 Optimizer support ends at 6. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/conv_activation_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Dropout. Latest:22 Optimizer support ends at 13. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/dropout_elimination.cc [WARNING] - Newer opset found for kOnnxDomain.Transpose. Latest:21 Optimizer support ends at 13. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/gemm_transpose_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Transpose. Latest:21 Optimizer support ends at 13. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/gemm_transpose_fusion.cc [ERROR] - Symbolic name of 'ignorable_nodes[index].first' found for op. Please check manually. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/matmul_bn_fusion.cc [ERROR] - Symbolic name of 'dest.first' found for op. Please check manually. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/matmul_bn_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Conv. Latest:22 Optimizer support ends at 11. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/pad_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.AveragePool. Latest:22 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/pad_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.MaxPool. Latest:22 Optimizer support ends at 12. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/pad_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Pad. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/pad_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 13. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/pad_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Dropout. Latest:22 Optimizer support ends at 13. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/bias_dropout_fusion.cc [ERROR] - Failed to find version information for kMSDomain.BitmaskDropout. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/bias_dropout_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Clip. Latest:13 Optimizer support ends at 6. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/relu_clip_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/fast_gelu_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Cast. Latest:21 Optimizer support ends at 19. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/fast_gelu_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Reshape. Latest:21 Optimizer support ends at 14. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/reshape_fusion.cc [ERROR] - Failed to find version information for kMSDomain.ConcatTraining. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/reshape_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Where. Latest:16 Optimizer support ends at 9. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/not_where_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Where. Latest:16 Optimizer support ends at 9. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/not_where_fusion.cc [WARNING] - Newer opset found for kOnnxDomain.Conv. Latest:22 Optimizer support ends at 11. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/conv_mul_fusion.cc [ERROR] - Symbolic name of 'QOpName' found for op. Please check manually. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/qdq_transformer/qdq_util.cc [ERROR] - Symbolic name of 'QOpName' found for op. Please check manually. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/qdq_transformer/qdq_util.cc [ERROR] - Symbolic name of 'DQOpName' found for op. Please check manually. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/qdq_transformer/qdq_util.cc [ERROR] - Symbolic name of 'DQOpName' found for op. Please check manually. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/qdq_transformer/qdq_util.cc [ERROR] - Call/Declaration is split over multiple lines. Please check manually.File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/qdq_transformer/avx2_weight_s8_to_u8.cc Line:170 [WARNING] - Newer opset found for kOnnxDomain.MaxPool. Latest:22 Optimizer support ends at 12. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/qdq_transformer/qdq_propagation.cc [ERROR] - Symbolic name of 'current_node.OpType(' found for op. Please check manually. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/compute_optimizer/upstream_transformer_base.cc [WARNING] - Newer opset found for kOnnxDomain.Reshape. Latest:21 Optimizer support ends at 14. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/compute_optimizer/upstream_reshape.cc [WARNING] - Newer opset found for kOnnxDomain.Transpose. Latest:21 Optimizer support ends at 13. File:/home/titaiwang/onnxruntime/onnxruntime/core/optimizer/attention_fusion_helper.h ```
1 parent 7d86b40 commit 349d45a

24 files changed

+596
-288
lines changed

docs/How_To_Update_ONNX_Dev_Notes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ This file should be generated. See [cgmanifests/README](/cgmanifests/README.md)
3636
1. If there is a build failure in stage "Check out of dated documents" in WebAssembly CI pipeline, update ONNX Runtime
3737
Web WebGL operator support document:
3838
- Make sure Node.js is installed (see [Prerequisites](../js/README.md#Prerequisites) for instructions).
39-
- Follow step 1 in [js/Build](../js/README.md#Build-2) to install dependencies).
39+
- Follow [js/Build](../js/README.md#Build-2) to install dependencies.
4040
- Follow instructions in [Generate document](../js/README.md#Generating-Document) to update document. Commit changes applied to file `docs/operators.md`.
4141

42-
1. Usually some newly introduced tests will fail. Then you may need to update
42+
2. Usually some newly introduced tests will fail. Then you may need to update
4343
- [onnxruntime/test/onnx/main.cc](/onnxruntime/test/onnx/main.cc)
4444
- [onnxruntime/test/providers/cpu/model_tests.cc](/onnxruntime/test/providers/cpu/model_tests.cc)
4545
- [csharp/test/Microsoft.ML.OnnxRuntime.Tests.NetCoreApp/InferenceTest.netcore.cs](/csharp/test/Microsoft.ML.OnnxRuntime.Tests.NetCoreApp/InferenceTest.netcore.cs)

docs/OperatorKernels.md

Lines changed: 68 additions & 34 deletions
Large diffs are not rendered by default.

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ namespace onnxruntime {
3333
op, since_version, type, \
3434
KernelDefBuilder().MayInplace(0, 0).TypeConstraint("T", DataTypeImpl::GetTensorType<type>()), op<type>);
3535

36-
REGISTER_UNARY_ELEMENTWISE_KERNEL(Elu, 6);
37-
REGISTER_UNARY_ELEMENTWISE_KERNEL(HardSigmoid, 6);
36+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_KERNEL(Elu, 6, 21);
37+
REGISTER_UNARY_ELEMENTWISE_KERNEL(Elu, 22);
38+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_KERNEL(HardSigmoid, 6, 21);
39+
REGISTER_UNARY_ELEMENTWISE_KERNEL(HardSigmoid, 22);
3840
REGISTER_VERSIONED_UNARY_ELEMENTWISE_KERNEL(LeakyRelu, 6, 15);
3941
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Relu, 6, 12, float);
4042
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Relu, 6, 12, double);
@@ -52,19 +54,23 @@ REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(LeakyRelu, 6, 15, MLFloat16);
5254
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(LeakyRelu, 16, MLFloat16);
5355
#endif // MLAS_F16VEC_INTRINSICS_SUPPORTED
5456

55-
REGISTER_UNARY_ELEMENTWISE_KERNEL(Selu, 6);
57+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_KERNEL(Selu, 6, 21);
58+
REGISTER_UNARY_ELEMENTWISE_KERNEL(Selu, 22);
5659
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Sigmoid, 6, 12, float);
5760
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Sigmoid, 6, 12, double);
5861
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(Sigmoid, 13, float);
5962
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(Sigmoid, 13, double);
60-
REGISTER_UNARY_ELEMENTWISE_KERNEL(Softplus, 1);
61-
REGISTER_UNARY_ELEMENTWISE_KERNEL(Softsign, 1);
63+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_KERNEL(Softplus, 1, 21);
64+
REGISTER_UNARY_ELEMENTWISE_KERNEL(Softplus, 22);
65+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_KERNEL(Softsign, 1, 21);
66+
REGISTER_UNARY_ELEMENTWISE_KERNEL(Softsign, 22);
6267
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Tanh, 6, 12, float);
6368
REGISTER_VERSIONED_UNARY_ELEMENTWISE_TYPED_KERNEL(Tanh, 6, 12, double);
6469
REGISTER_UNARY_ELEMENTWISE_KERNEL(Celu, 12);
6570
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(Tanh, 13, float);
6671
REGISTER_UNARY_ELEMENTWISE_TYPED_KERNEL(Tanh, 13, double);
67-
REGISTER_UNARY_ELEMENTWISE_KERNEL(ThresholdedRelu, 10);
72+
REGISTER_VERSIONED_UNARY_ELEMENTWISE_KERNEL(ThresholdedRelu, 10, 21);
73+
REGISTER_UNARY_ELEMENTWISE_KERNEL(ThresholdedRelu, 22);
6874

6975
// Opset-16 adds BFloat16 to allowed types for the LeakyRelu operator
7076
REGISTER_UNARY_ELEMENTWISE_KERNEL(LeakyRelu, 16);

onnxruntime/core/providers/cpu/cpu_execution_provider.cc

Lines changed: 205 additions & 99 deletions
Large diffs are not rendered by default.

onnxruntime/core/providers/cpu/fp16/fp16_conv.cc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -596,9 +596,15 @@ Status FusedConvFp16::Compute(OpKernelContext* context) const {
596596
// Operator definitions
597597
//
598598

599+
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(
600+
Conv,
601+
11, 21, MLFloat16,
602+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()),
603+
FusedConvFp16);
604+
599605
ONNX_CPU_OPERATOR_TYPED_KERNEL(
600606
Conv,
601-
11,
607+
22,
602608
MLFloat16,
603609
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()),
604610
FusedConvFp16);

onnxruntime/core/providers/cpu/fp16/fp16_pool.cc

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,9 +224,16 @@ ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(
224224
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()),
225225
PoolFp16);
226226

227+
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(
228+
MaxPool,
229+
12, 21,
230+
MLFloat16,
231+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()),
232+
PoolFp16);
233+
227234
ONNX_CPU_OPERATOR_TYPED_KERNEL(
228235
MaxPool,
229-
12,
236+
22,
230237
MLFloat16,
231238
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()),
232239
PoolFp16);
@@ -237,16 +244,30 @@ ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(
237244
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()),
238245
PoolFp16);
239246

247+
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(
248+
AveragePool,
249+
19, 21,
250+
MLFloat16,
251+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()),
252+
PoolFp16);
253+
240254
ONNX_CPU_OPERATOR_TYPED_KERNEL(
241255
AveragePool,
242-
19,
256+
22,
257+
MLFloat16,
258+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()),
259+
PoolFp16);
260+
261+
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(
262+
GlobalAveragePool,
263+
1, 21,
243264
MLFloat16,
244265
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()),
245266
PoolFp16);
246267

247268
ONNX_CPU_OPERATOR_TYPED_KERNEL(
248269
GlobalAveragePool,
249-
1,
270+
22,
250271
MLFloat16,
251272
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()),
252273
PoolFp16);

onnxruntime/core/providers/cpu/math/det.cc

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,17 @@ using namespace onnxruntime::common;
1313

1414
namespace onnxruntime {
1515

16-
ONNX_CPU_OPERATOR_KERNEL(
16+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
1717
Det,
1818
11,
19+
21,
20+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
21+
Det<float>);
22+
23+
// Opset 22 starts to support bfloat16
24+
ONNX_CPU_OPERATOR_KERNEL(
25+
Det,
26+
22,
1927
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
2028
Det<float>);
2129

onnxruntime/core/providers/cpu/math/element_wise_ops.cc

Lines changed: 104 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1337,16 +1337,30 @@ class Sin final : public OpKernel {
13371337
}
13381338
};
13391339

1340+
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(
1341+
Sin,
1342+
7, 21,
1343+
float,
1344+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1345+
Sin<float>);
1346+
1347+
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(
1348+
Sin,
1349+
7, 21,
1350+
double,
1351+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<double>()),
1352+
Sin<double>);
1353+
13401354
ONNX_CPU_OPERATOR_TYPED_KERNEL(
13411355
Sin,
1342-
7,
1356+
22,
13431357
float,
13441358
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
13451359
Sin<float>);
13461360

13471361
ONNX_CPU_OPERATOR_TYPED_KERNEL(
13481362
Sin,
1349-
7,
1363+
22,
13501364
double,
13511365
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<double>()),
13521366
Sin<double>);
@@ -1365,9 +1379,17 @@ class Cos final : public OpKernel {
13651379
}
13661380
};
13671381

1368-
ONNX_CPU_OPERATOR_KERNEL(
1382+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
13691383
Cos,
13701384
7,
1385+
21,
1386+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1387+
Cos<float>);
1388+
1389+
// Opset 22 starts to support bfloat16
1390+
ONNX_CPU_OPERATOR_KERNEL(
1391+
Cos,
1392+
22,
13711393
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
13721394
Cos<float>);
13731395

@@ -1385,9 +1407,15 @@ class Tan final : public OpKernel {
13851407
}
13861408
};
13871409

1410+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
1411+
Tan,
1412+
7, 21,
1413+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1414+
Tan<float>);
1415+
13881416
ONNX_CPU_OPERATOR_KERNEL(
13891417
Tan,
1390-
7,
1418+
22,
13911419
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
13921420
Tan<float>);
13931421

@@ -1405,9 +1433,17 @@ class Asin final : public OpKernel {
14051433
}
14061434
};
14071435

1408-
ONNX_CPU_OPERATOR_KERNEL(
1436+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
14091437
Asin,
14101438
7,
1439+
21,
1440+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1441+
Asin<float>);
1442+
1443+
// Opset 22 starts to support bfloat16
1444+
ONNX_CPU_OPERATOR_KERNEL(
1445+
Asin,
1446+
22,
14111447
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
14121448
Asin<float>);
14131449

@@ -1425,9 +1461,17 @@ class Acos final : public OpKernel {
14251461
}
14261462
};
14271463

1428-
ONNX_CPU_OPERATOR_KERNEL(
1464+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
14291465
Acos,
14301466
7,
1467+
21,
1468+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1469+
Acos<float>);
1470+
1471+
// Opset 22 starts to support bfloat16
1472+
ONNX_CPU_OPERATOR_KERNEL(
1473+
Acos,
1474+
22,
14311475
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
14321476
Acos<float>);
14331477

@@ -1445,9 +1489,17 @@ class Atan final : public OpKernel {
14451489
}
14461490
};
14471491

1448-
ONNX_CPU_OPERATOR_KERNEL(
1492+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
14491493
Atan,
14501494
7,
1495+
21,
1496+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1497+
Atan<float>);
1498+
1499+
// Opset 22 starts to support bfloat16
1500+
ONNX_CPU_OPERATOR_KERNEL(
1501+
Atan,
1502+
22,
14511503
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
14521504
Atan<float>);
14531505

@@ -1465,9 +1517,17 @@ class Sinh final : public OpKernel {
14651517
}
14661518
};
14671519

1468-
ONNX_CPU_OPERATOR_KERNEL(
1520+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
14691521
Sinh,
14701522
9,
1523+
21,
1524+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1525+
Sinh<float>);
1526+
1527+
// Opset 22 starts to support bfloat16
1528+
ONNX_CPU_OPERATOR_KERNEL(
1529+
Sinh,
1530+
22,
14711531
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
14721532
Sinh<float>);
14731533

@@ -1485,9 +1545,17 @@ class Cosh final : public OpKernel {
14851545
}
14861546
};
14871547

1488-
ONNX_CPU_OPERATOR_KERNEL(
1548+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
14891549
Cosh,
14901550
9,
1551+
21,
1552+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1553+
Cosh<float>);
1554+
1555+
// Opset 22 starts to support bfloat16
1556+
ONNX_CPU_OPERATOR_KERNEL(
1557+
Cosh,
1558+
22,
14911559
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
14921560
Cosh<float>);
14931561

@@ -1517,9 +1585,17 @@ class Asinh final : public OpKernel {
15171585
ORT_DISALLOW_COPY_ASSIGNMENT_AND_MOVE(Asinh);
15181586
};
15191587

1520-
ONNX_CPU_OPERATOR_KERNEL(
1588+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
15211589
Asinh,
15221590
9,
1591+
21,
1592+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1593+
Asinh<float>);
1594+
1595+
// Opset 22 starts to support bfloat16
1596+
ONNX_CPU_OPERATOR_KERNEL(
1597+
Asinh,
1598+
22,
15231599
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
15241600
Asinh<float>);
15251601

@@ -1549,9 +1625,17 @@ class Acosh final : public OpKernel {
15491625
ORT_DISALLOW_COPY_ASSIGNMENT_AND_MOVE(Acosh);
15501626
};
15511627

1552-
ONNX_CPU_OPERATOR_KERNEL(
1628+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
15531629
Acosh,
15541630
9,
1631+
21,
1632+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1633+
Acosh<float>);
1634+
1635+
// Opset 22 starts to support bfloat16
1636+
ONNX_CPU_OPERATOR_KERNEL(
1637+
Acosh,
1638+
22,
15551639
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
15561640
Acosh<float>);
15571641

@@ -1581,9 +1665,17 @@ class Atanh final : public OpKernel {
15811665
ORT_DISALLOW_COPY_ASSIGNMENT_AND_MOVE(Atanh);
15821666
};
15831667

1584-
ONNX_CPU_OPERATOR_KERNEL(
1668+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
15851669
Atanh,
15861670
9,
1671+
21,
1672+
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
1673+
Atanh<float>);
1674+
1675+
// Opset 22 starts to support bfloat16
1676+
ONNX_CPU_OPERATOR_KERNEL(
1677+
Atanh,
1678+
22,
15871679
KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()),
15881680
Atanh<float>);
15891681

onnxruntime/core/providers/cpu/math/round.cc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@
1212

1313
namespace onnxruntime {
1414

15-
ONNX_CPU_OPERATOR_TYPED_KERNEL(Round, 11, MLFloat16, KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()), Round<MLFloat16>);
16-
ONNX_CPU_OPERATOR_TYPED_KERNEL(Round, 11, float, KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), Round<float>);
17-
ONNX_CPU_OPERATOR_TYPED_KERNEL(Round, 11, double, KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<double>()), Round<double>);
15+
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(Round, 11, 21, MLFloat16, KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()), Round<MLFloat16>);
16+
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(Round, 11, 21, float, KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), Round<float>);
17+
ONNX_CPU_OPERATOR_VERSIONED_TYPED_KERNEL(Round, 11, 21, double, KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<double>()), Round<double>);
18+
19+
ONNX_CPU_OPERATOR_TYPED_KERNEL(Round, 22, MLFloat16, KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<MLFloat16>()), Round<MLFloat16>);
20+
ONNX_CPU_OPERATOR_TYPED_KERNEL(Round, 22, float, KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<float>()), Round<float>);
21+
ONNX_CPU_OPERATOR_TYPED_KERNEL(Round, 22, double, KernelDefBuilder().TypeConstraint("T", DataTypeImpl::GetTensorType<double>()), Round<double>);
1822

1923
template <typename T>
2024
Status Round<T>::Compute(OpKernelContext* ctx) const {

onnxruntime/core/providers/cpu/nn/Unpool.cc

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,17 @@ ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
2323
.TypeConstraint("T2", DataTypeImpl::GetTensorType<int64_t>()),
2424
MaxUnpool);
2525

26+
ONNX_CPU_OPERATOR_VERSIONED_KERNEL(
27+
MaxUnpool,
28+
11, 21,
29+
KernelDefBuilder()
30+
.TypeConstraint("T1", DataTypeImpl::GetTensorType<float>())
31+
.TypeConstraint("T2", DataTypeImpl::GetTensorType<int64_t>()),
32+
MaxUnpool);
33+
2634
ONNX_CPU_OPERATOR_KERNEL(
2735
MaxUnpool,
28-
11,
36+
22,
2937
KernelDefBuilder()
3038
.TypeConstraint("T1", DataTypeImpl::GetTensorType<float>())
3139
.TypeConstraint("T2", DataTypeImpl::GetTensorType<int64_t>()),

0 commit comments

Comments
 (0)