Xenova's picture
Xenova HF Staff
sync 2e7068faf55e
1496de8 verified
Raw
History Blame
26.2 kB
{
"op": "ai.onnx.LpNormalization",
"fixtureArrays": {
"ort_l1_axis1_rank3_input_input": [5.93932154, 7.4367043, 6.42487038, 5.90394865, 4.81289319, 6.81304702, 4.9382849, 9.02595701, 9.67296484, 4.45097367, 8.12552534, 5.76005428, 6.11240105, 9.33036974, 1.63932452, 1.7841637, 1.18196558, 8.49357861, 8.00341076, 8.83010933, 9.80756508, 8.19242708, 5.15331426, 8.02476259]
},
"cases": [
{
"name": "p2_last_axis_f32",
"attrs": { "axis": -1, "p": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3],
"data": { "kind": "values", "values": [3.0, 4.0, 0.0, 1.0, 2.0, 2.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 3] } },
"tolerance": 0.000001
},
{
"name": "p1_axis0_f32",
"attrs": { "axis": 0, "p": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3],
"data": { "kind": "values", "values": [1.0, -2.0, 3.0, 4.0, 5.0, -6.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 3] } },
"tolerance": 0.000001
},
{
"name": "p1_tiny_nonzero_norm_not_clamped",
"attrs": { "axis": 1, "p": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2],
"data": { "kind": "values", "values": [1e-20, 0.0, -1e-20, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 } }
},
{
"name": "p2_tiny_square_subnormal_norm_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/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L2NormalizationWithZeroNorm",
"notes": "The inputs are nonzero and normal, but their squares are subnormal; the L2 norm must not be treated as zero."
},
"attrs": { "axis": 1, "p": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2],
"data": { "kind": "values", "values": [1e-20, 1e-20, -1e-20, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 } }
},
{
"name": "p2_tiny_square_subnormal_norm_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/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L2NormalizationWithZeroNorm",
"notes": "Axis-0 companion: normal inputs whose squared L2 sums are finite subnormals must still produce nonzero normalized values."
},
"attrs": { "axis": 0, "p": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2],
"data": { "kind": "values", "values": [1e-20, -1e-20, 1e-20, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 } }
},
{
"name": "p2_tiny_square_subnormal_norm_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/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L2NormalizationWithZeroNorm",
"notes": "Vec4 last-axis companion: the L2 norm is tiny but nonzero, so the direction of the vector must survive normalization."
},
"attrs": { "axis": -1, "p": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4],
"data": { "kind": "values", "values": [1e-20, 1e-20, 0.0, -1e-20] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4], "tolerance": 0.000001 } }
},
{
"name": "p1_subnormal_norm_ratio_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/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L1NormalizationWithZeroNorm",
"notes": "Finite subnormal inputs can still form a nonzero L1 norm; normalization should return ratios, not the zero-norm branch."
},
"attrs": { "axis": 1, "p": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2],
"data": { "kind": "values", "values": [1e-40, 1e-40, -1e-40, 0.0] }
}
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [2, 2],
"tolerance": 0.000001,
"data": { "kind": "values", "values": [0.5, 0.5, -1.0, 0.0] }
}
}
},
{
"name": "p1_subnormal_norm_ratio_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/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L1NormalizationWithZeroNorm",
"notes": "Axis-0 companion: the strided two-pass p1 path must not collapse finite subnormal L1 norms to zero."
},
"attrs": { "axis": 0, "p": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2],
"data": { "kind": "values", "values": [1e-40, -1e-40, 1e-40, 0.0] }
}
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [2, 2],
"tolerance": 0.000001,
"data": { "kind": "values", "values": [0.5, -1.0, 0.5, 0.0] }
}
}
},
{
"name": "p1_subnormal_norm_ratio_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/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L1NormalizationWithZeroNorm",
"notes": "Vec4 last-axis companion: finite subnormal L1 totals should still produce stable signed ratios."
},
"attrs": { "axis": -1, "p": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4],
"data": { "kind": "values", "values": [1e-40, 1e-40, -1e-40, 0.0] }
}
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [1, 4],
"tolerance": 0.000001,
"data": { "kind": "values", "values": [0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0] }
}
}
},
{
"name": "p2_f16",
"attrs": { "axis": 1, "p": 2 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [2, 3],
"data": { "kind": "values", "values": [3.0, 4.0, 0.0, 1.0, 2.0, 2.0] }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [2, 3] } },
"tolerance": 0.002
},
{
"name": "ort_f16_p2_last_axis_large_values_float_accumulation",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L2Normalization_FP16",
"notes": "Uses large f16 values to preserve ORT's float-accumulation regression coverage."
},
"attrs": { "axis": -1, "p": 2 },
"inputs": { "input": { "dtype": "float16", "shape": [2, 128], "data": { "kind": "constant", "value": 100.0 } } },
"outputs": { "output": { "dtype": "float16", "shape": [2, 128] } },
"tolerance": 0.002
},
{
"name": "ort_f16_p1_last_axis_large_values_float_accumulation",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L1Normalization_FP16",
"notes": "Uses large f16 values to preserve ORT's float-accumulation regression coverage."
},
"attrs": { "axis": -1, "p": 1 },
"inputs": { "input": { "dtype": "float16", "shape": [2, 128], "data": { "kind": "constant", "value": 200.0 } } },
"outputs": { "output": { "dtype": "float16", "shape": [2, 128] } },
"tolerance": 0.002
},
{
"name": "f16_p1_last_axis_constant200_norm_scale_lock",
"provenance": {
"notes": "Mirrors the ORT-derived ort_f16_p1_last_axis_large_values_float_accumulation case, whose 0.002 tolerance against a 0.0078125 output is a min detectable uniform scale error of 0.256 - a 25% error in the L1 norm passes. The ORT case is left as imported; this one keeps the identical input (128 columns of 200.0, so the answer 200/25600 = 2^-7 is exact in f16) and asserts it to 1e-6, which pins the divisor to the column count."
},
"attrs": { "axis": -1, "p": 1 },
"inputs": { "input": { "dtype": "float16", "shape": [2, 128], "data": { "kind": "constant", "value": 200.0 } } },
"outputs": { "output": { "dtype": "float16", "shape": [2, 128], "tolerance": 0.000001 } }
},
{
"name": "ort_l1_axis1_rank3",
"attrs": { "axis": 1, "p": 1 },
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L1Normalization"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3, 4],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_l1_axis1_rank3_input_input" } }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } }
},
{
"name": "ort_l2_axis1_rank3",
"attrs": { "axis": 1, "p": 2 },
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L2Normalization"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3, 4],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_l1_axis1_rank3_input_input" } }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } }
},
{
"name": "ort_default_axis_p2_rank1",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.LpNormalizationDefaultAxisAndP"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [16],
"data": {
"kind": "values",
"values": [0.0, 0.5, 2.0, 2.0, 1.0, 0.5, 2.0, 2.5, 1.0, 1.5, 3.0, 3.0, 1.5, 2.0, 3.5, 3.5]
}
}
},
"outputs": { "output": { "dtype": "float32", "shape": [16], "tolerance": 0.000001 } }
},
{
"name": "ort_l1_default_axis_zero_norm",
"attrs": { "p": 1 },
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L1NormalizationWithZeroNorm"
},
"inputs": {
"input": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "values", "values": [2.0, 2.0, 0.0, 0.0] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 } }
},
{
"name": "ort_l2_default_axis_zero_norm",
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L2NormalizationWithZeroNorm"
},
"inputs": {
"input": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "values", "values": [1.0, 0.0, 0.0, 0.0] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 } }
},
{
"name": "ort_l1_valid_negative_axis_rank3",
"attrs": { "axis": -2, "p": 1 },
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L1NormalizationWithValidNegativeAxis"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3, 4],
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_l1_axis1_rank3_input_input" } }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 3, 4], "tolerance": 0.000001 } }
},
{
"name": "ort_l2_last_axis_rank2",
"attrs": { "axis": -1, "p": 2 },
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L2Normalization_LastAxis"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 4],
"data": { "kind": "values", "values": [3.0, 4.0, 0.0, 0.0, 1.0, 2.0, 2.0, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 4], "tolerance": 0.000001 } }
},
{
"name": "ort_l2_axis0_rank2",
"attrs": { "axis": 0, "p": 2 },
"provenance": {
"source": "onnxruntime/test/providers/cpu/nn/lp_norm_op_test.cc",
"test": "LpNormalizationTest.L2Normalization_Axis0"
},
"inputs": {
"input": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "values", "values": [3.0, 1.0, 4.0, 2.0] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 } }
},
{
"name": "onnx_backend_l1normalization_axis_0",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_l1normalization_axis_0",
"test": "test_l1normalization_axis_0"
},
"attrs": { "axis": 0, "p": 1 },
"inputs": { "input": { "dtype": "float32", "shape": [2], "data": { "kind": "values", "values": [3.0, 4.0] } } },
"outputs": { "output": { "dtype": "float32", "shape": [2], "tolerance": 0.000001 } }
},
{
"name": "onnx_backend_l1normalization_axis_1",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_l1normalization_axis_1",
"test": "test_l1normalization_axis_1"
},
"attrs": { "axis": 1, "p": 1 },
"inputs": {
"input": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "values", "values": [3.0, 4.0, 6.0, 8.0] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 } }
},
{
"name": "onnx_backend_l1normalization_axis_last",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_l1normalization_axis_last",
"test": "test_l1normalization_axis_last"
},
"attrs": { "axis": -1, "p": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 2.0, 3.0, 4.0, 0.0, 0.0, 5.0, 5.0, 6.0, 8.0, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2, 3], "tolerance": 0.000001 } }
},
{
"name": "onnx_backend_l2normalization_axis_0",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_l2normalization_axis_0",
"test": "test_l2normalization_axis_0"
},
"attrs": { "axis": 0, "p": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 2.0, 3.0, 4.0, 0.0, 0.0, 5.0, 5.0, 6.0, 8.0, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2, 3], "tolerance": 0.000001 } }
},
{
"name": "onnx_backend_l2normalization_axis_1",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_l2normalization_axis_1",
"test": "test_l2normalization_axis_1"
},
"attrs": { "axis": 1, "p": 2 },
"inputs": {
"input": { "dtype": "float32", "shape": [2, 2], "data": { "kind": "values", "values": [3.0, 4.0, 6.0, 8.0] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.000001 } }
},
{
"name": "onnx_backend_lpnormalization_default",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_lpnormalization_default",
"test": "test_lpnormalization_default"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 3],
"data": { "kind": "values", "values": [1.0, 2.0, 2.0, 3.0, 4.0, 0.0, 0.0, 5.0, 5.0, 6.0, 8.0, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2, 3], "tolerance": 0.000001 } }
},
{
"name": "empty_input_zero_dim",
"attrs": { "axis": -1, "p": 2 },
"inputs": { "input": { "dtype": "float32", "shape": [0, 3], "data": { "kind": "values", "values": [] } } },
"outputs": { "output": { "dtype": "float32", "shape": [0, 3], "tolerance": 0 } }
},
{
"name": "p2_axis0_large_strided_splitk",
"attrs": { "axis": 0, "p": 2 },
"inputs": {
"input": { "dtype": "float32", "shape": [512, 256], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }
},
"outputs": { "output": { "dtype": "float32", "shape": [512, 256] } },
"tolerance": 0.0001
},
{
"name": "p1_axis0_large_strided_splitk",
"attrs": { "axis": 0, "p": 1 },
"inputs": {
"input": { "dtype": "float32", "shape": [512, 256], "data": { "kind": "linspace", "start": -2.0, "end": 3.0 } }
},
"outputs": { "output": { "dtype": "float32", "shape": [512, 256] } },
"tolerance": 0.0001
},
{
"name": "f16_p2_axis0_splitk_decode",
"attrs": { "axis": 0, "p": 2 },
"inputs": {
"input": { "dtype": "float16", "shape": [512, 256], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }
},
"outputs": { "output": { "dtype": "float16", "shape": [512, 256], "tolerance": 0.01 } }
},
{
"name": "f16_p2_axis0_splitk_decode_norm_scale_lock",
"provenance": {
"notes": "The p=2 half of the axis_splitk route: f16_p2_axis0_splitk_decode's 0.01 absolute tolerance against a 0.0765 maximum output is a min detectable uniform scale error of 0.131, so a partial sum-of-squares combined without the square root, or a rsqrt applied per split instead of once, is within tolerance. Same shape/attrs/data with a tolerance at f16 output resolution."
},
"attrs": { "axis": 0, "p": 2 },
"inputs": {
"input": { "dtype": "float16", "shape": [512, 256], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }
},
"outputs": { "output": { "dtype": "float16", "shape": [512, 256], "tolerance": 0.0002, "relTolerance": 0.002 } }
},
{
"name": "f16_p1_rank3_axis0_splitk_scalardiv",
"attrs": { "axis": 0, "p": 1 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [512, 86, 3],
"data": { "kind": "linspace", "start": -2.0, "end": 3.0 }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [512, 86, 3], "tolerance": 0.01 } }
},
{
"name": "f16_p1_rank3_axis0_splitk_scalardiv_norm_scale_lock",
"provenance": {
"notes": "LpNormalization output is scale-invariant in the input, so no data choice can lift it above ~1/n along the normalized axis; the only way a fixture sees a denominator error is a tolerance commensurate with that magnitude. f16_p1_rank3_axis0_splitk_scalardiv pairs a 0.01 absolute tolerance with a 4.5e-3 maximum output (min detectable uniform scale error 2.22), so the split-k L1 partial sum, its combine, and the scalar divide could each be off by any factor and pass. Same shape, axis, p and data on the axis_splitk route, with the tolerance retightened to a few f16 ulp at the true output scale."
},
"attrs": { "axis": 0, "p": 1 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [512, 86, 3],
"data": { "kind": "linspace", "start": -2.0, "end": 3.0 }
}
},
"outputs": {
"output": { "dtype": "float16", "shape": [512, 86, 3], "tolerance": 0.00002, "relTolerance": 0.002 }
}
},
{
"name": "f16_p2_last_axis_hidden2048",
"attrs": { "axis": -1, "p": 2 },
"inputs": {
"input": { "dtype": "float16", "shape": [256, 2048], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }
},
"outputs": { "output": { "dtype": "float16", "shape": [256, 2048], "tolerance": 0.01 } }
},
{
"name": "f16_p2_last_axis_hidden2048_norm_scale_lock",
"provenance": {
"notes": "last_axis_row_vec4 over a 2048-wide row: the sibling's 0.01 absolute tolerance against a 0.0383 maximum output is a min detectable uniform scale error of 0.261, so the row norm could be a quarter or four times too large and pass. Same shape/attrs/data with the tolerance scaled to the output."
},
"attrs": { "axis": -1, "p": 2 },
"inputs": {
"input": { "dtype": "float16", "shape": [256, 2048], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }
},
"outputs": { "output": { "dtype": "float16", "shape": [256, 2048], "tolerance": 0.0001, "relTolerance": 0.002 } }
},
{
"name": "f32_p1_rank4_axis1_fallback",
"attrs": { "axis": 1, "p": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 4, 8, 16],
"data": { "kind": "linspace", "start": -1.0, "end": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 4, 8, 16], "tolerance": 0.0001 } }
},
{
"name": "f16_p2_rank3_axis1_splitk",
"attrs": { "axis": 1, "p": 2 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [8, 1024, 768],
"data": { "kind": "linspace", "start": -0.5, "end": 0.5 }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [8, 1024, 768], "tolerance": 0.01 } }
},
{
"name": "f16_vec4_last_axis_zero_norm_guard",
"attrs": { "axis": -1, "p": 2 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [2, 4],
"data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 4.0, 0.0] }
}
},
"outputs": {
"output": {
"dtype": "float16",
"shape": [2, 4],
"tolerance": 0.002,
"data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0, 0.6, 0.0, 0.8, 0.0] }
}
}
},
{
"name": "splitk_vec4_divide_indexing_rowNorms",
"attrs": { "axis": 0, "p": 2 },
"inputs": {
"input": { "dtype": "float32", "shape": [512, 512], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }
},
"outputs": { "output": { "dtype": "float32", "shape": [512, 512], "tolerance": 0.0001 } }
},
{
"name": "empty_last_dim_zero_norm_dim",
"attrs": { "axis": -1, "p": 2 },
"inputs": { "input": { "dtype": "float32", "shape": [2, 0], "data": { "kind": "values", "values": [] } } },
"outputs": { "output": { "dtype": "float32", "shape": [2, 0], "tolerance": 0 } }
},
{
"name": "empty_nonlast_axis_splitk_path",
"attrs": { "axis": 1, "p": 2 },
"inputs": { "input": { "dtype": "float32", "shape": [0, 3, 4], "data": { "kind": "values", "values": [] } } },
"outputs": { "output": { "dtype": "float32", "shape": [0, 3, 4], "tolerance": 0 } }
},
{
"name": "last_axis_2d_dispatch_fold_boundary_row",
"attrs": { "axis": -1, "p": 2 },
"inputs": {
"input": { "dtype": "float32", "shape": [65537, 4], "data": { "kind": "linspace", "start": -1.0, "end": 1.0 } }
},
"outputs": { "output": { "dtype": "float32", "shape": [65537, 4], "tolerance": 0.0001 } }
},
{
"name": "rank7_last_axis",
"attrs": { "axis": -1, "p": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1, 2, 1, 2, 1, 3],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 2.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 1, 2, 1, 2, 1, 3], "tolerance": 0.000001 } }
},
{
"name": "rank8_last_axis",
"attrs": { "axis": -1, "p": 2 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1, 2, 1, 2, 1, 2, 3],
"data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.21 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 1, 2, 1, 2, 1, 2, 3], "tolerance": 0.000001 } }
}
]
}