{ "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 } } } ] }