Download build/webgpu/test.json from webgpu-kernels/ai.onnx.CumProd: direct link, hf CLI and curl.
- Browser
- Download file 40 kB
-
https://huggingface.co/kernels/webgpu-kernels/ai.onnx.CumProd/resolve/v1/build/webgpu/test.json
- Command line
-
hf download hf://webgpu-kernels/ai.onnx.CumProd@v1/build/webgpu/test.json
-
curl -L -o test.json https://huggingface.co/kernels/webgpu-kernels/ai.onnx.CumProd/resolve/v1/build/webgpu/test.json
40 kB
| { | |
| "fixtureArrays": { | |
| "axis2_3d_f32_input_x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24] | |
| }, | |
| "cases": [ | |
| { | |
| "name": "dispatch_cliff_thread_row_scan_f32", | |
| "args": { "axis": 1 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [16776961, 1], "data": { "kind": "constant", "value": 1.0 } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [16776961, 1], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "many_short_rows_axis1_portable_tiled_f32", | |
| "provenance": { | |
| "notes": "Many independent 64-element rows with nontrivial signed products check inclusive CumProd across device tiers." | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [4096, 64], "data": { "kind": "cycle", "values": [1.01, 0.99, -1.0, 0.5] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [4096, 64], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "tiled_short_rows_reverse_int32", | |
| "provenance": { | |
| "notes": "Reverse cumulative product on the short-row tiled path uses an int32 accumulator and the `1i` identity. A seven-value cycle over six-wide rows phase-shifts every row, exposing reverse indexing errors while keeping all partial products within int32." | |
| }, | |
| "attrs": { "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "int32", "shape": [4096, 6], "data": { "kind": "cycle", "values": [1, -1, 2, 3, -2, 1, 5] } } | |
| }, | |
| "outputs": { "y": { "dtype": "int32", "shape": [4096, 6], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "tiled_short_rows_exclusive_uint32", | |
| "provenance": { | |
| "notes": "Exclusive cumulative product over six-element rows uses an unsigned accumulator and the uint32 identity value 1. A seven-value cycle phase-shifts successive rows, and all products remain exactly representable without uint32 wraparound." | |
| }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "uint32", "shape": [4096, 6], "data": { "kind": "cycle", "values": [1, 2, 3, 1, 4, 1, 5] } } | |
| }, | |
| "outputs": { "y": { "dtype": "uint32", "shape": [4096, 6], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "tiled_short_rows_reverse_exclusive_f16", | |
| "provenance": { | |
| "notes": "float16 on the short-row tiled path combines reverse and exclusive scanning. Signed powers of two keep every six-element product within 2^-4 .. 2^3, making both the f32 accumulator and float16 store exact; a seven-value cycle phase-shifts each row." | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [4096, 6], | |
| "data": { "kind": "cycle", "values": [1.0, 0.5, 2.0, -1.0, 0.25, 4.0, -0.5] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [4096, 6], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "axis0_1d_f32", | |
| "provenance": { "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", "test": "CumProdTest._1DTest" }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [5], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [5] } } | |
| }, | |
| { | |
| "name": "negative_axis_1d_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestNegAxis" | |
| }, | |
| "args": { "axis": -1 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [5], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [5] } } | |
| }, | |
| { | |
| "name": "exclusive_1d_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestExclusive" | |
| }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [5], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [5] } } | |
| }, | |
| { | |
| "name": "reverse_1d_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestReverse" | |
| }, | |
| "attrs": { "reverse": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [5], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [5] } } | |
| }, | |
| { | |
| "name": "reverse_exclusive_1d_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestReverseExclusive" | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [5], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [5] } } | |
| }, | |
| { | |
| "name": "axis0_2d_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._2DTestAxis0" | |
| }, | |
| "args": { "axis": 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, 3] } } | |
| }, | |
| { | |
| "name": "axis1_2d_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._2DTestAxis1" | |
| }, | |
| "args": { "axis": 1 }, | |
| "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, 3] } } | |
| }, | |
| { | |
| "name": "axis2_3d_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis2" | |
| }, | |
| "args": { "axis": 2 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/axis2_3d_f32_input_x" } } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4] } } | |
| }, | |
| { | |
| "name": "axis1_3d_reverse_exclusive_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis1ReverseExclusive" | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/axis2_3d_f32_input_x" } } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4] } } | |
| }, | |
| { | |
| "name": "axis1_3d_reverse_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis1Reverse" | |
| }, | |
| "attrs": { "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/axis2_3d_f32_input_x" } } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "exclusive_single_axis_dim_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestExclusiveAxisHasSingleValue" | |
| }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 2], "data": { "kind": "values", "values": [3.0, 4.0] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2] } } | |
| }, | |
| { | |
| "name": "ort_exclusive_single_axis_dim_reverse_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestExclusiveAxisHasSingleValue" | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 2], "data": { "kind": "values", "values": [3.0, 4.0] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "ort_axis2_3d_reverse_exclusive_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis2ReverseExclusive" | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 2 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/axis2_3d_f32_input_x" } } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "int32_1d", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestInt32" | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } } }, | |
| "outputs": { "y": { "dtype": "int32", "shape": [5] } } | |
| }, | |
| { | |
| "name": "uint32_1d", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestUint32" | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } } }, | |
| "outputs": { "y": { "dtype": "uint32", "shape": [5] } } | |
| }, | |
| { | |
| "name": "f16_axis1", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._2DTestAxis1" | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 4], | |
| "data": { "kind": "values", "values": [1.0, 0.5, -2.0, 3.0, -1.0, -2.0, 0.25, 4.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 4] } }, | |
| "tolerance": 0.002 | |
| }, | |
| { | |
| "name": "ort_spec_example_default", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._OnnxSpecExample" | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_spec_example_exclusive", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._OnnxSpecExampleExclusive" | |
| }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_spec_example_reverse", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._OnnxSpecExampleReverse" | |
| }, | |
| "attrs": { "reverse": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_spec_example_reverse_exclusive", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._OnnxSpecExampleReverseExclusive" | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_exclusive_axis_dim_one_forward", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestExclusiveAxisHasSingleValue" | |
| }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 2], "data": { "kind": "values", "values": [3.0, 4.0] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_exclusive_axis_dim_one_reverse", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestExclusiveAxisHasSingleValue" | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 2], "data": { "kind": "values", "values": [3.0, 4.0] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_1d_int32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestInt32" | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } } }, | |
| "outputs": { "y": { "dtype": "int32", "shape": [5], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "ort_1d_uint32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestUint32" | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "uint32", "shape": [5], "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } } }, | |
| "outputs": { "y": { "dtype": "uint32", "shape": [5], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "ort_3d_axis0_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis0" | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 3, 4], "data": { "kind": "linspace", "start": 1.0, "end": 24.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_3d_axis1_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis1" | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 3, 4], "data": { "kind": "linspace", "start": 1.0, "end": 24.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_3d_axis0_exclusive_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis0Exclusive" | |
| }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 3, 4], "data": { "kind": "linspace", "start": 1.0, "end": 24.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_3d_axis1_exclusive_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis1Exclusive" | |
| }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 3, 4], "data": { "kind": "linspace", "start": 1.0, "end": 24.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_3d_axis0_reverse_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis0Reverse" | |
| }, | |
| "attrs": { "reverse": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 3, 4], "data": { "kind": "linspace", "start": 1.0, "end": 24.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_3d_axis2_reverse_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis2Reverse" | |
| }, | |
| "attrs": { "reverse": 1 }, | |
| "args": { "axis": 2 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 3, 4], "data": { "kind": "linspace", "start": 1.0, "end": 24.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_3d_axis0_reverse_exclusive_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis0ReverseExclusive" | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 3, 4], "data": { "kind": "linspace", "start": 1.0, "end": 24.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_3d_axis1_reverse_exclusive_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis1ReverseExclusive" | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 3, 4], "data": { "kind": "linspace", "start": 1.0, "end": 24.0 } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "onnx_backend_cumprod_1d_f32_projection", | |
| "provenance": { | |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_cumprod_1d", | |
| "notes": "The official ONNX backend fixture uses float64; this case preserves its values in supported float32 storage." | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [5], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [5], "tolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "onnx_backend_cumprod_1d_exclusive_f32_projection", | |
| "provenance": { | |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_cumprod_1d_exclusive", | |
| "notes": "The official ONNX backend fixture uses float64; this case preserves its values in supported float32 storage." | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [5], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [5], "tolerance": 0.00001 } }, | |
| "attrs": { "exclusive": 1 } | |
| }, | |
| { | |
| "name": "onnx_backend_cumprod_1d_int32_exclusive", | |
| "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_cumprod_1d_int32_exclusive" }, | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "int32", "shape": [5], "data": { "kind": "values", "values": [1, 2, 3, 4, 5] } } }, | |
| "outputs": { "y": { "dtype": "int32", "shape": [5], "tolerance": 0 } }, | |
| "attrs": { "exclusive": 1 } | |
| }, | |
| { | |
| "name": "onnx_backend_cumprod_1d_reverse_f32_projection", | |
| "provenance": { | |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_cumprod_1d_reverse", | |
| "notes": "The official ONNX backend fixture uses float64; this case preserves its values in supported float32 storage." | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [5], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [5], "tolerance": 0.00001 } }, | |
| "attrs": { "reverse": 1 } | |
| }, | |
| { | |
| "name": "onnx_backend_cumprod_1d_reverse_exclusive_f32_projection", | |
| "provenance": { | |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_cumprod_1d_reverse_exclusive", | |
| "notes": "The official ONNX backend fixture uses float64; this case preserves its values in supported float32 storage." | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [5], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [5], "tolerance": 0.00001 } }, | |
| "attrs": { "exclusive": 1, "reverse": 1 } | |
| }, | |
| { | |
| "name": "onnx_backend_cumprod_2d_axis_0_f32_projection", | |
| "provenance": { | |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_cumprod_2d_axis_0", | |
| "notes": "The official ONNX backend fixture uses float64; this case preserves its values in supported float32 storage." | |
| }, | |
| "args": { "axis": 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, 3], "tolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "onnx_backend_cumprod_2d_axis_1_f32_projection", | |
| "provenance": { | |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_cumprod_2d_axis_1", | |
| "notes": "The official ONNX backend fixture uses float64; this case preserves its values in supported float32 storage." | |
| }, | |
| "args": { "axis": 1 }, | |
| "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, 3], "tolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "onnx_backend_cumprod_2d_int32", | |
| "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_cumprod_2d_int32" }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "int32", "shape": [2, 3], "data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6] } } | |
| }, | |
| "outputs": { "y": { "dtype": "int32", "shape": [2, 3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "onnx_backend_cumprod_2d_negative_axis_f32_projection", | |
| "provenance": { | |
| "source": "cmake/external/onnx/onnx/backend/test/data/node/test_cumprod_2d_negative_axis", | |
| "notes": "The official ONNX backend fixture uses float64; this case preserves its values in supported float32 storage." | |
| }, | |
| "args": { "axis": -1 }, | |
| "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, 3], "tolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "ort_2d_axis0_exclusive_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._2DTestExclusiveAxis0" | |
| }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 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, 3], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_2d_axis1_exclusive_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._2DTestExclusiveAxis1" | |
| }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 1 }, | |
| "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, 3], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_3d_axis2_exclusive_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "test": "CumProdTest._3DTestAxis2Exclusive" | |
| }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 2 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/axis2_3d_f32_input_x" } } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "zero_propagation_axis1_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "notes": "Additional CumProd edge: zeros should only zero subsequent inclusive products along the selected axis." | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 4], | |
| "data": { "kind": "values", "values": [2.0, 0.0, 3.0, 4.0, -1.0, 2.0, 0.0, 5.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 4], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "zero_reverse_exclusive_axis1_f32", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/math/cumprod_test.cc", | |
| "notes": "Additional reverse/exclusive zero-propagation case not covered by ORT's positive-only examples." | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 4], | |
| "data": { "kind": "values", "values": [2.0, 0.0, 3.0, 4.0, -1.0, 2.0, 0.0, 5.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 4], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "wg_scan_axis1_pow2_f32", | |
| "provenance": { | |
| "notes": "Power-of-two values keep every partial product exact under any association; exercises the workgroup row-scan variant." | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [8, 64], "data": { "kind": "cycle", "values": [1.0, 2.0, 1.0, 0.5] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [8, 64], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "wg_scan_zero_propagation_f32", | |
| "provenance": { | |
| "notes": "Zeros mid-row must zero all later (inclusive) products within the row but not cross row boundaries." | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 80], | |
| "data": { "kind": "cycle", "values": [2.0, 1.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 80], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "wg_scan_zero_reverse_f32", | |
| "provenance": { | |
| "notes": "Reverse zero-propagation through the workgroup row-scan: zeros propagate toward lower indices." | |
| }, | |
| "attrs": { "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 80], | |
| "data": { "kind": "cycle", "values": [2.0, 1.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 80], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "wg_scan_exclusive_pow2_f32", | |
| "provenance": { "notes": "Exclusive workgroup row-scan; power-of-two data stays exact." }, | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [4, 64], "data": { "kind": "cycle", "values": [0.5, 2.0] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [4, 64], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "wg_scan_multichunk_pow2_f32", | |
| "provenance": { | |
| "notes": "Axis length 600 (last axis) spans three 256-element chunks, two full and one of 88, requiring the running product to carry across chunk boundaries. Exact powers of two (2.0, 0.5) keep the cumulative product exact in float32." | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [2, 600], "data": { "kind": "cycle", "values": [2.0, 0.5] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 600], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "wg_scan_axis1_u32_cycle", | |
| "provenance": { "notes": "uint32 workgroup row-scan; products stay within 2^16 so no wrap, exact." }, | |
| "args": { "axis": 1 }, | |
| "inputs": { "x": { "dtype": "uint32", "shape": [2, 64], "data": { "kind": "cycle", "values": [1, 1, 1, 2] } } }, | |
| "outputs": { "y": { "dtype": "uint32", "shape": [2, 64], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "wg_scan_axis1_int32_cycle_vec4", | |
| "provenance": { | |
| "notes": "An int32 workgroup row scan over a vec4-aligned axis checks the signed multiplicative identity. A five-value cycle over 64 columns leaves each row at a different phase, and products stay below 2^13." | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { "x": { "dtype": "int32", "shape": [3, 64], "data": { "kind": "cycle", "values": [1, 2, -1, 1, 1] } } }, | |
| "outputs": { "y": { "dtype": "int32", "shape": [3, 64], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "wg_scan_reverse_exclusive_int32", | |
| "provenance": { | |
| "notes": "Reverse+exclusive int32 workgroup row-scan; products bounded by 2^12, sign flips via -1." | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { "x": { "dtype": "int32", "shape": [2, 48], "data": { "kind": "cycle", "values": [1, 2, -1, 1] } } }, | |
| "outputs": { "y": { "dtype": "int32", "shape": [2, 48], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "wg_scan_axis1_f16_pow2", | |
| "provenance": { "notes": "f16 workgroup row-scan; power-of-two products within f16 range stay exact." }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float16", "shape": [2, 40], "data": { "kind": "cycle", "values": [1.0, 2.0, 1.0, 0.5] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 40], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "thread_rows_axis0_pow2_f32", | |
| "provenance": { | |
| "notes": "Wide-inner axis-0 cumprod exercising the thread-per-row serial variant (bit-identical accumulation order to the fallback)." | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [8, 2048], | |
| "data": { "kind": "cycle", "values": [1.0, 2.0, 1.0, 0.5, 1.0, 1.0, 2.0, 1.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [8, 2048], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "thread_rows_axis1_3d_reverse_exclusive_f32", | |
| "provenance": { | |
| "notes": "A three-dimensional middle-axis scan exercises reverse and exclusive handling in the thread-per-row CumProd path." | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [4, 16, 512], "data": { "kind": "cycle", "values": [1.0, 0.5, 2.0, 1.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [4, 16, 512], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "f32_normal_inputs_subnormal_cumulative_product_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/math/cumprod_test.cc", | |
| "test": "CumProdTest._2DTestAxis1", | |
| "notes": "Normal float32 inputs can produce valid subnormal cumulative products; flushing the intermediate product zeroes the rest of the row." | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 3], | |
| "data": { "kind": "values", "values": [1e-20, 1e-20, 2.0, -1e-20, 1e-20, 2.0] } | |
| } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [2, 3], | |
| "tolerance": 0, | |
| "data": { "kind": "values", "values": [1e-20, 1e-40, 2e-40, -1e-20, -1e-40, -2e-40] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "f32_normal_inputs_subnormal_reverse_exclusive_product_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/math/cumprod_test.cc", | |
| "test": "CumProdTest._1DTestReverseExclusive", | |
| "notes": "Reverse-exclusive CumProd should also preserve subnormal cumulative products formed from normal inputs." | |
| }, | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [4], "data": { "kind": "values", "values": [2.0, 1e-20, 1e-20, 1.0] } } | |
| }, | |
| "outputs": { | |
| "y": { | |
| "dtype": "float32", | |
| "shape": [4], | |
| "tolerance": 0, | |
| "data": { "kind": "values", "values": [1e-40, 1e-20, 1.0, 1.0] } | |
| } | |
| } | |
| }, | |
| { | |
| "name": "empty_input_zero_dim", | |
| "args": { "axis": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [0], "data": { "kind": "values", "values": [] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [0], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "clean_f16_last_axis_dim48_wg_scan", | |
| "provenance": { | |
| "notes": "Float16 innermost-axis cumulative product over 48 values cycling through 1, 0.5, and 2; the running product stays at 1 or 0.5, so every output is exact in float16." | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [4, 48], | |
| "data": { "kind": "cycle", "values": [1.0, 0.5, 2.0, 1.0, 1.0, 0.5, 2.0, 1.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [4, 48], "tolerance": 0.01 } } | |
| }, | |
| { | |
| "name": "clean_f32_last_axis_nonmult4_dim50_scalar", | |
| "provenance": { "notes": "A 50-element innermost axis checks a partial four-lane tail in inclusive CumProd." }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [8, 50], | |
| "data": { "kind": "cycle", "values": [1.0, 2.0, 0.5, 1.0, 1.0, 0.5, 2.0, 1.0, 0.5, 2.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [8, 50], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "clean_rank4_middle_axis_reverse_f32", | |
| "provenance": { | |
| "notes": "A rank-4 reverse cumulative product over axis 1, with inner size 32 (the product of the two trailing dimensions), decomposes indices into outer, axis, and inner components. Powers-of-two values (1, 2, 0.5) give an exact expected result in float32." | |
| }, | |
| "attrs": { "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 3, 8, 4], | |
| "data": { "kind": "cycle", "values": [1.0, 2.0, 0.5, 1.0, 1.0, 0.5, 2.0, 1.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 8, 4], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "clean_f16_axis0_thread_row_scan", | |
| "provenance": { | |
| "notes": "A float16 CumProd over axis 0 with inner=32 exercises the strided thread-row scan, including float32 accumulation and narrowing on store." | |
| }, | |
| "args": { "axis": 0 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [6, 32], | |
| "data": { "kind": "cycle", "values": [1.0, 0.5, 2.0, 1.0, 1.0, 2.0, 0.5, 1.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [6, 32], "tolerance": 0.01 } } | |
| }, | |
| { | |
| "name": "empty_scan_axis_zero_dim", | |
| "args": { "axis": 1 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [4, 0, 3], "data": { "kind": "values", "values": [] } } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [4, 0, 3], "tolerance": 0 } } | |
| }, | |
| { | |
| "name": "exclusive_nonmult4_dim_large_wg_row_scan", | |
| "attrs": { "exclusive": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [4, 4098], | |
| "data": { "kind": "cycle", "values": [1.0, 2.0, 0.5, 1.0, 1.0, 0.5, 2.0, 1.0, 0.5, 2.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [4, 4098], "tolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "reverse_exclusive_nonmult4_dim_wg_row_scan", | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [4, 4098], | |
| "data": { "kind": "cycle", "values": [1.0, 2.0, 0.5, 1.0, 1.0, 0.5, 2.0, 1.0, 0.5, 2.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [4, 4098], "tolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "alignment_mismatch_dim4094_axis1_scalar", | |
| "provenance": { | |
| "notes": "A 4,094-element row prevents vec4-aligned tails while retaining the large-row workgroup scan path." | |
| }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [2, 4094], "data": { "kind": "cycle", "values": [1.0, 1.001, 0.999, 1.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 4094], "tolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "thread_row_scan_f16_inner_nonunit_exclusive_reverse", | |
| "attrs": { "exclusive": 1, "reverse": 1 }, | |
| "args": { "axis": 1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [3, 8, 4], | |
| "data": { "kind": "cycle", "values": [1.0, 0.5, 2.0, 1.0, 1.0, 2.0, 0.5, 1.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [3, 8, 4], "tolerance": 0.01 } } | |
| }, | |
| { | |
| "name": "rank7_last_axis", | |
| "args": { "axis": -1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 1, 2, 1, 2, 1, 3], | |
| "data": { "kind": "cycle", "values": [1.0, 0.5, 1.5, 0.75] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 2, 1, 2, 1, 3], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "rank8_last_axis", | |
| "args": { "axis": -1 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 1, 2, 1, 2, 1, 2, 3], | |
| "data": { "kind": "cycle", "values": [1.0, -0.5, 2.0, 0.25] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 2, 1, 2, 1, 2, 3], "tolerance": 0.000001 } } | |
| } | |
| ] | |
| } | |