Download build/webgpu/test.json from webgpu-kernels/ai.onnx.Min: direct link, hf CLI and curl.
- Browser
- Download file 44.4 kB
-
https://huggingface.co/kernels/webgpu-kernels/ai.onnx.Min/resolve/v1/build/webgpu/test.json
- Command line
-
hf download hf://webgpu-kernels/ai.onnx.Min@v1/build/webgpu/test.json
-
curl -L -o test.json https://huggingface.co/kernels/webgpu-kernels/ai.onnx.Min/resolve/v1/build/webgpu/test.json
44.4 kB
| { | |
| "cases": [ | |
| { | |
| "name": "int16_max_arity_boundaries", | |
| "inputs": { | |
| "a": { | |
| "dtype": "int16", | |
| "shape": [5], | |
| "data": { "kind": "values", "values": [-32768, 32767, 32767, 32767, 32767] } | |
| }, | |
| "b": { | |
| "dtype": "int16", | |
| "shape": [5], | |
| "data": { "kind": "values", "values": [32767, -32767, 32767, 32767, 32767] } | |
| }, | |
| "c": { | |
| "dtype": "int16", | |
| "shape": [5], | |
| "data": { "kind": "values", "values": [32767, 32767, -1, 32767, 32767] } | |
| }, | |
| "d": { "dtype": "int16", "shape": [5], "data": { "kind": "values", "values": [32767, 32767, 32767, 0, 32767] } }, | |
| "e": { "dtype": "int16", "shape": [5], "data": { "kind": "values", "values": [32767, 32767, 32767, 32767, 1] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "int16", | |
| "shape": [5], | |
| "tolerance": 0, | |
| "data": { "kind": "values", "values": [-32768, -32767, -1, 0, 1] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "max_arity_float16_positions", | |
| "provenance": { | |
| "notes": "Synthetic five-input float16 Min contract fixture; each bounded input position uniquely wins one output lane." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float16", "shape": [5], "data": { "kind": "values", "values": [1.0, 9.0, 9.0, 9.0, 9.0] } }, | |
| "b": { "dtype": "float16", "shape": [5], "data": { "kind": "values", "values": [9.0, 2.0, 9.0, 9.0, 9.0] } }, | |
| "c": { "dtype": "float16", "shape": [5], "data": { "kind": "values", "values": [9.0, 9.0, 3.0, 9.0, 9.0] } }, | |
| "d": { "dtype": "float16", "shape": [5], "data": { "kind": "values", "values": [9.0, 9.0, 9.0, 4.0, 9.0] } }, | |
| "e": { "dtype": "float16", "shape": [5], "data": { "kind": "values", "values": [9.0, 9.0, 9.0, 9.0, 5.0] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float16", | |
| "shape": [5], | |
| "tolerance": 0, | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "max_arity_int32_positions", | |
| "provenance": { | |
| "notes": "Synthetic five-input int32 Min contract fixture; each bounded input position uniquely wins one output lane." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [1, 9, 9, 9, 9] } }, | |
| "b": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [9, 2, 9, 9, 9] } }, | |
| "c": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 3, 9, 9] } }, | |
| "d": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 4, 9] } }, | |
| "e": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 9, 5] } } | |
| }, | |
| "outputs": { | |
| "y": { "dtype": "int32", "shape": [5], "tolerance": 0, "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } } | |
| } | |
| }, | |
| { | |
| "name": "max_arity_int8_positions", | |
| "provenance": { | |
| "notes": "Synthetic five-input int8 Min contract fixture; each bounded input position uniquely wins one output lane." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "int8", "shape": [5], "data": { "kind": "values", "values": [1, 9, 9, 9, 9] } }, | |
| "b": { "dtype": "int8", "shape": [5], "data": { "kind": "values", "values": [9, 2, 9, 9, 9] } }, | |
| "c": { "dtype": "int8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 3, 9, 9] } }, | |
| "d": { "dtype": "int8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 4, 9] } }, | |
| "e": { "dtype": "int8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 9, 5] } } | |
| }, | |
| "outputs": { | |
| "y": { "dtype": "int8", "shape": [5], "tolerance": 0, "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } } | |
| } | |
| }, | |
| { | |
| "name": "max_arity_uint32_positions", | |
| "provenance": { | |
| "notes": "Synthetic five-input uint32 Min contract fixture; each bounded input position uniquely wins one output lane." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [1, 9, 9, 9, 9] } }, | |
| "b": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [9, 2, 9, 9, 9] } }, | |
| "c": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 3, 9, 9] } }, | |
| "d": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 4, 9] } }, | |
| "e": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 9, 5] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "uint32", | |
| "shape": [5], | |
| "tolerance": 0, | |
| "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "max_arity_uint8_positions", | |
| "provenance": { | |
| "notes": "Synthetic five-input uint8 Min contract fixture; each bounded input position uniquely wins one output lane." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "uint8", "shape": [5], "data": { "kind": "values", "values": [1, 9, 9, 9, 9] } }, | |
| "b": { "dtype": "uint8", "shape": [5], "data": { "kind": "values", "values": [9, 2, 9, 9, 9] } }, | |
| "c": { "dtype": "uint8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 3, 9, 9] } }, | |
| "d": { "dtype": "uint8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 4, 9] } }, | |
| "e": { "dtype": "uint8", "shape": [5], "data": { "kind": "values", "values": [9, 9, 9, 9, 5] } } | |
| }, | |
| "outputs": { | |
| "y": { "dtype": "uint8", "shape": [5], "tolerance": 0, "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } } | |
| } | |
| }, | |
| { | |
| "name": "f32_negative_subnormal_min_zero_gpu_gap", | |
| "skipGpu": { | |
| "category": "permanent", | |
| "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes float32 subnormals to zero, so the negative subnormal becomes 0 and min(.,0) returns 0 instead of the subnormal." | |
| }, | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_8", | |
| "notes": "Negative subnormal inputs are less than zero and should be selected by Min." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [-1e-39, -1e-40, 0.0, 1e-40] } }, | |
| "b": { "dtype": "float32", "shape": [4], "data": { "kind": "constant", "value": 0.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [4], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "f32_negative_subnormal_min_zero_scalar_gpu_gap", | |
| "skipGpu": { | |
| "category": "permanent", | |
| "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes float32 subnormals to zero, so the negative subnormal becomes 0 and min(.,0) returns 0 instead of the subnormal." | |
| }, | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_8", | |
| "notes": "On the scalar broadcast path, negative subnormal inputs remain less than zero." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [-1e-40, 0.0, 1e-40] } }, | |
| "b": { "dtype": "float32", "shape": [], "data": { "kind": "values", "values": [0.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "same_shape", | |
| "inputs": { | |
| "a": { | |
| "dtype": "float32", | |
| "shape": [2, 3], | |
| "data": { "kind": "values", "values": [1.0, 5.0, -2.0, 4.0, 0.0, 6.0] } | |
| }, | |
| "b": { | |
| "dtype": "float32", | |
| "shape": [2, 3], | |
| "data": { "kind": "values", "values": [3.0, 2.0, -4.0, 8.0, 1.0, 1.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3] } } | |
| }, | |
| { | |
| "name": "rank4_broadcast", | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [1, 2, 3, 4] }, | |
| "b": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 1, 4], | |
| "data": { "kind": "values", "values": [0.2, 0.1, -0.1, -0.2] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 3, 4] } } | |
| }, | |
| { | |
| "name": "rank0_rhs_threshold_broadcast", | |
| "inputs": { | |
| "a": { | |
| "dtype": "float32", | |
| "shape": [6], | |
| "data": { "kind": "values", "values": [-2.0, -0.5, 0.0, 0.5, 2.0, 5.0] } | |
| }, | |
| "b": { "dtype": "float32", "shape": [], "data": { "kind": "values", "values": [0.5] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [6], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "nan_propagates", | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": ["NaN", 1.0, "NaN", 2.0] } }, | |
| "b": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [3.0, "NaN", "NaN", 1.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [4], "tolerance": 0.000001, "allowNaN": true } } | |
| }, | |
| { | |
| "name": "uint32_exact_above_float24", | |
| "inputs": { | |
| "a": { | |
| "dtype": "uint32", | |
| "shape": [4], | |
| "data": { "kind": "values", "values": [16777217, 16777216, 4294967295, 4294967294] } | |
| }, | |
| "b": { | |
| "dtype": "uint32", | |
| "shape": [4], | |
| "data": { "kind": "values", "values": [16777216, 16777217, 4294967294, 4294967295] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "uint32", "shape": [4], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "same_shape_vec4_three_input", | |
| "inputs": { | |
| "a": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [1.0, 5.0, -2.0, 4.0, 0.0, 6.0, 10.0, -10.0] } | |
| }, | |
| "b": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [3.0, 2.0, -4.0, 8.0, 1.0, 1.0, 9.0, -9.0] } | |
| }, | |
| "c": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [0.0, 7.0, -3.0, 2.0, -1.0, 8.0, 11.0, -11.0] } | |
| } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "tolerance": 0.000001, | |
| "data": { "kind": "values", "values": [0.0, 2.0, -4.0, 2.0, -1.0, 1.0, 9.0, -11.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_float_three_input_same_shape", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_8" | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "float32", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [1.0, 0.0, 1.0, -1.0, 1.1, -100.0, -5.4, 0.01, -10000.0] } | |
| }, | |
| "b": { | |
| "dtype": "float32", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [1.0, 0.0, 2.0, -2.0, 2.2, 64.0, -1.0, 0.02, 0.1] } | |
| }, | |
| "c": { | |
| "dtype": "float32", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [1.0, 0.0, 3.0, -3.0, 3.3, 64.0, 5.4, 0.03, 10000.0] } | |
| } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [3, 3], | |
| "tolerance": 0.000001, | |
| "data": { "kind": "values", "values": [1.0, 0.0, 1.0, -3.0, 1.1, -100.0, -5.4, 0.01, -10000.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_validated_four_inputs_same_shape_variadic", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_8", | |
| "notes": "Four same-shaped inputs exercise the valid maximum arity of this variadic Min package." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "constant", "value": -1.0 } }, | |
| "b": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "constant", "value": -3.0 } }, | |
| "c": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "constant", "value": -5.0 } }, | |
| "d": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "constant", "value": -7.0 } } | |
| }, | |
| "outputs": { | |
| "y": { "dtype": "float32", "shape": [2, 2], "tolerance": 0, "data": { "kind": "constant", "value": -7.0 } } | |
| } | |
| }, | |
| { | |
| "name": "four_input_same_shape_vec4_reference_generated", | |
| "provenance": { | |
| "notes": "Four equal-amplitude interleaved sinusoids make the fourth operand supply the minimum on many lanes, so omitting any operand changes the output well beyond tolerance." | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 2, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.23, "scale": 0.25 } | |
| }, | |
| "b": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 2, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.07, "scale": 0.25 } | |
| }, | |
| "c": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 2, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.31, "cosStep": 0.13, "scale": 0.25 } | |
| }, | |
| "d": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 2, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.05, "cosStep": 0.37, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 2, 8], "tolerance": 0.000001, "relTolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_four_inputs_nan_propagates_variadic", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_8", | |
| "notes": "A fourth input carrying NaNs verifies that any NaN operand propagates at that element." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [1.0, "NaN", 5.0, -4.0] } }, | |
| "b": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [2.0, 3.0, "NaN", 1.0] } }, | |
| "c": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [0.0, -5.0, 2.0, -8.0] } }, | |
| "d": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [-3.0, 4.0, -6.0, "NaN"] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [4], | |
| "tolerance": 0, | |
| "allowNaN": true, | |
| "data": { "kind": "values", "values": [-3.0, "NaN", "NaN", "NaN"] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_float_three_input_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_Float" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } }, | |
| "b": { | |
| "dtype": "float32", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [10.0, 20.0, 30.0, 40.0, 50.0, 60.0, -70.0, -80.0, -90.0] } | |
| }, | |
| "c": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [-1.0, 20.0, 300.0] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [3, 3], | |
| "tolerance": 0.000001, | |
| "data": { "kind": "values", "values": [-1.0, -1.0, -1.0, 1.0, 2.0, 3.0, -70.0, -80.0, -90.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_float_four_input_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_Float", | |
| "notes": "Extends ORT's multidirectional broadcast case to a valid four-input ONNX variadic Min node." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } }, | |
| "b": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [10.0, 20.0, 30.0] } }, | |
| "c": { "dtype": "float32", "shape": [3, 1, 1], "data": { "kind": "values", "values": [100.0, 200.0, 300.0] } }, | |
| "d": { | |
| "dtype": "float32", | |
| "shape": [1, 1, 3], | |
| "data": { "kind": "values", "values": [-1000.0, -2000.0, -3000.0] } | |
| } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [3, 3, 3], | |
| "tolerance": 0, | |
| "data": { | |
| "kind": "values", | |
| "values": [-1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0, -1000.0, -2000.0, -3000.0] | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_float_nan_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_Float_Nan" | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "float32", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": ["NaN", "NaN", "NaN", -0.5, 0.0, -2.0, 0.5, 0.0, 2.0] } | |
| }, | |
| "b": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [0.0, -1.0, 1.0] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [3, 3], | |
| "tolerance": 0.000001, | |
| "allowNaN": true, | |
| "data": { "kind": "values", "values": ["NaN", "NaN", "NaN", -1.0, -1.0, -2.0, 0.5, 0.0, 1.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_float_2input_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_Float_2_Input" | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "float32", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [10.0, 20.0, 30.0, 40.0, 50.0, 60.0, -70.0, -80.0, -90.0] } | |
| }, | |
| "b": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [-1.0, 20.0, 300.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 3], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_float_nan_with_scalar", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_Float_Nan_with_scalar" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": ["NaN", -0.5, 0.5] } }, | |
| "b": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.25] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 1], "tolerance": 0.000001, "allowNaN": true } } | |
| }, | |
| { | |
| "name": "ort_float_scalar_nan_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_Float_with_scalar_Nan", | |
| "notes": "Diverges from the upstream test's inputs (inputs.a values [0.25, -0.25, -0.5, 0.5] -> constant 0.25); the expected output is recomputed by the CPU reference for the new inputs. A NaN scalar operand propagates to every element whatever the other operand holds, so the tensor operand is uniform: any finite result fails." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "constant", "value": 0.25 } }, | |
| "b": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": ["NaN"] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001, "allowNaN": true } } | |
| }, | |
| { | |
| "name": "ort_f16_matrix_vector", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_13_Float16_MatrixVector" | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "float16", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [1.0, 1.0, 1.0, -0.5, 0.0, -2.0, 0.5, 0.0, 2.0] } | |
| }, | |
| "b": { "dtype": "float16", "shape": [3, 1], "data": { "kind": "values", "values": [0.0, -1.0, 1.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [3, 3], "tolerance": 0.002 } } | |
| }, | |
| { | |
| "name": "ort_f16_vector_matrix", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_13_Float16_VectorMatrix" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float16", "shape": [3, 1], "data": { "kind": "values", "values": [0.0, -1.0, 1.0] } }, | |
| "b": { | |
| "dtype": "float16", | |
| "shape": [3, 4], | |
| "data": { "kind": "values", "values": [1.0, 1.0, 1.0, -1.0, -0.5, 0.0, -2.0, -1.25, 0.5, 0.0, 2.0, 1.5] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [3, 4], "tolerance": 0.002 } } | |
| }, | |
| { | |
| "name": "ort_f16_nan_pair", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_13_Float16_Nan" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float16", "shape": [4, 1], "data": { "kind": "values", "values": [-1.0, "NaN", 1.0, 0.5] } }, | |
| "b": { "dtype": "float16", "shape": [4, 1], "data": { "kind": "values", "values": [0.5, 1.0, 0.25, "NaN"] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [4, 1], "tolerance": 0.002, "allowNaN": true } } | |
| }, | |
| { | |
| "name": "ort_f16_nan_with_scalar", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_13_Float16_Nan_with_scalar" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float16", "shape": [3, 1], "data": { "kind": "values", "values": [-1.0, "NaN", 1.0] } }, | |
| "b": { "dtype": "float16", "shape": [1], "data": { "kind": "values", "values": [0.25] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [3, 1], "tolerance": 0.002, "allowNaN": true } } | |
| }, | |
| { | |
| "name": "ort_f16_scalar_nan_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_13_Float16_with_scalar_Nan", | |
| "notes": "Diverges from the upstream test's inputs (inputs.a values [-0.5, 1.0, 1.5] -> constant 1.0); the expected output is recomputed by the CPU reference for the new inputs. A NaN scalar operand propagates to every element whatever the other operand holds, so the tensor operand is uniform: any finite result fails." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float16", "shape": [3, 1], "data": { "kind": "constant", "value": 1.0 } }, | |
| "b": { "dtype": "float16", "shape": [1], "data": { "kind": "values", "values": ["NaN"] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [3, 1], "tolerance": 0.002, "allowNaN": true } } | |
| }, | |
| { | |
| "name": "ort_f16_three_input", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_MLFloat16" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0] } }, | |
| "b": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [2.0, -1.0, -2.0] } }, | |
| "c": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [3.0, 2.0, -3.0] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float16", | |
| "shape": [1, 3], | |
| "tolerance": 0.002, | |
| "data": { "kind": "values", "values": [1.0, -1.0, -3.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_f16_scalar0_three_input", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_MLFloat16_Scalar0" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float16", "shape": [], "data": { "kind": "values", "values": [-10.0] } }, | |
| "b": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [2.0, -1.0, -2.0] } }, | |
| "c": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [3.0, 2.0, -3.0] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float16", | |
| "shape": [1, 3], | |
| "tolerance": 0.002, | |
| "data": { "kind": "values", "values": [-10.0, -10.0, -10.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_f16_scalar1_three_input", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_MLFloat16_Scalar1", | |
| "notes": "Diverges from the upstream test's inputs (inputs.a values [2.0, 3.0, 4.0] -> constant 2.0; inputs.c values [3.0, 2.0, -3.0] -> constant 3.0); the expected output is recomputed by the CPU reference for the new inputs. The rank-0 operand dominates all three inputs, so the tensor operands are uniform: a variadic fold that drops the scalar returns the tensor value instead." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "constant", "value": 2.0 } }, | |
| "b": { "dtype": "float16", "shape": [], "data": { "kind": "values", "values": [-10.0] } }, | |
| "c": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "constant", "value": 3.0 } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float16", | |
| "shape": [1, 3], | |
| "tolerance": 0.002, | |
| "data": { "kind": "values", "values": [-10.0, -10.0, -10.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "ort_int8_pair_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_Int8", | |
| "notes": "Two-input projection of ORT's broadcast case for logical int8 storage." | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "int8", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, -70, -80, -90] } | |
| }, | |
| "b": { "dtype": "int8", "shape": [3, 1], "data": { "kind": "values", "values": [-1, 20, 127] } } | |
| }, | |
| "outputs": { "y": { "dtype": "int8", "shape": [3, 3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "ort_uint8_pair_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_UInt8", | |
| "notes": "Two-input projection of ORT's broadcast case for logical uint8 storage." | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "uint8", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, 70, 80, 90] } | |
| }, | |
| "b": { "dtype": "uint8", "shape": [3, 1], "data": { "kind": "values", "values": [1, 20, 30] } } | |
| }, | |
| "outputs": { "y": { "dtype": "uint8", "shape": [3, 3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "ort_int8_three_input_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_Int8" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "int8", "shape": [1, 3], "data": { "kind": "values", "values": [1, 2, 3] } }, | |
| "b": { | |
| "dtype": "int8", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, -70, -80, -90] } | |
| }, | |
| "c": { "dtype": "int8", "shape": [3, 1], "data": { "kind": "values", "values": [-1, 20, 127] } } | |
| }, | |
| "outputs": { "y": { "dtype": "int8", "shape": [3, 3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "ort_uint8_three_input_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_UInt8" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "uint8", "shape": [1, 3], "data": { "kind": "values", "values": [1, 20, 30] } }, | |
| "b": { | |
| "dtype": "uint8", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, 70, 80, 90] } | |
| }, | |
| "c": { "dtype": "uint8", "shape": [3, 1], "data": { "kind": "values", "values": [1, 20, 30] } } | |
| }, | |
| "outputs": { "y": { "dtype": "uint8", "shape": [3, 3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "ort_int32_three_input_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_Int32" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "int32", "shape": [1, 3], "data": { "kind": "values", "values": [1, 2, 3] } }, | |
| "b": { | |
| "dtype": "int32", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, -70, -80, -90] } | |
| }, | |
| "c": { "dtype": "int32", "shape": [3, 1], "data": { "kind": "values", "values": [-1, 20, 300] } } | |
| }, | |
| "outputs": { "y": { "dtype": "int32", "shape": [3, 3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "ort_uint32_three_input_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_UInt32" | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "uint32", "shape": [1, 3], "data": { "kind": "values", "values": [1, 20, 30] } }, | |
| "b": { | |
| "dtype": "uint32", | |
| "shape": [3, 3], | |
| "data": { "kind": "values", "values": [10, 20, 30, 40, 50, 60, 70, 80, 90] } | |
| }, | |
| "c": { "dtype": "uint32", "shape": [3, 1], "data": { "kind": "values", "values": [1, 20, 30] } } | |
| }, | |
| "outputs": { "y": { "dtype": "uint32", "shape": [3, 3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "onnx_backend_min_float16", | |
| "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_float16" }, | |
| "inputs": { | |
| "a": { "dtype": "float16", "shape": [3], "data": { "kind": "values", "values": [3.0, 2.0, 1.0] } }, | |
| "b": { "dtype": "float16", "shape": [3], "data": { "kind": "values", "values": [1.0, 4.0, 4.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "onnx_backend_min_int32", | |
| "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_int32" }, | |
| "inputs": { | |
| "a": { "dtype": "int32", "shape": [3], "data": { "kind": "values", "values": [3, 2, 1] } }, | |
| "b": { "dtype": "int32", "shape": [3], "data": { "kind": "values", "values": [1, 4, 4] } } | |
| }, | |
| "outputs": { "y": { "dtype": "int32", "shape": [3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "onnx_backend_min_int8", | |
| "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_int8" }, | |
| "inputs": { | |
| "a": { "dtype": "int8", "shape": [3], "data": { "kind": "values", "values": [3, 2, 1] } }, | |
| "b": { "dtype": "int8", "shape": [3], "data": { "kind": "values", "values": [1, 4, 4] } } | |
| }, | |
| "outputs": { "y": { "dtype": "int8", "shape": [3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "onnx_backend_min_two_inputs", | |
| "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_two_inputs" }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [3.0, 2.0, 1.0] } }, | |
| "b": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 4.0, 4.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "onnx_backend_min_uint32", | |
| "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_uint32" }, | |
| "inputs": { | |
| "a": { "dtype": "uint32", "shape": [3], "data": { "kind": "values", "values": [3, 2, 1] } }, | |
| "b": { "dtype": "uint32", "shape": [3], "data": { "kind": "values", "values": [1, 4, 4] } } | |
| }, | |
| "outputs": { "y": { "dtype": "uint32", "shape": [3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "onnx_backend_min_uint8", | |
| "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_uint8" }, | |
| "inputs": { | |
| "a": { "dtype": "uint8", "shape": [3], "data": { "kind": "values", "values": [3, 2, 1] } }, | |
| "b": { "dtype": "uint8", "shape": [3], "data": { "kind": "values", "values": [1, 4, 4] } } | |
| }, | |
| "outputs": { "y": { "dtype": "uint8", "shape": [3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "onnx_backend_min_one_input_identity", | |
| "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_one_input" }, | |
| "inputs": { "a": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [3.0, 2.0, 1.0] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "onnx_backend_min_example_three_inputs", | |
| "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_min_example" }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [3.0, 2.0, 1.0] } }, | |
| "b": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 4.0, 4.0] } }, | |
| "c": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [2.0, 5.0, 0.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "ort_dim_zero_equal_rank", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.DimWithZeroHandling", | |
| "notes": "Projected from ORT's binary elementwise zero-dimension Add coverage to generic ONNX multidirectional broadcasting." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } }, | |
| "b": { "dtype": "float32", "shape": [3, 0], "data": { "kind": "values", "values": [] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 0], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "ort_dim_zero_scalar_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.DimWithZeroHandling", | |
| "notes": "Projected from ORT's binary elementwise zero-dimension Add coverage to generic ONNX multidirectional broadcasting." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [], "data": { "kind": "values", "values": [1.0] } }, | |
| "b": { "dtype": "float32", "shape": [0], "data": { "kind": "values", "values": [] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [0], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "single_input_identity_ignores_d", | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [1.0, -5.0, 3.0, 0.0] } }, | |
| "d": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [-2.0, -3.0, 10.0, -7.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [4], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "same_shape_vec4_ignores_d_when_c_absent", | |
| "inputs": { | |
| "a": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] } | |
| }, | |
| "b": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5] } | |
| }, | |
| "d": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [-10.0, 99.0, 99.0, 99.0, 99.0, 99.0, 99.0, -100.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [8], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "f32_infinity_pair", | |
| "inputs": { | |
| "a": { | |
| "dtype": "float32", | |
| "shape": [6], | |
| "data": { "kind": "values", "values": ["Infinity", "-Infinity", "Infinity", "-Infinity", 1.0, 2.0] } | |
| }, | |
| "b": { | |
| "dtype": "float32", | |
| "shape": [6], | |
| "data": { "kind": "values", "values": ["-Infinity", 0.0, 1.0, "Infinity", "-Infinity", 3.0] } | |
| } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [6], | |
| "tolerance": 0, | |
| "data": { "kind": "values", "values": ["-Infinity", "-Infinity", 1.0, "-Infinity", "-Infinity", 2.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "int8_extreme_values_broadcast", | |
| "inputs": { | |
| "a": { "dtype": "int8", "shape": [4], "data": { "kind": "values", "values": [-128, 127, -128, 0] } }, | |
| "b": { "dtype": "int8", "shape": [4], "data": { "kind": "values", "values": [127, -128, 0, -1] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "int8", | |
| "shape": [4], | |
| "tolerance": 0, | |
| "data": { "kind": "values", "values": [-128, -128, -128, -1] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "five_input_same_shape_variadic", | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [1.0, 9.0, -3.0, 4.0] } }, | |
| "b": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [2.0, 8.0, -4.0, 3.0] } }, | |
| "c": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [3.0, 7.0, -5.0, 2.0] } }, | |
| "d": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [4.0, 6.0, -6.0, 1.0] } }, | |
| "e": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [5.0, 5.0, -7.0, 0.0] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [4], | |
| "tolerance": 0, | |
| "data": { "kind": "values", "values": [1.0, 5.0, -7.0, 0.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "rank8_broadcast_two_input", | |
| "inputs": { | |
| "a": { | |
| "dtype": "float32", | |
| "shape": [1, 2, 1, 2, 1, 2, 2, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.23 } | |
| }, | |
| "b": { | |
| "dtype": "float32", | |
| "shape": [2, 1, 2, 1, 2, 1, 2, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.19 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 2, 2, 2, 2, 2, 3], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "uint32_three_input_same_shape_vec4", | |
| "provenance": { | |
| "notes": "uint32 at arity 3 exercises the flat vec4 same-shape path and its extra-operand fold. Lanes 0-2 contain values above 2^31, so a signed comparison produces the wrong minimum. Valid ONNX Min-13: variadic over any numeric T with all operands the same shape." | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "uint32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [4000000000, 10, 2147483648, 50, 30, 90, 1200, 1400] } | |
| }, | |
| "b": { | |
| "dtype": "uint32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [100, 3500000000, 2147483649, 45, 70, 95, 1100, 1500] } | |
| }, | |
| "c": { | |
| "dtype": "uint32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [200, 4294967295, 999, 60, 80, 85, 1300, 1350] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "uint32", "shape": [8], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "int32_four_input_same_shape_vec4", | |
| "provenance": { | |
| "notes": "int32 at arity 4 on the flat vec4 same-shape path: the i32 branch of the same integer lane of minmax-vec4, with TWO extra-operand folds so the second fold reads the value the first produced. Lane 0 pairs INT32_MIN with INT32_MAX, which no float32 path could carry exactly; lanes 1-7 spread the win evenly over a, b, c and d. Valid ONNX Min-13: variadic over numeric T with all four operands the same shape." | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "int32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [-2147483648, -10, -20, -30, -1500, -40, -50, -60] } | |
| }, | |
| "b": { | |
| "dtype": "int32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [2147483647, -950, -25, -35, -200, -1600, -55, -65] } | |
| }, | |
| "c": { | |
| "dtype": "int32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [-110, -15, -990, -45, -210, -70, -1700, -75] } | |
| }, | |
| "d": { | |
| "dtype": "int32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [-120, -20, -30, -1000, -220, -80, -85, -1800] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "int32", "shape": [8], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "f16_three_input_same_shape_vec4", | |
| "provenance": { | |
| "notes": "float16 at arity 3 exercises the flat vec4 same-shape path, including widening to f32, the extra-operand minimum fold, NaN re-injection, and narrowing. Every value is exactly representable in float16 and each operand wins at least two lanes." | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "float16", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [-3.5, 2.5, -0.25, -6.0, 3.0, -3.5, 0.75, -0.5] } | |
| }, | |
| "b": { | |
| "dtype": "float16", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [-2.5, 0.5, 0.5, -2.0, 1.0, -2.5, 8.0, -7.75] } | |
| }, | |
| "c": { | |
| "dtype": "float16", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [-0.5, 1.5, -4.5, -3.0, 2.0, -5.5, 4.0, -1.5] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [8], "tolerance": 0.002 } } | |
| }, | |
| { | |
| "name": "f16_four_input_same_shape_vec4", | |
| "provenance": { | |
| "notes": "Four same-shaped float16 inputs require two successive minimum folds on the vectorized path. Every value is exactly representable, and each operand supplies the minimum on exactly two lanes." | |
| }, | |
| "inputs": { | |
| "a": { | |
| "dtype": "float16", | |
| "shape": [2, 4], | |
| "data": { "kind": "values", "values": [-3.5, 2.5, -0.25, -6.0, 1.0, -3.5, 4.0, -0.5] } | |
| }, | |
| "b": { | |
| "dtype": "float16", | |
| "shape": [2, 4], | |
| "data": { "kind": "values", "values": [-2.5, 0.5, 0.5, -2.0, 3.0, -6.5, 8.0, -5.5] } | |
| }, | |
| "c": { | |
| "dtype": "float16", | |
| "shape": [2, 4], | |
| "data": { "kind": "values", "values": [-0.5, 1.5, -4.5, -3.0, 2.0, -5.5, 0.75, -1.5] } | |
| }, | |
| "d": { | |
| "dtype": "float16", | |
| "shape": [2, 4], | |
| "data": { "kind": "values", "values": [0.5, 3.5, -1.25, -9.0, 6.0, -2.5, 1.0, -7.75] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 4], "tolerance": 0.002 } } | |
| }, | |
| { | |
| "name": "ort_three_input_variadic_nan_broadcast", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc", | |
| "test": "MathOpTest.Min_12_Float_Variadic_Nan_WebGpu", | |
| "notes": "A NaN in the middle operand of a three-input fold must survive to the output." | |
| }, | |
| "inputs": { | |
| "a": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } }, | |
| "b": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": ["NaN", 0.0, 5.0] } }, | |
| "c": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": [-1.0, -2.0, 4.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 3], "tolerance": 0, "allowNaN": true } } | |
| } | |
| ] | |
| } | |