| { |
| "op": "ai.onnx.ReduceL2", |
| "cases": [ |
| { |
| "name": "all_axes_flat_rank1_boundary_8192", |
| "provenance": { |
| "notes": "The parallel full-reduction threshold must supersede the rank1 serial and row-reduction fallbacks." |
| }, |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [8192], "data": { "kind": "constant", "value": 1.0 } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [], "tolerance": 0.001 } } |
| }, |
| { |
| "name": "all_axes_flat_fullreduce_32x32x32_keepdims", |
| "attrs": { "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [32, 32, 32], |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.5 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1], "tolerance": 0.01, "relTolerance": 0.0001 } } |
| }, |
| { |
| "name": "dispatch_cliff_axis1", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { "dtype": "float32", "shape": [16777000, 1], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [16777000], "tolerance": 0.0001 } } |
| }, |
| { |
| "name": "axis0", |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 3], |
| "data": { "kind": "values", "values": [-1.0, 2.0, -3.0, 4.0, -5.0, 6.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "axis0_tiled_64x32", |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [64, 32], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [32], "tolerance": 0.00002 } } |
| }, |
| { |
| "name": "f32_normal_inputs_subnormal_square_l2_axis0_tilecols_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: WebGPU/Metal flushes subnormals to zero in f32; bit-exact subnormal preservation is unattainable on GPU." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2", |
| "notes": "Tiled axis-0 companion: normal inputs have subnormal squared terms, but their 64-row L2 result is finite and nonzero." |
| }, |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [64, 16], "data": { "kind": "constant", "value": 1e-20 } } }, |
| "outputs": { |
| "y": { "dtype": "float32", "shape": [16], "tolerance": 3e-25, "data": { "kind": "constant", "value": 8e-20 } } |
| } |
| }, |
| { |
| "name": "axis1", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 3], |
| "data": { "kind": "values", "values": [-1.0, 2.0, -3.0, 4.0, -5.0, 6.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "f32_normal_inputs_subnormal_square_l2_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: WebGPU/Metal flushes subnormals to zero in f32; bit-exact subnormal preservation is unattainable on GPU." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2", |
| "notes": "Inputs are normal float32 values, but their squared sum is subnormal; L2 must take the square root of that finite sum instead of collapsing to zero." |
| }, |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 3], |
| "data": { "kind": "values", "values": [1e-20, -1e-20, 0.0, 2e-20, -2e-20, 1e-20] } |
| } |
| }, |
| "outputs": { |
| "y": { |
| "dtype": "float32", |
| "shape": [2], |
| "tolerance": 5e-26, |
| "data": { "kind": "values", "values": [1.414213562373095e-20, 3e-20] } |
| } |
| } |
| }, |
| { |
| "name": "f32_normal_inputs_subnormal_square_l2_axis0_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: WebGPU/Metal flushes subnormals to zero in f32; bit-exact subnormal preservation is unattainable on GPU." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2", |
| "notes": "Axis-0 companion: normal inputs can have finite subnormal square sums whose L2 result is still normal and nonzero." |
| }, |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2], |
| "data": { "kind": "values", "values": [1e-20, -1e-20, -1e-20, 0.0, 0.0, 2e-20] } |
| } |
| }, |
| "outputs": { |
| "y": { |
| "dtype": "float32", |
| "shape": [2], |
| "tolerance": 6e-26, |
| "data": { "kind": "values", "values": [1.414213562373095e-20, 2.23606797749979e-20] } |
| } |
| } |
| }, |
| { |
| "name": "f32_many_tiny_normals_square_sum_to_normal_l2_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: WebGPU/Metal flushes subnormals to zero in f32; bit-exact subnormal preservation is unattainable on GPU." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2", |
| "notes": "Many tiny normal inputs have individually subnormal squares but a normal finite square-sum, so L2 should return a finite normal magnitude." |
| }, |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 1024], "data": { "kind": "constant", "value": 1e-20 } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [1], "tolerance": 1e-24 } } |
| }, |
| { |
| "name": "f32_normal_inputs_subnormal_square_l2_last_axis_vec4_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: WebGPU/Metal flushes subnormals to zero in f32; bit-exact subnormal preservation is unattainable on GPU." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2", |
| "notes": "Vec4 last-axis companion: normal inputs can have subnormal square sums whose L2 norm is finite and nonzero." |
| }, |
| "attrs": { "axes": [-1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 4], |
| "data": { "kind": "values", "values": [1e-20, -1e-20, 0.0, 0.0, 2e-20, 0.0, 0.0, 0.0] } |
| } |
| }, |
| "outputs": { |
| "y": { |
| "dtype": "float32", |
| "shape": [2], |
| "tolerance": 6e-26, |
| "data": { "kind": "values", "values": [1.414213562373095e-20, 2e-20] } |
| } |
| } |
| }, |
| { |
| "name": "f32_normal_inputs_subnormal_square_l2_last_axis_odd_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: WebGPU/Metal flushes subnormals to zero in f32; bit-exact subnormal preservation is unattainable on GPU." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2", |
| "notes": "Odd-width last-axis companion: normal tiny inputs can have finite subnormal square sums whose non-vec4 subgroup L2 norm is nonzero." |
| }, |
| "attrs": { "axes": [-1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 3], |
| "data": { "kind": "values", "values": [1e-20, -1e-20, 0.0, 2e-20, -2e-20, 1e-20] } |
| } |
| }, |
| "outputs": { |
| "y": { |
| "dtype": "float32", |
| "shape": [2], |
| "tolerance": 6e-26, |
| "data": { "kind": "values", "values": [1.414213562373095e-20, 3e-20] } |
| } |
| } |
| }, |
| { |
| "name": "f32_normal_inputs_subnormal_square_l2_rank3_axis1_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: WebGPU/Metal flushes subnormals to zero in f32; bit-exact subnormal preservation is unattainable on GPU." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2", |
| "notes": "Rank-3 axis-1 companion: normal tiny inputs have finite subnormal square sums and nonzero L2 norms." |
| }, |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 3, 2], |
| "data": { |
| "kind": "values", |
| "values": [1e-20, -1e-20, -1e-20, 0.0, 0.0, 2e-20, 2e-20, 0.0, 0.0, -2e-20, 1e-20, 0.0] |
| } |
| } |
| }, |
| "outputs": { |
| "y": { |
| "dtype": "float32", |
| "shape": [2, 2], |
| "tolerance": 6e-26, |
| "data": { |
| "kind": "values", |
| "values": [1.414213562373095e-20, 2.23606797749979e-20, 2.23606797749979e-20, 2e-20] |
| } |
| } |
| } |
| }, |
| { |
| "name": "f32_normal_inputs_subnormal_square_l2_rank3_all_axes_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: WebGPU/Metal flushes subnormals to zero in f32; bit-exact subnormal preservation is unattainable on GPU." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_default_axes_do_not_keep_dims", |
| "notes": "Rank-3 default-axes companion: normal tiny values have finite subnormal square sums and a nonzero scalar L2 norm." |
| }, |
| "attrs": { "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [2, 3, 2], "data": { "kind": "constant", "value": 1e-20 } } }, |
| "outputs": { |
| "y": { |
| "dtype": "float32", |
| "shape": [], |
| "tolerance": 1e-25, |
| "data": { "kind": "values", "values": [3.4641016151377543e-20] } |
| } |
| } |
| }, |
| { |
| "name": "f32_normal_inputs_subnormal_square_l2_rank3_all_axes_keepdims_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: WebGPU/Metal flushes subnormals to zero in f32; bit-exact subnormal preservation is unattainable on GPU." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_default_axes_keepdims", |
| "notes": "Rank-3 default-axes keepdims companion: normal tiny values have finite subnormal square sums and a nonzero [1,1,1] L2 result." |
| }, |
| "attrs": { "keepdims": 1 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [2, 3, 2], "data": { "kind": "constant", "value": 1e-20 } } }, |
| "outputs": { |
| "y": { |
| "dtype": "float32", |
| "shape": [1, 1, 1], |
| "tolerance": 1e-25, |
| "data": { "kind": "values", "values": [3.4641016151377543e-20] } |
| } |
| } |
| }, |
| { |
| "name": "axis1_empty_cols_identity_zero", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [2, 0], "data": { "kind": "values", "values": [] } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2], "tolerance": 0 } } |
| }, |
| { |
| "name": "axis0_empty_rows_identity_zero", |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [0, 3], "data": { "kind": "values", "values": [] } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } } |
| }, |
| { |
| "name": "axis1_zero_rows_noop", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [0, 3], "data": { "kind": "values", "values": [] } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [0], "tolerance": 0 } } |
| }, |
| { |
| "name": "axis_minus_one", |
| "attrs": { "axes": [-1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 4], |
| "data": { "kind": "values", "values": [1.0, -2.0, 3.0, -4.0, 0.5, 1.5, -2.5, 3.5, -6.0, 0.0, 8.0, 10.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "rank3_axis_minus_one_keepdims", |
| "attrs": { "axes": [-1], "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 3, 4], |
| "data": { |
| "kind": "values", |
| "values": [1.0, -2.0, 0.0, 4.0, -3.0, 6.0, -1.0, 2.0, 0.5, -0.5, 8.0, -8.0, -7.0, 0.0, 24.0, 0.0, 5.0, -12.0, 0.0, 0.0, -1.5, 2.5, -3.5, 4.5] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 1], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "ort_empty_rank4_channel_axis_keepdims", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.empty_set_ReduceL2_13", |
| "notes": "Same empty-set identity behavior adapted to a rank-4 channel axis." |
| }, |
| "attrs": { "axes": [1], "keepdims": 1 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [2, 0, 3, 2], "data": { "kind": "values", "values": [] } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 3, 2], "tolerance": 0 } } |
| }, |
| { |
| "name": "rank4_axis1_channel_no_keepdims", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 4, 3, 2], |
| "data": { |
| "kind": "values", |
| "values": [1.0, -2.0, 3.0, -4.0, 5.0, -6.0, -1.0, 2.0, -3.0, 4.0, -5.0, 6.0, 0.5, -1.5, 2.5, -3.5, 4.5, -5.5, -0.5, 1.5, -2.5, 3.5, -4.5, 5.5, 6.0, -7.0, 8.0, -9.0, 10.0, -11.0, -6.0, 7.0, -8.0, 9.0, -10.0, 11.0, 1.25, -2.25, 3.25, -4.25, 5.25, -6.25, -1.25, 2.25, -3.25, 4.25, -5.25, 6.25] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 2], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "rank4_axis1_channel_vec4_no_keepdims", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [1, 3, 2, 2], |
| "data": { "kind": "values", "values": [3.0, 4.0, 0.0, 0.0, 0.0, 0.0, 5.0, 12.0, 4.0, 3.0, 0.0, 0.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 2], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "rank4_axis1_channel_vec4_keepdims_2x3x2x4", |
| "provenance": { |
| "notes": "Channel-vec4 reduction at keepdims=1 over two batches and two spatial vec4 lanes. ONNX ReduceL2 with keepdims=1 retains the reduced channel axis as size 1, so [2,3,2,4] reduces to [2,1,2,4]. Multiple batches and spatial vectors make both halves of the kernel's batch = outputVec / innerVecs and spatialVec = outputVec % innerVecs split nonzero." |
| }, |
| "attrs": { "axes": [1], "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 3, 2, 4], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 1.0 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 2, 4], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "rank4_axis_neg3_channel_vec4_no_keepdims_3x2x4x2", |
| "provenance": { |
| "notes": "Negative spelling of the channel axis: ONNX normalizes a negative reduction axis by adding the input rank, so axis=-3 on a rank-4 tensor is the same channel reduction as axis=1 and drops to [3,4,2] at keepdims=0. Three batches over 8 spatial elements (two vec4 lanes) keep the batch/spatial index split non-degenerate while the axes input contains a negative value." |
| }, |
| "attrs": { "axes": [-3], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 4, 2], |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 1.0 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 4, 2], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "rank1_axis0_keepdims", |
| "attrs": { "axes": [-1], "keepdims": 1 }, |
| "inputs": { |
| "x": { "dtype": "float32", "shape": [5], "data": { "kind": "values", "values": [-3.0, 4.0, 12.0, -5.0, 0.5] } } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [1], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "ort_axis2_rank3_no_keepdims", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_do_not_keepdims" |
| }, |
| "attrs": { "axes": [2], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 2], "tolerance": 0.00001 } } |
| }, |
| { |
| "name": "ort_axis2_rank3_keepdims", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_keepdims" |
| }, |
| "attrs": { "axes": [2], "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 2, 1], "tolerance": 0.00001 } } |
| }, |
| { |
| "name": "ort_axis0_rank1_scalar", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_do_not_keepdims_2" |
| }, |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [], "tolerance": 0.00001 } } |
| }, |
| { |
| "name": "ort_axis0_all_negative", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_float_multi_element_all_negative" |
| }, |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2], |
| "data": { "kind": "values", "values": [-1.0, -2.0, -3.0, -4.0, -5.0, -6.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2], "tolerance": 0.00001 } } |
| }, |
| { |
| "name": "ort_axis0_singleton_negative_no_keepdims", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_singleton_axis_negative_input" |
| }, |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 1], "data": { "kind": "values", "values": [-4.0] } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [1], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_axis0_singleton_negative_keepdims", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_float_keepdims_singleton_axis_negative_input" |
| }, |
| "attrs": { "axes": [0], "keepdims": 1 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 2], "data": { "kind": "values", "values": [-3.0, -7.0] } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "ort_rank0_negative_scalar", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_0DTensor_negative_input" |
| }, |
| "inputs": { "x": { "dtype": "float32", "shape": [], "data": { "kind": "values", "values": [-5.0] } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [], "tolerance": 0 } } |
| }, |
| { |
| "name": "onnx_backend_reduce_l2_do_not_keepdims_example", |
| "attrs": { "keepdims": 0, "axes": [2] }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 2] } }, |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_example", |
| "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." |
| } |
| }, |
| { |
| "name": "onnx_backend_reduce_l2_do_not_keepdims_random", |
| "attrs": { "keepdims": 0, "axes": [2] }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { |
| "kind": "values", |
| "values": [0.9762700796127319, 4.3037872314453125, 2.055267572402954, 0.8976636528968811, -1.5269039869308472, 2.917882204055786, -1.248255729675293, 7.835460186004639, 9.273255348205566, -2.331169605255127, 5.834500789642334, 0.577898383140564] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 2] } }, |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_random", |
| "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." |
| } |
| }, |
| { |
| "name": "onnx_backend_reduce_l2_empty_set", |
| "attrs": { "keepdims": 1, "axes": [1] }, |
| "inputs": { "x": { "dtype": "float32", "shape": [2, 0, 4], "data": { "kind": "values", "values": [] } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 4] } }, |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_l2_empty_set", |
| "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." |
| } |
| }, |
| { |
| "name": "onnx_backend_reduce_l2_keep_dims_example", |
| "attrs": { "keepdims": 1, "axes": [2] }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 2, 1] } }, |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_example", |
| "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." |
| } |
| }, |
| { |
| "name": "onnx_backend_reduce_l2_keep_dims_random", |
| "attrs": { "keepdims": 1, "axes": [2] }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { |
| "kind": "values", |
| "values": [0.9762700796127319, 4.3037872314453125, 2.055267572402954, 0.8976636528968811, -1.5269039869308472, 2.917882204055786, -1.248255729675293, 7.835460186004639, 9.273255348205566, -2.331169605255127, 5.834500789642334, 0.577898383140564] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 2, 1] } }, |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random", |
| "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." |
| } |
| }, |
| { |
| "name": "onnx_backend_reduce_l2_negative_axes_keep_dims_example", |
| "attrs": { "keepdims": 1, "axes": [-1] }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 2, 1] } }, |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example", |
| "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." |
| } |
| }, |
| { |
| "name": "onnx_backend_reduce_l2_negative_axes_keep_dims_random", |
| "attrs": { "keepdims": 1, "axes": [-1] }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { |
| "kind": "values", |
| "values": [0.9762700796127319, 4.3037872314453125, 2.055267572402954, 0.8976636528968811, -1.5269039869308472, 2.917882204055786, -1.248255729675293, 7.835460186004639, 9.273255348205566, -2.331169605255127, 5.834500789642334, 0.577898383140564] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 2, 1] } }, |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random", |
| "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." |
| } |
| }, |
| { |
| "name": "ort_default_axes_rank3_no_keepdims_scalar", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_default_axes_do_not_keep_dims", |
| "notes": "Default axes reduce all input dimensions to a rank-0 scalar when keepdims=0." |
| }, |
| "attrs": { "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [], "tolerance": 0.000001 } } |
| }, |
| { |
| "name": "onnx_backend_reduce_l2_default_axes_keepdims_example", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example" |
| }, |
| "attrs": { "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1] } } |
| }, |
| { |
| "name": "onnx_backend_reduce_l2_default_axes_keepdims_random", |
| "provenance": { |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random" |
| }, |
| "attrs": { "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { |
| "kind": "values", |
| "values": [0.9762700796127319, 4.3037872314453125, 2.055267572402954, 0.8976636528968811, -1.5269039869308472, 2.917882204055786, -1.248255729675293, 7.835460186004639, 9.273255348205566, -2.331169605255127, 5.834500789642334, 0.577898383140564] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1] } } |
| }, |
| { |
| "name": "subgroup_vec4_last_axis_2x256", |
| "attrs": { "axes": [-1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 256], |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2], "tolerance": 0.0002, "relTolerance": 0.0001 } } |
| }, |
| { |
| "name": "subgroup_scalar_last_axis_2x65", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 65], |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.11 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2], "tolerance": 0.0002, "relTolerance": 0.0001 } } |
| }, |
| { |
| "name": "ort_noop_empty_axes_2d_elementwise_abs", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_NoopWithEmptyAxes_2D_ElementwiseAbs" |
| }, |
| "attrs": { "noop_with_empty_axes": 1 }, |
| "inputs": { |
| "x": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "values", "values": [-3.0, 0.0, 4.0, -1.5] } } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 2], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_noop_empty_axes_scalar_abs", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_NoopWithEmptyAxes_Scalar" |
| }, |
| "attrs": { "noop_with_empty_axes": 1 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [], "data": { "kind": "values", "values": [-3.0] } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_noop_empty_axes_3d_elementwise_abs", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_NoopWithEmptyAxes_3D_ElementwiseAbs" |
| }, |
| "attrs": { "noop_with_empty_axes": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 1, 3], |
| "data": { "kind": "values", "values": [-3.0, 0.0, 4.0, 1.5, -2.5, -1.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 3], "tolerance": 0 } } |
| }, |
| { |
| "name": "ort_int32_singleton_axis_negative", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_int32_singleton_axis_negative_input" |
| }, |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "int32", "shape": [1, 1], "data": { "kind": "values", "values": [-4] } } }, |
| "outputs": { |
| "y": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [4] }, "tolerance": 0 } |
| } |
| }, |
| { |
| "name": "ort_int32_keepdims_singleton_axis_negative", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_int32_keepdims_singleton_axis_negative_input" |
| }, |
| "attrs": { "axes": [0], "keepdims": 1 }, |
| "inputs": { "x": { "dtype": "int32", "shape": [1, 2], "data": { "kind": "values", "values": [-3, -7] } } }, |
| "outputs": { |
| "y": { "dtype": "int32", "shape": [1, 2], "data": { "kind": "values", "values": [3, 7] }, "tolerance": 0 } |
| } |
| }, |
| { |
| "name": "ort_int32_multi_axis_no_keepdims", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_int32" |
| }, |
| "attrs": { "axes": [0, 2], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "int32", |
| "shape": [3, 2, 2], |
| "data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] } |
| } |
| }, |
| "outputs": { |
| "y": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [15, 20] }, "tolerance": 0 } |
| } |
| }, |
| { |
| "name": "ort_int32_abs_int_min_saturates_gpu_gap", |
| "skipGpu": { |
| "category": "todo", |
| "reason": "The current integer reduction route uses an i32 accumulator, so it cannot reproduce the fixture's widened intermediate arithmetic and final int32 saturation. A portable multiword accumulator can implement this behavior." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_int32_INT_MIN" |
| }, |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "int32", "shape": [1], "data": { "kind": "values", "values": [-2147483648] } } }, |
| "outputs": { |
| "y": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [2147483647] }, "tolerance": 0 } |
| } |
| }, |
| { |
| "name": "ort_int32_squaring_overflow_uses_wide_accumulator_gpu_gap", |
| "skipGpu": { |
| "category": "todo", |
| "reason": "The current integer reduction route uses an i32 accumulator, so it cannot reproduce the fixture's widened intermediate arithmetic and final int32 saturation. A portable multiword accumulator can implement this behavior." |
| }, |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2_int32_squaring_overflow" |
| }, |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [50000, 50000] } } }, |
| "outputs": { |
| "y": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [70710] }, "tolerance": 0 } |
| } |
| }, |
| { |
| "name": "ort_float_multi_axis_no_keepdims", |
| "provenance": { |
| "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", |
| "test": "ReductionOpTest.ReduceL2" |
| }, |
| "attrs": { "axes": [0, 2], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 2, 2], |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2], "tolerance": 0.00001, "relTolerance": 0.00001 } } |
| }, |
| { |
| "name": "rank3_lastaxis_cols1024_tree_nosubgroup", |
| "attrs": { "axes": [2], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 2, 1024], |
| "data": { |
| "kind": "cycle", |
| "values": [1.0, -2.0, 0.5, 3.25, -1.5, 2.0, -0.75, 4.0, -3.5, 1.25, 0.0, -2.25, 5.0, -4.0, 2.75, -1.0] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.00001 } } |
| }, |
| { |
| "name": "int32_lastaxis_serial_64x1024_exact", |
| "provenance": { |
| "notes": "Compact sibling for the int32 last-axis serial benchmark; keeps a 1024-wide axis1 reduction while using a [3,4,0,0] cycle whose L2 norm is exactly 80 per row." |
| }, |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "int32", "shape": [64, 1024], "data": { "kind": "cycle", "values": [3, 4, 0, 0] } } }, |
| "outputs": { |
| "y": { "dtype": "int32", "shape": [64], "data": { "kind": "constant", "value": 80 }, "tolerance": 0 } |
| } |
| }, |
| { |
| "name": "axis0_splitk_8192x32", |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [8192, 32], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [32], "tolerance": 0.001 } } |
| }, |
| { |
| "name": "axis0_splitk_8192x48_keepdims", |
| "attrs": { "axes": [0], "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [8192, 48], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 48], "tolerance": 0.001 } } |
| }, |
| { |
| "name": "rank3_axis0_no_keepdims", |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 3, 4], |
| "data": { |
| "kind": "values", |
| "values": [-8.0, -3.0, 2.0, 7.0, -5.0, 0.0, 5.0, -7.0, -2.0, 3.0, 8.0, -4.0, 1.0, 6.0, -6.0, -1.0, 4.0, -8.0, -3.0, 2.0, 7.0, -5.0, 0.0, 5.0] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 4], "tolerance": 0.00001, "relTolerance": 0.00001 } } |
| }, |
| { |
| "name": "rank4_axis2_middle_no_keepdims", |
| "attrs": { "axes": [2], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 2, 3, 2], |
| "data": { |
| "kind": "values", |
| "values": [-4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, -4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, -4.0, -3.0, -2.0, -1.0, 0.0, 1.0] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0.00001, "relTolerance": 0.00001 } } |
| }, |
| { |
| "name": "rank4_axis0_keepdims", |
| "attrs": { "axes": [0], "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 2, 2, 2], |
| "data": { |
| "kind": "values", |
| "values": [-5.0, 2.0, -2.0, 5.0, 1.0, -3.0, 4.0, 0.0, -4.0, 3.0, -1.0, -5.0, 2.0, -2.0, 5.0, 1.0] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 2, 2], "tolerance": 0.00001, "relTolerance": 0.00001 } } |
| }, |
| { |
| "name": "rank4_axis1_channel_keepdims", |
| "attrs": { "axes": [1], "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 4, 3, 2], |
| "data": { |
| "kind": "values", |
| "values": [-6.0, -3.0, 0.0, 3.0, 6.0, -4.0, -1.0, 2.0, 5.0, -5.0, -2.0, 1.0, 4.0, -6.0, -3.0, 0.0, 3.0, 6.0, -4.0, -1.0, 2.0, 5.0, -5.0, -2.0, 1.0, 4.0, -6.0, -3.0, 0.0, 3.0, 6.0, -4.0, -1.0, 2.0, 5.0, -5.0, -2.0, 1.0, 4.0, -6.0, -3.0, 0.0, 3.0, 6.0, -4.0, -1.0, 2.0, 5.0] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 3, 2], "tolerance": 0.00001, "relTolerance": 0.00001 } } |
| }, |
| { |
| "name": "rank4_multi_axis_12_keepdims", |
| "attrs": { "axes": [1, 2], "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 3, 2, 2], |
| "data": { |
| "kind": "values", |
| "values": [0.5, -1.0, 2.0, -0.25, 1.5, 0.75, -2.0, 1.0, 0.125, -0.5, 3.0, -1.5, 0.25, 2.5, -0.75, 1.25, -3.0, 0.5, 2.0, -1.0, 0.75, -0.25, 1.5, -2.5] |
| } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 1, 2], "tolerance": 0.0001 } } |
| }, |
| { |
| "name": "all_axes_flat_combine_sqrt_placement", |
| "attrs": { "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [1, 8192], |
| "data": { "kind": "fillFloat32", "sinStep": 0.003, "cosStep": 0.007, "scale": 2.0 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [], "tolerance": 0.005, "relTolerance": 0.0001 } } |
| }, |
| { |
| "name": "noop_empty_axes_negative_input_abs", |
| "attrs": { "noop_with_empty_axes": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 3], |
| "data": { "kind": "values", "values": [-3.0, 4.0, -5.0, 0.0, -1.0, 2.0] } |
| } |
| }, |
| "outputs": { |
| "y": { |
| "dtype": "float32", |
| "shape": [2, 3], |
| "data": { "kind": "values", "values": [3.0, 4.0, 5.0, 0.0, 1.0, 2.0] }, |
| "tolerance": 0 |
| } |
| } |
| }, |
| { |
| "name": "rank3_axis0_large_dispatch_fold", |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 128, 513], |
| "data": { "kind": "fillFloat32", "sinStep": 0.005, "cosStep": 0.003, "scale": 1.0 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [128, 513], "relTolerance": 0.0001 } } |
| }, |
| { |
| "name": "axis0_narrow_f32_8192x3_splitk_guard_lock", |
| "provenance": { |
| "notes": "Compact lock below the historical 16-column split-K guard. Constant ones exercise square accumulation and sqrt finalization." |
| }, |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float32", "shape": [8192, 3], "data": { "kind": "constant", "value": 1.0 } } }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0.001, "relTolerance": 0.0001 } } |
| }, |
| { |
| "name": "contiguous_suffix_axes12_parallel", |
| "provenance": { |
| "notes": "Contiguous axes {1,2} exercise the shared cooperative suffix reduction instead of one serial lane per output." |
| }, |
| "attrs": { "axes": [1, 2], "keepdims": 1 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [3, 16, 16], |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 1, 1], "tolerance": 0.00001 } } |
| }, |
| { |
| "name": "axis_split_rank3_axis1_2x8192x4", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 8192, 4], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 4], "tolerance": 0.001 } } |
| }, |
| { |
| "name": "f16_axis_split_tiled_narrow_2x8192x4", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [2, 8192, 4], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 4], "tolerance": 0.05, "relTolerance": 0.01 } } |
| }, |
| { |
| "name": "axis_split_rank3_axis1_wide_2x8192x32", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float32", |
| "shape": [2, 8192, 32], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 32], "tolerance": 0.001 } } |
| }, |
| { |
| "name": "f16_axis_split_wide_2x8192x32", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [2, 8192, 32], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 32], "tolerance": 0.05, "relTolerance": 0.01 } } |
| }, |
| { |
| "name": "f16_rank3_axis1_serial", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [2, 8192, 4], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 4], "tolerance": 0.05 } } |
| }, |
| { |
| "name": "f16_last_axis_serial_fallback", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [2, 65], |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.11 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [2], "tolerance": 0.05, "relTolerance": 0.0001 } } |
| }, |
| { |
| "name": "f16_all_axes", |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { "x": { "dtype": "float16", "shape": [8192], "data": { "kind": "constant", "value": 1.0 } } }, |
| "outputs": { "y": { "dtype": "float16", "shape": [], "tolerance": 0.05 } } |
| }, |
| { |
| "name": "f16_axis0_splitk_8192x8", |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [8192, 8], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [8], "tolerance": 0.05, "relTolerance": 0.002 } } |
| }, |
| { |
| "name": "f16_last_axis_vec4_8x1024", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [8, 1024], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [8], "tolerance": 0.05, "relTolerance": 0.002 } } |
| }, |
| { |
| "name": "f16_last_axis_scalar_8x1023", |
| "attrs": { "axes": [1], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [8, 1023], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [8], "tolerance": 0.05, "relTolerance": 0.002 } } |
| }, |
| { |
| "name": "f16_all_axes_flat_65543", |
| "attrs": { "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [65543], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [], "tolerance": 0.05, "relTolerance": 0.002 } } |
| }, |
| { |
| "name": "f16_suffix_vec4_4x8x128", |
| "attrs": { "axes": [1, 2], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [4, 8, 128], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [4], "tolerance": 0.05, "relTolerance": 0.002 } } |
| }, |
| { |
| "name": "f16_suffix_scalar_4x7x37", |
| "attrs": { "axes": [1, 2], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [4, 7, 37], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [4], "tolerance": 0.05, "relTolerance": 0.002 } } |
| }, |
| { |
| "name": "f16_axis0_tilecols_4096x64", |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "float16", |
| "shape": [4096, 64], |
| "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } |
| } |
| }, |
| "outputs": { "y": { "dtype": "float16", "shape": [64], "tolerance": 0.05, "relTolerance": 0.002 } } |
| }, |
| { |
| "name": "int32_axis0_tiled_64x32", |
| "attrs": { "axes": [0], "keepdims": 0 }, |
| "inputs": { |
| "x": { |
| "dtype": "int32", |
| "shape": [64, 32], |
| "data": { "kind": "cycle", "values": [4099, -3, 5, 4093, -7, 11, 2] } |
| } |
| }, |
| "outputs": { "y": { "dtype": "int32", "shape": [32], "tolerance": 0 } } |
| } |
| ] |
| } |
|
|