Xenova's picture
Xenova HF Staff
sync 2e7068faf55e
86e512a verified
Raw
History Blame
9.21 kB
{
"op": "ai.onnx.HammingWindow",
"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_hammingwindow" },
"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_hammingwindow_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.HammingWindowFloat",
"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_int16_output_size8",
"provenance": {
"source": "ONNX Runtime CPUExecutionProvider",
"notes": "ONNX HammingWindow computes in float and applies output_datatype=INT16 as a final cast."
},
"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": "ort_symmetric_uint32_output_size1_zero_cast",
"provenance": {
"source": "ONNX Runtime CPUExecutionProvider",
"notes": "The symmetric size-one formula produces NaN in float; ONNX Cast to UINT32 maps that value to zero."
},
"attrs": { "output_datatype": 12, "periodic": 0 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } } },
"outputs": {
"y": { "dtype": "uint32", "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_int32_output_size8",
"attrs": { "output_datatype": 6 },
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } },
"outputs": {
"y": {
"dtype": "int32",
"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.HammingWindowFloat",
"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.HammingWindowFloat",
"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.HammingWindowFloat"
},
"inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [32] } } },
"outputs": {
"y": {
"dtype": "float32",
"shape": [32],
"tolerance": 0.00001,
"data": {
"kind": "values",
"values": [0.086957, 0.095728, 0.121707, 0.163894, 0.220669, 0.289848, 0.368775, 0.454415, 0.543478, 0.632541, 0.718182, 0.797108, 0.866288, 0.923062, 0.965249, 0.991228, 1.0, 0.991228, 0.965249, 0.923062, 0.866288, 0.797108, 0.718182, 0.632541, 0.543478, 0.454415, 0.368775, 0.289848, 0.220669, 0.163894, 0.121707, 0.095728]
}
}
}
},
{
"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 } }
},
{
"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 } }
}
]
}