Xenova's picture
Xenova HF Staff
sync 2e7068faf55e
32be2c7 verified
Raw
History Blame
9.57 kB
{
"op": "ai.onnx.HannWindow",
"cases": [
{
"name": "periodic_f32_size16",
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [16] } } },
"outputs": { "y": { "dtype": "float32", "shape": [16], "tolerance": 0.00001 } }
},
{
"name": "symmetric_f32_size16",
"attrs": { "periodic": 0 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [16] } } },
"outputs": { "y": { "dtype": "float32", "shape": [16], "tolerance": 0.00001 } }
},
{
"name": "periodic_f32_size10",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_hannwindow" },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [10] } } },
"outputs": { "y": { "dtype": "float32", "shape": [10], "tolerance": 0.00001 } }
},
{
"name": "symmetric_f32_size10_onnx_backend",
"provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_hannwindow_symmetric" },
"attrs": { "periodic": 0 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [10] } } },
"outputs": { "y": { "dtype": "float32", "shape": [10], "tolerance": 0.00001 } }
},
{
"name": "periodic_f32_size0_empty",
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } } },
"outputs": { "y": { "dtype": "float32", "shape": [0], "tolerance": 0 } }
},
{
"name": "periodic_f32_size1_boundary",
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } } },
"outputs": { "y": { "dtype": "float32", "shape": [1], "tolerance": 0.00001 } }
},
{
"name": "symmetric_f32_size1_nan_boundary",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.HannWindowFloat",
"notes": "Additional ORT-validated edge: symmetric size 1 uses denominator length - 1 = 0 and produces NaN."
},
"attrs": { "periodic": 0 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } } },
"outputs": {
"y": {
"dtype": "float32",
"shape": [1],
"tolerance": 0,
"allowNaN": true,
"data": { "kind": "values", "values": ["NaN"] }
}
}
},
{
"name": "symmetric_f32_odd_size7",
"attrs": { "periodic": 0 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [7] } } },
"outputs": { "y": { "dtype": "float32", "shape": [7], "tolerance": 0.00001 } }
},
{
"name": "periodic_f16_size32",
"attrs": { "output_datatype": 10 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [32] } } },
"outputs": { "y": { "dtype": "float16", "shape": [32], "tolerance": 0.002 } }
},
{
"name": "ort_periodic_uint32_output_size8",
"provenance": {
"source": "ONNX Runtime CPUExecutionProvider",
"notes": "ONNX HannWindow computes in float and applies output_datatype=UINT32 as a final cast."
},
"attrs": { "output_datatype": 12 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } },
"outputs": {
"y": {
"dtype": "uint32",
"shape": [8],
"tolerance": 0,
"data": { "kind": "values", "values": [0, 0, 0, 0, 1, 0, 0, 0] }
}
}
},
{
"name": "ort_symmetric_int32_output_size1_zero_cast",
"provenance": {
"source": "ONNX Runtime CPUExecutionProvider",
"notes": "The symmetric size-one formula produces NaN in float; ONNX Cast to INT32 maps that value to zero."
},
"attrs": { "output_datatype": 6, "periodic": 0 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } } },
"outputs": {
"y": { "dtype": "int32", "shape": [1], "tolerance": 0, "data": { "kind": "values", "values": [0] } }
}
},
{
"name": "onnx_standard_periodic_int8_output_size8",
"attrs": { "output_datatype": 3 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } },
"outputs": {
"y": {
"dtype": "int8",
"shape": [8],
"tolerance": 0,
"data": { "kind": "values", "values": [0, 0, 0, 0, 1, 0, 0, 0] }
}
}
},
{
"name": "onnx_standard_periodic_uint8_output_size8",
"attrs": { "output_datatype": 2 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } },
"outputs": {
"y": {
"dtype": "uint8",
"shape": [8],
"tolerance": 0,
"data": { "kind": "values", "values": [0, 0, 0, 0, 1, 0, 0, 0] }
}
}
},
{
"name": "onnx_standard_periodic_int16_output_size8",
"attrs": { "output_datatype": 5 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } },
"outputs": {
"y": {
"dtype": "int16",
"shape": [8],
"tolerance": 0,
"data": { "kind": "values", "values": [0, 0, 0, 0, 1, 0, 0, 0] }
}
}
},
{
"name": "periodic_f32_size257_phase_accuracy_gpu_gap",
"skipGpu": {
"category": "todo",
"reason": "The current f32 cosine and range-reduction path crosses the final rounding boundary for this periodic size-257 window. A correctly rounded approximation or software-extended precision could close this implementable gap."
},
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.HannWindowFloat",
"notes": "Medium odd-sized periodic window stresses f32 phase formation across many non-cardinal cosine positions; CPU and ORT agree more tightly than the current WGSL f32 cosine-sum path."
},
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [257] } } },
"outputs": { "y": { "dtype": "float32", "shape": [257], "tolerance": 6e-8, "relTolerance": 0 } }
},
{
"name": "symmetric_f32_size257_phase_accuracy_gpu_gap",
"skipGpu": {
"category": "todo",
"reason": "The current f32 cosine and range-reduction path crosses the final rounding boundary for this symmetric size-257 window. A correctly rounded approximation or software-extended precision could close this implementable gap."
},
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.HannWindowFloat",
"notes": "Symmetric odd-sized companion to the periodic phase edge; the length-1 denominator shifts every non-cardinal cosine sample and exposes f32 phase drift in the WGSL path."
},
"attrs": { "periodic": 0 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [257] } } },
"outputs": { "y": { "dtype": "float32", "shape": [257], "tolerance": 6e-8, "relTolerance": 0 } }
},
{
"name": "ort_periodic_f32_size32",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.HannWindowFloat"
},
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [32] } } },
"outputs": {
"y": {
"dtype": "float32",
"shape": [32],
"tolerance": 0.00001,
"data": {
"kind": "values",
"values": [0.0, 0.009607, 0.03806, 0.084265, 0.146447, 0.222215, 0.308658, 0.402455, 0.5, 0.597545, 0.691342, 0.777785, 0.853553, 0.915735, 0.96194, 0.990393, 1.0, 0.990393, 0.96194, 0.915735, 0.853553, 0.777785, 0.691342, 0.597545, 0.5, 0.402455, 0.308658, 0.222215, 0.146447, 0.084265, 0.03806, 0.009607]
}
}
}
},
{
"name": "periodic_int32_size8",
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } },
"outputs": { "y": { "dtype": "float32", "shape": [8], "tolerance": 0.00001 } }
},
{
"name": "symmetric_f32_size2_denom1",
"attrs": { "periodic": 0 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [2] } } },
"outputs": {
"y": {
"dtype": "float32",
"shape": [2],
"tolerance": 0.00001,
"data": { "kind": "values", "values": [0.0, 0.0] }
}
}
},
{
"name": "symmetric_f32_size4_cardinal_verify",
"attrs": { "periodic": 0 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [4] } } },
"outputs": { "y": { "dtype": "float32", "shape": [4], "tolerance": 0.00001 } }
},
{
"name": "symmetric_f16_size16",
"attrs": { "output_datatype": 10, "periodic": 0 },
"requires": { "features": ["shader-f16"] },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [16] } } },
"outputs": { "y": { "dtype": "float16", "shape": [16], "tolerance": 0.002 } }
}
]
}