Xenova's picture
Xenova HF Staff
sync 6fdf6301e2bb
1986f90 verified
Raw History Blame
53.2 kB
{
"fixtureArrays": {
"ort_seed_123_input_x": [1.0856307, 0.99734545, 0.2829785, 1.5062947, 0.5786002, 1.6514366, 2.4266791, 0.42891264, 1.2659363, 0.8667404, 0.6788862, 0.09470897, 1.4913896, 0.638902, 0.44398195, 0.43435127, 2.20593, 2.1867862, 1.004054, 0.3861864, 0.7373686, 1.4907321, 0.9358339, 1.175829, 1.2538806, 0.6377515, 0.9071052, 1.4286807, 0.14006872, 0.8617549, 0.25561938, 2.798589, 1.7715331, 0.69987726, 0.92746246, 0.17363568, 0.002845916, 0.6882227, 0.87953633, 0.28362733, 0.8053665, 1.7276695, 0.3908998, 0.57380587, 0.33858904, 0.011830495, 2.3923652, 0.41291216, 0.978736, 2.2381434, 1.2940853, 1.0387882, 1.7437122, 0.79806274, 0.02968323, 1.0693159, 0.8907064, 1.7548862, 1.4956441, 1.0693927],
"onnx_backend_softmax_input_x": [1.764052391052246, 0.40015721321105957, 0.978738009929657, 2.2408931255340576, 1.8675580024719238, 0.9772778749465942, 0.9500884413719177, 0.15135720372200012, 0.10321885347366333, 0.4105985164642334, 0.14404356479644775, 1.4542734622955322, 0.7610377073287964, 0.12167501449584961, 0.44386324286460876, 0.3336743414402008, 1.4940791130065918, 0.2051582634449005, 0.3130677044391632, 0.8540957570075989, 2.5529897212982178, 0.653618574142456, 0.8644362092018127, 0.7421650290489197, 2.269754648208618, 1.4543657302856445, 0.04575851559638977, 0.18718385696411133, 1.5327792167663574, 1.4693588018417358, 0.154947429895401, 0.37816253304481506, 0.8877857327461243, 1.980796456336975, 0.34791216254234314, 0.15634897351264954, 1.2302906513214111, 1.202379822731018, 0.38732680678367615, 0.302302747964859, 1.0485529899597168, 1.420017957687378, 1.7062702178955078, 1.950775384902954, 0.5096521973609924, 0.4380742907524109, 1.2527953386306763, 0.7774903774261475, 1.6138978004455566, 0.21274028718471527, 0.8954665660858154, 0.38690251111984253, 0.5108051300048828, 1.18063223361969, 0.02818222902715206, 0.4283318817615509, 0.06651721894741058, 0.30247190594673157, 0.6343221068382263, 0.3627411723136902]
},
"cases": [
{
"name": "dispatch_cliff_online_2dfold_65540x40",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [65540, 40],
"data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.007, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [65540, 40], "tolerance": 0.0001, "relTolerance": 0.0001 } }
},
{
"name": "wide_rows_257x65535",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [257, 65535],
"data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.007, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [257, 65535], "tolerance": 1e-8, "relTolerance": 0.0001 } },
"provenance": {
"notes": "A 257-row softmax over 65,535 columns; the tolerance, scaled to the roughly 1/65,535 outputs, exposes a dropped column or an incorrectly rescaled denominator."
}
},
{
"name": "axis1_3x5",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 5],
"data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.17 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 5], "tolerance": 0.000001 } }
},
{
"name": "ort_simple_axis1",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.Simple"
},
"attrs": { "axis": 1 },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": [-1.0, 0.0, 1.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 3], "tolerance": 0.000001 } }
},
{
"name": "ort_large_number_axis1",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.LargeNumber"
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 4],
"data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 10000.0, 10001.0, 10002.0, 10003.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 4], "tolerance": 0.000001 } }
},
{
"name": "f32_large_gap_subnormal_tail_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/softmax_test.cc",
"test": "SoftmaxOperator.LargeNumber",
"notes": "An 87.5-point logit gap leaves a valid positive subnormal probability tail in ONNX Runtime's CPU provider; stable softmax should not flush it to zero."
},
"attrs": { "axis": 1 },
"inputs": { "x": { "dtype": "float32", "shape": [1, 2], "data": { "kind": "values", "values": [0.0, -87.5] } } },
"outputs": {
"y": {
"dtype": "float32",
"shape": [1, 2],
"tolerance": 2e-45,
"data": { "kind": "values", "values": [1.0, 9.982351397596697e-39] }
}
}
},
{
"name": "max_negative_padding_regression",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 5],
"data": {
"kind": "values",
"values": [-3.4028234663852886e+38, -3.4028234663852886e+38, -3.4028234663852886e+38, -3.4028234663852886e+38, -3.4028234663852886e+38, -1000.0, -1001.0, -1002.0, -1003.0, -1004.0]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 5], "tolerance": 0.000001 } }
},
{
"name": "large_positive_stability",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 4],
"data": { "kind": "values", "values": [1000.0, 1001.0, 999.0, -1000.0, 80.0, 80.0, 79.0, 78.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 4], "tolerance": 0.000001 } }
},
{
"name": "all_negative_infinity_returns_nan",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.webgpu_nan"
},
"attrs": { "axis": 1 },
"inputs": { "x": { "dtype": "float32", "shape": [2, 4], "data": { "kind": "negativeInfinity" } } },
"outputs": {
"y": {
"dtype": "float32",
"shape": [2, 4],
"tolerance": 0,
"allowNaN": true,
"data": { "kind": "values", "values": ["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"] }
}
}
},
{
"name": "f16_all_negative_infinity_returns_nan",
"attrs": { "axis": 1 },
"inputs": { "x": { "dtype": "float16", "shape": [1, 4], "data": { "kind": "negativeInfinity" } } },
"outputs": {
"y": {
"dtype": "float16",
"shape": [1, 4],
"tolerance": 0,
"allowNaN": true,
"data": { "kind": "values", "values": ["NaN", "NaN", "NaN", "NaN"] }
}
}
},
{
"name": "positive_infinity_rows_return_nan",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 4],
"data": { "kind": "values", "values": ["Infinity", 1.0, 2.0, -3.0, 4.0, 1.0, 5.0, 2.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 4], "tolerance": 0.000001, "allowNaN": true } }
},
{
"name": "singleton_axis_mixed_finite_nonfinite",
"attrs": { "axis": 0 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 4],
"data": { "kind": "values", "values": [0.25, "Infinity", "-Infinity", "NaN"] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 4], "tolerance": 0, "allowNaN": true } }
},
{
"name": "axis1_2x64_cross_subgroup",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 64],
"data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.07, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 64], "tolerance": 0.000001 } }
},
{
"name": "longrow_split_axis1_1x65536",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 65536],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.031, "scale": 3.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 65536], "tolerance": 0.00001, "relTolerance": 0.00001 } }
},
{
"name": "longrow_split_all_negative_infinity",
"attrs": { "axis": 1 },
"inputs": { "x": { "dtype": "float32", "shape": [1, 65536], "data": { "kind": "negativeInfinity" } } },
"outputs": { "y": { "dtype": "float32", "shape": [1, 65536], "tolerance": 0, "allowNaN": true } }
},
{
"name": "ort_dim_with_zero_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.DimWithZero",
"notes": "Shape [1,0] has an empty reduced axis, so Softmax produces an empty output without reading or writing elements."
},
"attrs": { "axis": 0 },
"inputs": { "x": { "dtype": "float32", "shape": [1, 0], "data": { "kind": "values", "values": [] } } },
"outputs": { "y": { "dtype": "float32", "shape": [1, 0], "tolerance": 0.000001 } }
},
{
"name": "empty_last_axis_dim_zero",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.DimWithZero",
"notes": "A zero-length last axis produces an empty output, and dispatch setup must not divide by the reduced extent."
},
"attrs": { "axis": -1 },
"inputs": { "x": { "dtype": "float32", "shape": [1, 0], "data": { "kind": "values", "values": [] } } },
"outputs": { "y": { "dtype": "float32", "shape": [1, 0], "tolerance": 0 } }
},
{
"name": "empty_axis0_dim_zero",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.DimWithZero",
"notes": "A zero-length leading reduction axis produces an empty output without dividing by the reduced extent."
},
"attrs": { "axis": 0 },
"inputs": { "x": { "dtype": "float32", "shape": [0, 1], "data": { "kind": "values", "values": [] } } },
"outputs": { "y": { "dtype": "float32", "shape": [0, 1], "tolerance": 0 } }
},
{
"name": "axis_minus_one_rank3",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 3, 4],
"data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.21 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } }
},
{
"name": "stable_3pass_float32_min_uniform_regression",
"attrs": { "axis": 1 },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 64], "data": { "kind": "constant", "value": -3.4028234663852886e+38 } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 64], "tolerance": 0.000001 } }
},
{
"name": "axis0_non_last_rank2",
"attrs": { "axis": 0 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 2.0, 1.0, 4.0, 3.0, 3.0, 4.0, 1.0, 2.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4], "tolerance": 0.000001 } }
},
{
"name": "rank6_last_axis",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 2, 1, 2, 1, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, -1.0, 0.0, 1.0, 4.0, 4.0, 5.0, -2.0, -3.0, -4.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 2, 1, 2, 1, 3], "tolerance": 0.000001 } }
},
{
"name": "rank3_axis1_middle_strided",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 3, 4],
"data": {
"kind": "values",
"values": [1.0, 2.0, 3.0, 4.0, 2.0, 3.0, 4.0, 5.0, 3.0, 4.0, 5.0, 6.0, -1.0, 0.0, 1.0, 2.0, 0.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 4.0]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } }
},
{
"name": "ort_rank3_axis0_seed123",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.ThreeAndFourDimsAxis0",
"notes": "Uses a seeded rank-3 input to validate opset-13 axis-0 semantics."
},
"attrs": { "axis": 0 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_seed_123_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 5], "tolerance": 0.000001 } }
},
{
"name": "ort_rank4_axis0_seed123",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.ThreeAndFourDimsAxis0",
"notes": "Uses a seeded rank-4 input to validate opset-13 axis-0 semantics."
},
"attrs": { "axis": 0 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_seed_123_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 3, 4, 5], "tolerance": 0.000001 } }
},
{
"name": "ort_opset13_rank3_axis1_seed123",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.ThreeAndFourDimsSecondLastAxis_opset13"
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_seed_123_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 5], "tolerance": 0.000001 } }
},
{
"name": "ort_opset13_rank4_axis2_seed123",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.ThreeAndFourDimsSecondLastAxis_opset13"
},
"attrs": { "axis": 2 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_seed_123_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 3, 4, 5], "tolerance": 0.000001 } }
},
{
"name": "rank3_axis_minus2_middle_strided_large_values",
"attrs": { "axis": -2 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 3, 2],
"data": {
"kind": "values",
"values": [1000.0, -1000.0, 1001.0, -1001.0, 999.0, -999.0, -50.0, 50.0, -51.0, 49.0, -52.0, 48.0]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 3, 2], "tolerance": 0.000001 } }
},
{
"name": "f16_last_axis_large_ties",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 4],
"data": { "kind": "values", "values": [10.0, 10.0, 9.0, -10.0, -12.0, -12.0, -13.0, -14.0] }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 4], "tolerance": 0.002 } }
},
{
"name": "ort_simple_fp16_axis1",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.Simple_fp16"
},
"attrs": { "axis": 1 },
"inputs": {
"x": { "dtype": "float16", "shape": [1, 3], "data": { "kind": "values", "values": [-1.0, 0.0, 1.0] } }
},
"outputs": { "y": { "dtype": "float16", "shape": [1, 3], "tolerance": 0.001 } }
},
{
"name": "ort_opset13_rank3_axis2_seed123",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.ThreeAndFourDimsLastAxis_opset13"
},
"attrs": { "axis": 2 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_seed_123_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 5], "tolerance": 0.000001 } }
},
{
"name": "ort_opset13_rank4_axis3_seed123",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.ThreeAndFourDimsLastAxis_opset13"
},
"attrs": { "axis": 3 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_seed_123_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 3, 4, 5], "tolerance": 0.000001 } }
},
{
"name": "ort_opset13_rank3_default_axis_seed123",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.ThreeAndFourDimsDefaultAxis_opset13"
},
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_seed_123_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 5], "tolerance": 0.000001 } }
},
{
"name": "ort_opset13_rank4_default_axis_seed123",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.ThreeAndFourDimsDefaultAxis_opset13"
},
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_seed_123_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 3, 4, 5], "tolerance": 0.000001 } }
},
{
"name": "ort_negative_axis_rank3_last_seed123",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.ThreeAndFourDimsNegativeAxis"
},
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_seed_123_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 5], "tolerance": 0.000001 } }
},
{
"name": "ort_negative_axis_rank4_last_seed123",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.ThreeAndFourDimsNegativeAxis"
},
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_seed_123_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 3, 4, 5], "tolerance": 0.000001 } }
},
{
"name": "ort_axis1_large_dim_1025",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.2DInputReduceOnAxis1WithLargeDim"
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 1025],
"data": {
"kind": "values",
"values": [0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1.0, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09, 1.1, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.2, 1.21, 1.22, 1.23, 1.24, 1.25, 1.26, 1.27, 1.28, 1.29, 1.3, 1.31, 1.32, 1.33, 1.34, 1.35, 1.36, 1.37, 1.38, 1.39, 1.4, 1.41, 1.42, 1.43, 1.44, 1.45, 1.46, 1.47, 1.48, 1.49, 1.5, 1.51, 1.52, 1.53, 1.54, 1.55, 1.56, 1.57, 1.58, 1.59, 1.6, 1.61, 1.62, 1.63, 1.64, 1.65, 1.66, 1.67, 1.68, 1.69, 1.7, 1.71, 1.72, 1.73, 1.74, 1.75, 1.76, 1.77, 1.78, 1.79, 1.8, 1.81, 1.82, 1.83, 1.84, 1.85, 1.86, 1.87, 1.88, 1.89, 1.9, 1.91, 1.92, 1.93, 1.94, 1.95, 1.96, 1.97, 1.98, 1.99, 2.0, 2.01, 2.02, 2.03, 2.04, 2.05, 2.06, 2.07, 2.08, 2.09, 2.1, 2.11, 2.12, 2.13, 2.14, 2.15, 2.16, 2.17, 2.18, 2.19, 2.2, 2.21, 2.22, 2.23, 2.24, 2.25, 2.26, 2.27, 2.28, 2.29, 2.3, 2.31, 2.32, 2.33, 2.34, 2.35, 2.36, 2.37, 2.38, 2.39, 2.4, 2.41, 2.42, 2.43, 2.44, 2.45, 2.46, 2.47, 2.48, 2.49, 2.5, 2.51, 2.52, 2.53, 2.54, 2.55, 2.56, 2.57, 2.58, 2.59, 2.6, 2.61, 2.62, 2.63, 2.64, 2.65, 2.66, 2.67, 2.68, 2.69, 2.7, 2.71, 2.72, 2.73, 2.74, 2.75, 2.76, 2.77, 2.78, 2.79, 2.8, 2.81, 2.82, 2.83, 2.84, 2.85, 2.86, 2.87, 2.88, 2.89, 2.9, 2.91, 2.92, 2.93, 2.94, 2.95, 2.96, 2.97, 2.98, 2.99, 3.0, 3.01, 3.02, 3.03, 3.04, 3.05, 3.06, 3.07, 3.08, 3.09, 3.1, 3.11, 3.12, 3.13, 3.14, 3.15, 3.16, 3.17, 3.18, 3.19, 3.2, 3.21, 3.22, 3.23, 3.24, 3.25, 3.26, 3.27, 3.28, 3.29, 3.3, 3.31, 3.32, 3.33, 3.34, 3.35, 3.36, 3.37, 3.38, 3.39, 3.4, 3.41, 3.42, 3.43, 3.44, 3.45, 3.46, 3.47, 3.48, 3.49, 3.5, 3.51, 3.52, 3.53, 3.54, 3.55, 3.56, 3.57, 3.58, 3.59, 3.6, 3.61, 3.62, 3.63, 3.64, 3.65, 3.66, 3.67, 3.68, 3.69, 3.7, 3.71, 3.72, 3.73, 3.74, 3.75, 3.76, 3.77, 3.78, 3.79, 3.8, 3.81, 3.82, 3.83, 3.84, 3.85, 3.86, 3.87, 3.88, 3.89, 3.9, 3.91, 3.92, 3.93, 3.94, 3.95, 3.96, 3.97, 3.98, 3.99, 4.0, 4.01, 4.02, 4.03, 4.04, 4.05, 4.06, 4.07, 4.08, 4.09, 4.1, 4.11, 4.12, 4.13, 4.14, 4.15, 4.16, 4.17, 4.18, 4.19, 4.2, 4.21, 4.22, 4.23, 4.24, 4.25, 4.26, 4.27, 4.28, 4.29, 4.3, 4.31, 4.32, 4.33, 4.34, 4.35, 4.36, 4.37, 4.38, 4.39, 4.4, 4.41, 4.42, 4.43, 4.44, 4.45, 4.46, 4.47, 4.48, 4.49, 4.5, 4.51, 4.52, 4.53, 4.54, 4.55, 4.56, 4.57, 4.58, 4.59, 4.6, 4.61, 4.62, 4.63, 4.64, 4.65, 4.66, 4.67, 4.68, 4.69, 4.7, 4.71, 4.72, 4.73, 4.74, 4.75, 4.76, 4.77, 4.78, 4.79, 4.8, 4.81, 4.82, 4.83, 4.84, 4.85, 4.86, 4.87, 4.88, 4.89, 4.9, 4.91, 4.92, 4.93, 4.94, 4.95, 4.96, 4.97, 4.98, 4.99, 5.0, 5.01, 5.02, 5.03, 5.04, 5.05, 5.06, 5.07, 5.08, 5.09, 5.1, 5.11, 5.12, 5.13, 5.14, 5.15, 5.16, 5.17, 5.18, 5.19, 5.2, 5.21, 5.22, 5.23, 5.24, 5.25, 5.26, 5.27, 5.28, 5.29, 5.3, 5.31, 5.32, 5.33, 5.34, 5.35, 5.36, 5.37, 5.38, 5.39, 5.4, 5.41, 5.42, 5.43, 5.44, 5.45, 5.46, 5.47, 5.48, 5.49, 5.5, 5.51, 5.52, 5.53, 5.54, 5.55, 5.56, 5.57, 5.58, 5.59, 5.6, 5.61, 5.62, 5.63, 5.64, 5.65, 5.66, 5.67, 5.68, 5.69, 5.7, 5.71, 5.72, 5.73, 5.74, 5.75, 5.76, 5.77, 5.78, 5.79, 5.8, 5.81, 5.82, 5.83, 5.84, 5.85, 5.86, 5.87, 5.88, 5.89, 5.9, 5.91, 5.92, 5.93, 5.94, 5.95, 5.96, 5.97, 5.98, 5.99, 6.0, 6.01, 6.02, 6.03, 6.04, 6.05, 6.06, 6.07, 6.08, 6.09, 6.1, 6.11, 6.12, 6.13, 6.14, 6.15, 6.16, 6.17, 6.18, 6.19, 6.2, 6.21, 6.22, 6.23, 6.24, 6.25, 6.26, 6.27, 6.28, 6.29, 6.3, 6.31, 6.32, 6.33, 6.34, 6.35, 6.36, 6.37, 6.38, 6.39, 6.4, 6.41, 6.42, 6.43, 6.44, 6.45, 6.46, 6.47, 6.48, 6.49, 6.5, 6.51, 6.52, 6.53, 6.54, 6.55, 6.56, 6.57, 6.58, 6.59, 6.6, 6.61, 6.62, 6.63, 6.64, 6.65, 6.66, 6.67, 6.68, 6.69, 6.7, 6.71, 6.72, 6.73, 6.74, 6.75, 6.76, 6.77, 6.78, 6.79, 6.8, 6.81, 6.82, 6.83, 6.84, 6.85, 6.86, 6.87, 6.88, 6.89, 6.9, 6.91, 6.92, 6.93, 6.94, 6.95, 6.96, 6.97, 6.98, 6.99, 7.0, 7.01, 7.02, 7.03, 7.04, 7.05, 7.06, 7.07, 7.08, 7.09, 7.1, 7.11, 7.12, 7.13, 7.14, 7.15, 7.16, 7.17, 7.18, 7.19, 7.2, 7.21, 7.22, 7.23, 7.24, 7.25, 7.26, 7.27, 7.28, 7.29, 7.3, 7.31, 7.32, 7.33, 7.34, 7.35, 7.36, 7.37, 7.38, 7.39, 7.4, 7.41, 7.42, 7.43, 7.44, 7.45, 7.46, 7.47, 7.48, 7.49, 7.5, 7.51, 7.52, 7.53, 7.54, 7.55, 7.56, 7.57, 7.58, 7.59, 7.6, 7.61, 7.62, 7.63, 7.64, 7.65, 7.66, 7.67, 7.68, 7.69, 7.7, 7.71, 7.72, 7.73, 7.74, 7.75, 7.76, 7.77, 7.78, 7.79, 7.8, 7.81, 7.82, 7.83, 7.84, 7.85, 7.86, 7.87, 7.88, 7.89, 7.9, 7.91, 7.92, 7.93, 7.94, 7.95, 7.96, 7.97, 7.98, 7.99, 8.0, 8.01, 8.02, 8.03, 8.04, 8.05, 8.06, 8.07, 8.08, 8.09, 8.1, 8.11, 8.12, 8.13, 8.14, 8.15, 8.16, 8.17, 8.18, 8.19, 8.2, 8.21, 8.22, 8.23, 8.24, 8.25, 8.26, 8.27, 8.28, 8.29, 8.3, 8.31, 8.32, 8.33, 8.34, 8.35, 8.36, 8.37, 8.38, 8.39, 8.4, 8.41, 8.42, 8.43, 8.44, 8.45, 8.46, 8.47, 8.48, 8.49, 8.5, 8.51, 8.52, 8.53, 8.54, 8.55, 8.56, 8.57, 8.58, 8.59, 8.6, 8.61, 8.62, 8.63, 8.64, 8.65, 8.66, 8.67, 8.68, 8.69, 8.7, 8.71, 8.72, 8.73, 8.74, 8.75, 8.76, 8.77, 8.78, 8.79, 8.8, 8.81, 8.82, 8.83, 8.84, 8.85, 8.86, 8.87, 8.88, 8.89, 8.9, 8.91, 8.92, 8.93, 8.94, 8.95, 8.96, 8.97, 8.98, 8.99, 9.0, 9.01, 9.02, 9.03, 9.04, 9.05, 9.06, 9.07, 9.08, 9.09, 9.1, 9.11, 9.12, 9.13, 9.14, 9.15, 9.16, 9.17, 9.18, 9.19, 9.2, 9.21, 9.22, 9.23, 9.24, 9.25, 9.26, 9.27, 9.28, 9.29, 9.3, 9.31, 9.32, 9.33, 9.34, 9.35, 9.36, 9.37, 9.38, 9.39, 9.4, 9.41, 9.42, 9.43, 9.44, 9.45, 9.46, 9.47, 9.48, 9.49, 9.5, 9.51, 9.52, 9.53, 9.54, 9.55, 9.56, 9.57, 9.58, 9.59, 9.6, 9.61, 9.62, 9.63, 9.64, 9.65, 9.66, 9.67, 9.68, 9.69, 9.7, 9.71, 9.72, 9.73, 9.74, 9.75, 9.76, 9.77, 9.78, 9.79, 9.8, 9.81, 9.82, 9.83, 9.84, 9.85, 9.86, 9.87, 9.88, 9.89, 9.9, 9.91, 9.92, 9.93, 9.94, 9.95, 9.96, 9.97, 9.98, 9.99, 10.0, 10.01, 10.02, 10.03, 10.04, 10.05, 10.06, 10.07, 10.08, 10.09, 10.1, 10.11, 10.12, 10.13, 10.14, 10.15, 10.16, 10.17, 10.18, 10.19, 10.2, 10.21, 10.22, 10.23, 10.24, 10.25]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 1025], "tolerance": 0.000001 } }
},
{
"name": "ort_rank4_axis1_singleton_spatial",
"provenance": {
"source": "onnxruntime/test/providers/cpu/math/softmax_test.cc",
"test": "SoftmaxOperator.GH15949_regression_test"
},
"attrs": { "axis": 1 },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 3, 1, 1], "data": { "kind": "values", "values": [1.5, 5.5, 9.5] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 3, 1, 1], "tolerance": 0.000001 } }
},
{
"name": "onnx_backend_softmax_axis_0",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_softmax_axis_0" },
"attrs": { "axis": 0 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/onnx_backend_softmax_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 5], "tolerance": 0.00001 } }
},
{
"name": "onnx_backend_softmax_axis_1",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_softmax_axis_1" },
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/onnx_backend_softmax_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 5], "tolerance": 0.00001 } }
},
{
"name": "onnx_backend_softmax_axis_2",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_softmax_axis_2" },
"attrs": { "axis": 2 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/onnx_backend_softmax_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 5], "tolerance": 0.00001 } }
},
{
"name": "onnx_backend_softmax_default_axis",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_softmax_default_axis" },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/onnx_backend_softmax_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 5], "tolerance": 0.00001 } }
},
{
"name": "onnx_backend_softmax_example",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_softmax_example" },
"inputs": {
"x": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": [-1.0, 0.0, 1.0] } }
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 3], "tolerance": 0.00001 } }
},
{
"name": "onnx_backend_softmax_large_number",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_softmax_large_number" },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 4],
"data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 10000.0, 10001.0, 10002.0, 10003.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 4], "tolerance": 0.00001 } }
},
{
"name": "onnx_backend_softmax_negative_axis",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_softmax_negative_axis" },
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [3, 4, 5],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/onnx_backend_softmax_input_x" } }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 5], "tolerance": 0.00001 } }
},
{
"name": "online_wg_vec4_2x1024",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 1024],
"data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.07, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 1024], "tolerance": 0.000001 } }
},
{
"name": "online_wg_scalar_odd_2x1023",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 1023],
"data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.11, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 1023], "tolerance": 0.000001 } }
},
{
"name": "online_wg_vec4_long_row_1x32768",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 32768],
"data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.029, "scale": 4.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 32768], "tolerance": 0.000001 } }
},
{
"name": "online_wg_batch_4096x64",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [4096, 64],
"data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [4096, 64], "tolerance": 0.000001 } }
},
{
"name": "online_wg_all_negative_infinity_2x64",
"attrs": { "axis": -1 },
"inputs": { "x": { "dtype": "float32", "shape": [2, 64], "data": { "kind": "negativeInfinity" } } },
"outputs": { "y": { "dtype": "float32", "shape": [2, 64], "tolerance": 0, "allowNaN": true } }
},
{
"name": "online_wg_neg_inf_padding_mixed_2x40",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 40],
"data": { "kind": "cycle", "values": ["-Infinity", 0.5, 1.25, "-Infinity", -2.5] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 40], "tolerance": 0.000001 } }
},
{
"name": "online_wg_positive_infinity_row_1x36",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 36],
"data": { "kind": "cycle", "values": ["Infinity", 1.0, 2.0, -3.0, 0.5, -0.25] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 36], "tolerance": 0.000001, "allowNaN": true } }
},
{
"name": "online_wg_f16_2x128",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 128],
"data": { "kind": "fillFloat32", "sinStep": 0.21, "cosStep": 0.09, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 128], "tolerance": 0.002 } }
},
{
"name": "dispatch_cliff_rows_65537",
"provenance": {
"notes": "With 65,537 rows, Softmax uses a two-row workgroup dispatch. Distinct row values verify folded row indexing and the final over-dispatch bound."
},
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [65537, 4],
"data": { "kind": "cycle", "values": [0.1, 0.5, 0.9, 0.3, 0.7] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [65537, 4], "tolerance": 0.0001 } }
},
{
"name": "dispatch_cliff_strided_rows_140000",
"provenance": {
"notes": "A strided Softmax over 140,000 outer rows uses a three-row workgroup dispatch. Distinct row values verify folded row indexing and the final over-dispatch bound."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [70000, 4, 2],
"data": { "kind": "cycle", "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [70000, 4, 2], "tolerance": 0.0001 } }
},
{
"name": "rank7_last_axis",
"provenance": { "notes": "A rank-7 tensor exercises last-axis Softmax with high-rank row decomposition." },
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 1, 1, 1, 1, 1, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, -1.0, 0.0, 1.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 1, 1, 1, 1, 1, 3], "tolerance": 0.000001 } }
},
{
"name": "rank7_axis1_strided",
"provenance": {
"notes": "Exercises strided Softmax over axis 1 of a rank-7 tensor, with expectations from ONNX Runtime's CPU provider."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 3, 1, 1, 1, 1, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, -1.0, 0.0, 1.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 3, 1, 1, 1, 1, 1], "tolerance": 0.000001 } }
},
{
"name": "online_wg_vec4_f16_2x8192",
"provenance": {
"notes": "A float16 tensor with two 8,192-element rows exercises vec4<f16> loads and stores, float16 code generation, and cross-subgroup combination on the online workgroup route. A relative tolerance scaled to the approximately 1/8,192 outputs makes denominator rescaling, missing partials, or duplicate lanes observable."
},
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 8192],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 8192], "tolerance": 0.000002, "relTolerance": 0.002 } }
},
{
"name": "strided_online_lane_tail_f32_8x1024x130_axis1",
"provenance": {
"notes": "A large contiguous inner dimension exercises one-lane strided Softmax; 1,040 rows leave a partial final workgroup."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [8, 1024, 130],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [8, 1024, 130], "tolerance": 0.00002, "relTolerance": 0.00002 } }
},
{
"name": "strided_online_lane_tail_f16_8x1024x130_axis1",
"provenance": {
"notes": "Float16 input exercises one-lane strided accumulation and output conversion with a partial final workgroup. The tolerance is scaled to the roughly 1/130 outputs so denominator rescaling or a dropped lane is observable."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [8, 1024, 130],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [8, 1024, 130], "tolerance": 0.00001, "relTolerance": 0.003 } }
},
{
"name": "strided_3pass_f16_rank3_axis1",
"provenance": {
"notes": "A rank-3 float16 tensor of shape [4,8,16] exercises the max, exponential-sum, and normalization passes along strided axis 1."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [4, 8, 16],
"data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.07, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [4, 8, 16], "tolerance": 0.002 } }
},
{
"name": "strided_positive_infinity_rows_return_nan_axis1",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 3, 4],
"data": {
"kind": "values",
"values": ["Infinity", 1.0, 2.0, -3.0, 3.0, 0.5, -1.0, 2.0, 7.0, 4.0, 5.0, 6.0, 0.0, 1.0, 2.0, 3.0, -2.0, -1.0, 0.0, 1.0, 4.0, 5.0, 6.0, 7.0]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001, "allowNaN": true } }
},
{
"name": "strided_all_negative_infinity_nan_row_axis1",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 2, 3],
"data": {
"kind": "values",
"values": ["-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", "-Infinity", 1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
}
}
},
"outputs": {
"y": {
"dtype": "float32",
"shape": [2, 2, 3],
"tolerance": 0.000001,
"allowNaN": true,
"data": {
"kind": "values",
"values": ["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", 0.04742587317756678, 0.04742587317756678, 0.04742587317756678, 0.9525741268224334, 0.9525741268224334, 0.9525741268224334]
}
}
}
},
{
"name": "strided_vec4_empty_reduce_axis_dim_zero_axis1",
"attrs": { "axis": 1 },
"inputs": { "x": { "dtype": "float32", "shape": [2, 0, 4], "data": { "kind": "values", "values": [] } } },
"outputs": { "y": { "dtype": "float32", "shape": [2, 0, 4], "tolerance": 0 } }
},
{
"name": "strided_inner_dim_zero_axis1_scalar",
"attrs": { "axis": 1 },
"inputs": { "x": { "dtype": "float32", "shape": [3, 4, 0], "data": { "kind": "values", "values": [] } } },
"outputs": { "y": { "dtype": "float32", "shape": [3, 4, 0], "tolerance": 0 } }
},
{
"name": "strided_mixed_neg_inf_and_finite_axis1",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [1, 4, 2],
"data": {
"kind": "values",
"values": ["-Infinity", "-Infinity", 0.5, -2.5, "-Infinity", 0.0, 1.25, "-Infinity"]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0.000001 } }
},
{
"name": "packed_rows_tail_axis1_33x32",
"provenance": {
"notes": "33 rows of 32 columns leave one row past a multiple of 32; that final row must normalize independently of the others."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [33, 32],
"data": { "kind": "fillFloat32", "sinStep": 0.037, "cosStep": 0.019, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [33, 32], "tolerance": 0.000001, "relTolerance": 0.000001 } }
},
{
"name": "many_short_rows_axis1_64x32",
"provenance": {
"notes": "Sixty-four 32-column rows exercise packed short-row Softmax at a correctness-test scale."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [64, 32],
"data": { "kind": "fillFloat32", "sinStep": 0.037, "cosStep": 0.019, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [64, 32], "tolerance": 0.000001, "relTolerance": 0.000001 } }
},
{
"name": "many_rows_axis1_2048x32",
"provenance": {
"notes": "Two thousand forty-eight rows of width 32 exercise packed short-row Softmax at sustained density."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2048, 32],
"data": { "kind": "fillFloat32", "sinStep": 0.037, "cosStep": 0.019, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2048, 32], "tolerance": 0.000001, "relTolerance": 0.000001 } }
},
{
"name": "strided_scalar4_tail_f32_rank3_axis1_inner6",
"provenance": {
"notes": "Four adjacent strided rows with a two-element inner tail check normalized output independently per row."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 17, 6],
"data": { "kind": "fillFloat32", "sinStep": 0.071, "cosStep": 0.043, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 17, 6], "tolerance": 0.00001, "relTolerance": 0.00001 } }
},
{
"name": "strided_scalar4_tail_f16_rank3_axis1_inner6",
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 17, 6],
"data": { "kind": "fillFloat32", "sinStep": 0.071, "cosStep": 0.043, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 17, 6], "tolerance": 0.003, "relTolerance": 0.003 } }
},
{
"name": "strided_empty_inner_f16_plain_3pass",
"provenance": {
"notes": "A float16 tensor with a zero-length inner dimension exercises the plain three-pass strided implementation, since scalar-four processing requires a nonempty inner dimension and vectorized processing requires float32."
},
"attrs": { "axis": 0 },
"inputs": { "x": { "dtype": "float16", "shape": [2, 0], "data": { "kind": "values", "values": [] } } },
"outputs": { "y": { "dtype": "float16", "shape": [2, 0], "tolerance": 0 } }
},
{
"name": "strided_rowmax_scratch_over_128mib_f16_capacity_fallback",
"provenance": {
"notes": "With 33,554,433 strided rows, an f32 row-maximum scratch buffer would exceed 128 MiB while the float16 input remains about 64 MiB. The case therefore exercises single-pass online normalization under the minimum storage-binding limit."
},
"attrs": { "axis": 0 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [1, 33554433],
"data": { "kind": "cycle", "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0] }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [1, 33554433], "tolerance": 0.002 } }
},
{
"name": "rank8_last_axis",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2, 1, 1, 1, 1, 1, 2, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, -1.0, 0.0, 1.0, 0.5, -0.5, 2.5, 4.0, 1.0, -2.0] }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2, 1, 1, 1, 1, 1, 2, 3], "tolerance": 0.000001 } }
},
{
"name": "packed_rows_64x8_f16",
"provenance": {
"notes": "A float16 tensor with 64 rows of width 8 exercises the packed-rows online route with aligned vec4 storage."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [64, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.037, "cosStep": 0.019, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [64, 8], "tolerance": 0.002 } }
},
{
"name": "subgroup_rows_f16_96x512",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [96, 512],
"data": { "kind": "fillFloat32", "sinStep": 0.21, "cosStep": 0.09, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [96, 512], "tolerance": 0.0001, "relTolerance": 0.02 } }
},
{
"name": "subgroup_rows_f32_64x1024",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [64, 1024],
"data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.029, "scale": 3.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [64, 1024], "tolerance": 0.0001, "relTolerance": 0.0001 } }
},
{
"name": "subgroup_rows_f32_rank3_4x20x256_neg_inf_padding",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [4, 20, 256],
"data": {
"kind": "cycle",
"values": [1.0, "-Infinity", 2.0, 0.5, "-Infinity", -1.0, 3.0, 0.25, "-Infinity", 1.5, -2.0]
}
}
},
"outputs": { "y": { "dtype": "float32", "shape": [4, 20, 256], "tolerance": 0.0001, "relTolerance": 0.0001 } }
},
{
"name": "subgroup_rows_f32_65x64_tail_row",
"attrs": { "axis": -1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [65, 64],
"data": { "kind": "fillFloat32", "sinStep": 0.31, "cosStep": 0.11, "scale": 4.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [65, 64], "tolerance": 0.0001, "relTolerance": 0.0001 } }
},
{
"name": "packed_rows_scalar_lane_tail_2081x33",
"provenance": {
"notes": "Thirty-three columns require a ragged scalar lane tail in packed-row Softmax. With 2,081 rows, the final row group is also partial, exercising inactive lanes across barriers."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float32",
"shape": [2081, 33],
"data": { "kind": "fillFloat32", "sinStep": 0.041, "cosStep": 0.023, "scale": 2.0 }
}
},
"outputs": { "y": { "dtype": "float32", "shape": [2081, 33], "tolerance": 0.000001, "relTolerance": 0.000001 } }
},
{
"name": "online_stream_axis31_f16",
"provenance": {
"notes": "Exercises the per-lane stream-count boundary, reduction tail, or column tail. f16 comparison includes its storage rounding."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 31, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 4.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 31, 8], "tolerance": 1e-7, "relTolerance": 0.001 } }
},
{
"name": "online_stream_axis32_f16",
"provenance": {
"notes": "Exercises the per-lane stream-count boundary, reduction tail, or column tail. f16 comparison includes its storage rounding."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 32, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 4.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 32, 8], "tolerance": 1e-7, "relTolerance": 0.001 } }
},
{
"name": "online_stream_axis33_f16",
"provenance": {
"notes": "Exercises the per-lane stream-count boundary, reduction tail, or column tail. f16 comparison includes its storage rounding."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 33, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 4.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 33, 8], "tolerance": 1e-7, "relTolerance": 0.001 } }
},
{
"name": "online_stream_axis64_f16",
"provenance": {
"notes": "Exercises the per-lane stream-count boundary, reduction tail, or column tail. f16 comparison includes its storage rounding."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 64, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 4.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 64, 8], "tolerance": 1e-7, "relTolerance": 0.001 } }
},
{
"name": "online_stream_axis65_f16",
"provenance": {
"notes": "Exercises the per-lane stream-count boundary, reduction tail, or column tail. f16 comparison includes its storage rounding."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 65, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 4.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 65, 8], "tolerance": 1e-7, "relTolerance": 0.001 } }
},
{
"name": "online_stream_columns_tail_f16",
"provenance": {
"notes": "Exercises the per-lane stream-count boundary, reduction tail, or column tail. f16 comparison includes its storage rounding."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [129, 67, 130],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 4.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [129, 67, 130], "tolerance": 1e-7, "relTolerance": 0.001 } }
},
{
"name": "online_stream_nonfinite_f16",
"provenance": {
"notes": "Mixes NaNs with large finite maxima across independent streams, alongside positive infinity, all-negative-infinity, and finite groups. The tail crosses both the stream period and the input recipe period."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 67, 8],
"data": {
"kind": "cycle",
"values": ["NaN", 1.0, "-Infinity", "Infinity", 0.0, "NaN", 5.0, -1000.0, 0.0, 3.0, "-Infinity", 2.0, 5.0, -1000.0, "-Infinity", 0.0, 1000.0, 5.0, "-Infinity", 4.0, "NaN", 1000.0, 7.0, "-Infinity"]
}
}
},
"outputs": {
"y": { "dtype": "float16", "shape": [2, 67, 8], "tolerance": 1e-7, "relTolerance": 0.001, "allowNaN": true }
}
},
{
"name": "online_stream_four_way_tail_f16",
"provenance": {
"notes": "Exercises the per-lane stream-count boundary, reduction tail, or column tail. f16 comparison includes its storage rounding."
},
"attrs": { "axis": 1 },
"inputs": {
"x": {
"dtype": "float16",
"shape": [2, 129, 8],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 4.0 }
}
},
"outputs": { "y": { "dtype": "float16", "shape": [2, 129, 8], "tolerance": 1e-7, "relTolerance": 0.001 } },
"tunables": { "STRIDED_ONLINE_STREAMS": 4 }
}
]
}