{ "op": "ai.onnx.Conv", "fixtureArrays": { "nchw_dilated_kernel_input_x": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "backend_stride2_with_padding_input_x": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "ort_conv2d_group_no_bias_input_x": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "ort_conv2d_same_upper_stride2_asymmetric_padding_input_x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] }, "cases": [ { "name": "f32_subnormal_times_large_scale_2d_gpu_gap", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest", "notes": "A 2D convolution over subnormal activations and large finite weights should accumulate to an ordinary finite output." }, "attrs": { "kernel_shape": [2, 2], "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1e-39, 2e-39, 5e-39, 1e-38] } }, "w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 1e+38 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1, 1], "tolerance": 0.000001 } }, "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path." } }, { "name": "f32_normal_inputs_subnormal_2d_output_gpu_gap", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest", "notes": "All convolution operands are normal float32 values, but each product and the final accumulation are valid subnormals." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "values", "values": [1e-20, 2e-20, 3e-20, 4e-20] } }, "w": { "dtype": "float32", "shape": [1, 1, 2, 2], "data": { "kind": "constant", "value": 1e-20 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1, 1], "tolerance": 0, "data": { "kind": "values", "values": [1e-39] } } }, "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path." } }, { "name": "f32_1x1_subgroup_matrix_subnormal_outputs_gpu_gap", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest", "notes": "1x1 conv with C=32, M=32, HW=64 selects the Conv-as-GEMM subgroup-matrix path; normal operands produce finite subnormal outputs." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 1, 64], "data": { "kind": "constant", "value": 1e-20 } }, "w": { "dtype": "float32", "shape": [32, 32, 1, 1], "data": { "kind": "constant", "value": 1e-20 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 1, 64], "tolerance": 1e-43 } }, "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path." } }, { "name": "f32_1x1_subgroup_matrix_bias_subnormal_outputs_gpu_gap", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest", "notes": "Zero-bias companion for the 1x1 Conv-as-GEMM subgroup-matrix path; the bias epilogue must preserve finite subnormal outputs." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 1, 64], "data": { "kind": "constant", "value": 1e-20 } }, "w": { "dtype": "float32", "shape": [32, 32, 1, 1], "data": { "kind": "constant", "value": 1e-20 } }, "bias": { "dtype": "float32", "shape": [32], "data": { "kind": "constant", "value": 0.0 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 1, 64], "tolerance": 1e-43 } }, "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path." } }, { "name": "f32_im2col_subgroup_matrix_subnormal_outputs_gpu_gap", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest", "notes": "2x1 conv with C=32, K=64, M=32, HW=64 selects the aligned im2col+subgroup-matrix path; normal operands produce finite subnormal outputs." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 2, 64], "data": { "kind": "constant", "value": 1e-20 } }, "w": { "dtype": "float32", "shape": [32, 32, 2, 1], "data": { "kind": "constant", "value": 1e-20 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 1, 64], "tolerance": 1e-43 } }, "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path." } }, { "name": "f32_im2col_subgroup_matrix_bias_subnormal_outputs_gpu_gap", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest", "notes": "Zero-bias companion for the aligned im2col+subgroup-matrix path; the bias epilogue must preserve finite subnormal convolution outputs." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 2, 64], "data": { "kind": "constant", "value": 1e-20 } }, "w": { "dtype": "float32", "shape": [32, 32, 2, 1], "data": { "kind": "constant", "value": 1e-20 } }, "bias": { "dtype": "float32", "shape": [32], "data": { "kind": "constant", "value": 0.0 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 1, 64], "tolerance": 1e-43 } }, "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path." } }, { "name": "f32_im2col_padded_subgroup_matrix_subnormal_outputs_gpu_gap", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest", "notes": "2x1 conv with C=9, K=18 and HW=35 forces the padded im2col+subgroup-matrix path; padding lanes must not erase finite subnormal real outputs." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 9, 2, 35], "data": { "kind": "constant", "value": 1e-20 } }, "w": { "dtype": "float32", "shape": [32, 9, 2, 1], "data": { "kind": "constant", "value": 1e-20 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 1, 35], "tolerance": 1e-43 } }, "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path." } }, { "name": "f32_im2col_padded_subgroup_matrix_bias_subnormal_outputs_gpu_gap", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest", "notes": "Zero-bias companion for the padded im2col+subgroup-matrix path; padded K/N lanes and the bias epilogue must preserve finite subnormal real outputs." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 9, 2, 35], "data": { "kind": "constant", "value": 1e-20 } }, "w": { "dtype": "float32", "shape": [32, 9, 2, 1], "data": { "kind": "constant", "value": 1e-20 } }, "bias": { "dtype": "float32", "shape": [32], "data": { "kind": "constant", "value": 0.0 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 1, 35], "tolerance": 1e-43 } }, "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path." } }, { "name": "f32_subnormal_times_large_scale_1d_gpu_gap", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest", "notes": "A 1D convolution over subnormal activations and large finite weights should accumulate to an ordinary finite output." }, "attrs": { "strides": [1], "pads": [0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 4], "data": { "kind": "values", "values": [1e-39, 2e-39, 5e-39, 1e-38] } }, "w": { "dtype": "float32", "shape": [1, 1, 4], "data": { "kind": "constant", "value": 1e+38 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1], "tolerance": 0.000001, "data": { "kind": "values", "values": [1.7999999523162842] } } }, "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path." } }, { "name": "f32_subnormal_times_large_scale_3d_gpu_gap", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest", "notes": "A 3D convolution over subnormal activations and large finite weights should accumulate to an ordinary finite output." }, "attrs": { "strides": [1, 1, 1], "pads": [0, 0, 0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 2, 2, 2], "data": { "kind": "values", "values": [1e-39, 2e-39, 3e-39, 4e-39, 5e-39, 6e-39, 7e-39, 8e-39] } }, "w": { "dtype": "float32", "shape": [1, 1, 2, 2, 2], "data": { "kind": "constant", "value": 1e+38 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1, 1, 1], "tolerance": 0.000001, "data": { "kind": "values", "values": [3.5999999046325684] } } }, "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal flushes f32 subnormals to zero (FTZ); subnormal-magnitude values cannot survive the GPU arithmetic path." } }, { "name": "dispatch_cliff_nchw_1x1", "attrs": {}, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 4096, 4097], "data": { "kind": "fillFloat32", "sinStep": 0.0009, "cosStep": 0.0007 } }, "w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "constant", "value": 1.25 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 4096, 4097], "tolerance": 0.00001 } } }, { "name": "nchw_no_bias", "attrs": { "strides": [1, 2], "pads": [1, 0, 1, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 2, 4, 5], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.13 } }, "w": { "dtype": "float32", "shape": [3, 2, 3, 2], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.19 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 3, 4, 2], "tolerance": 0.00001 } } }, { "name": "nchw_bias", "attrs": { "strides": [1, 2], "pads": [1, 0, 1, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 2, 4, 5], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.13 } }, "w": { "dtype": "float32", "shape": [3, 2, 3, 2], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.19 } }, "bias": { "dtype": "float32", "shape": [3], "data": { "kind": "fillFloat32", "sinStep": 0.07, "cosStep": 0.23 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 3, 4, 2], "tolerance": 0.00001 } } }, { "name": "nchw_dilated_kernel", "attrs": { "strides": [1, 1], "dilations": [2, 2], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 5, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/nchw_dilated_kernel_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 0.0, -1.0, 2.0, 0.0, -2.0, 1.0, 0.0, -1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1, 1], "tolerance": 0.000001 } } }, { "name": "nchw_grouped_two_groups", "attrs": { "group": 2, "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 2, 3, 3], "data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0] } }, "w": { "dtype": "float32", "shape": [2, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0] } }, "bias": { "dtype": "float32", "shape": [2], "data": { "kind": "values", "values": [0.5, -0.5] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 2, 2], "tolerance": 0.000001 } } }, { "name": "ort_conv2d_asymmetric_padding_all_ones", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_4" }, "attrs": { "strides": [1, 1], "pads": [1, 2, 3, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 4, 3, 3], "data": { "kind": "constant", "value": 1.0 } }, "w": { "dtype": "float32", "shape": [2, 4, 2, 2], "data": { "kind": "constant", "value": 1.0 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 6, 5], "tolerance": 0.000001 } } }, { "name": "backend_basic_with_padding", "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 5, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/nchw_dilated_kernel_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 5, 5], "tolerance": 0.000001 } } }, { "name": "backend_basic_without_padding", "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 5, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/nchw_dilated_kernel_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 3], "tolerance": 0.000001 } } }, { "name": "backend_stride2_with_padding", "attrs": { "strides": [2, 2], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 7, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/backend_stride2_with_padding_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 4, 3], "tolerance": 0.000001 } } }, { "name": "backend_stride2_h_padding_only", "attrs": { "strides": [2, 2], "pads": [1, 0, 1, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 7, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/backend_stride2_with_padding_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 4, 2], "tolerance": 0.000001 } } }, { "name": "ort_zero_batch_dim", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.ConvDimWithZero" }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [0, 2, 4, 4], "data": { "kind": "values", "values": [] } }, "w": { "dtype": "float32", "shape": [2, 2, 1, 1], "data": { "kind": "values", "values": [1.0, 2.0, 1.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [0, 2, 4, 4], "tolerance": 0 } } }, { "name": "zero_batch_dim_3x3_kernel", "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [0, 2, 4, 4], "data": { "kind": "values", "values": [] } }, "w": { "dtype": "float32", "shape": [2, 2, 3, 3], "data": { "kind": "constant", "value": 1.0 } } }, "outputs": { "y": { "dtype": "float32", "shape": [0, 2, 2, 2], "tolerance": 0 } } }, { "name": "ort_conv2d_group_no_bias", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_group" }, "attrs": { "group": 2, "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 2, 3, 3], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_conv2d_group_no_bias_input_x" } } }, "w": { "dtype": "float32", "shape": [2, 1, 1, 1], "data": { "kind": "values", "values": [1.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 3, 3], "tolerance": 0.000001 } } }, { "name": "ort_conv2d_bias_basic", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_Bias_1" }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] } }, "w": { "dtype": "float32", "shape": [2, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } }, "bias": { "dtype": "float32", "shape": [2], "data": { "kind": "values", "values": [1.0, -1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 2, 2], "tolerance": 0.000001 } } }, { "name": "ort_conv2d_group_2x2_batch2_no_bias", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_3" }, "attrs": { "group": 2, "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [2, 2, 3, 3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 1.0, 2.0, 3.0, 7.0, 8.0, 9.0, 4.0, 5.0, 6.0, 13.0, 14.0, 15.0, 10.0, 11.0, 12.0, 16.0, 17.0, 18.0] } }, "w": { "dtype": "float32", "shape": [2, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 2.0, 4.0, 6.0, 8.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 2, 2], "tolerance": 0.000001 } } }, { "name": "ort_depthwise2d_bias_group2", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Depthwise2D_Bias_Group2" }, "attrs": { "group": 2, "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 2, 3, 3], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_conv2d_group_no_bias_input_x" } } }, "w": { "dtype": "float32", "shape": [2, 1, 1, 1], "data": { "kind": "values", "values": [1.0, 2.0] } }, "bias": { "dtype": "float32", "shape": [2], "data": { "kind": "values", "values": [1.0, -1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 3, 3], "tolerance": 0.000001 } } }, { "name": "ort_depthwise2d_bias_group1_single", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Depthwise2D_Bias_Group1_Issue18992" }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } }, "w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [0.5] } }, "bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.5] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1, 1], "tolerance": 0.000001 } } }, { "name": "ort_depthwise2d_bias_group1_packed32", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Depthwise2D_Bias_Group1_Issue18992_Packed", "notes": "Packed-output-channel regression with 32 output channels and bias." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [1.0] } }, "w": { "dtype": "float32", "shape": [32, 1, 1, 1], "data": { "kind": "constant", "value": 0.5 } }, "bias": { "dtype": "float32", "shape": [32], "data": { "kind": "constant", "value": 0.5 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 1, 1], "tolerance": 0.000001 } } }, { "name": "ort_depthwise2d_bias_group1_kernel8_packed32", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Depthwise2D_Bias_Group1_Issue18992_Packed4", "notes": "Packed-output-channel regression with a full 8x8 kernel and 32 output channels." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 8, 8], "data": { "kind": "constant", "value": 1.0 } }, "w": { "dtype": "float32", "shape": [32, 1, 8, 8], "data": { "kind": "constant", "value": 0.5 } }, "bias": { "dtype": "float32", "shape": [32], "data": { "kind": "constant", "value": 0.5 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 1, 1], "tolerance": 0.000001 } } }, { "name": "onnx_backend_basic_conv_with_padding", "attrs": { "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 5, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/nchw_dilated_kernel_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 5, 5] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding" } }, { "name": "onnx_backend_basic_conv_without_padding", "attrs": { "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 5, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/nchw_dilated_kernel_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 3] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_basic_conv_without_padding" } }, { "name": "onnx_backend_conv_with_strides_and_asymmetric_padding", "attrs": { "strides": [2, 2], "pads": [1, 0, 1, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 7, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/backend_stride2_with_padding_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 4, 2] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_conv_with_strides_and_asymmetric_padding" } }, { "name": "onnx_backend_conv_with_strides_no_padding", "attrs": { "strides": [2, 2], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 7, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/backend_stride2_with_padding_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 2] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_conv_with_strides_no_padding" } }, { "name": "onnx_backend_conv_with_strides_padding", "attrs": { "strides": [2, 2], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 7, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/backend_stride2_with_padding_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 4, 3] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_conv_with_strides_padding" } }, { "name": "onnx_backend_conv_with_autopad_same_lower_explicit_pads", "attrs": { "strides": [2, 2], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 5, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/nchw_dilated_kernel_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 3], "tolerance": 0 } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_conv_with_autopad_same", "notes": "Translated SAME_LOWER to equivalent symmetric explicit pads for this 5x5 stride-2 fixture." } }, { "name": "ort_conv2d_1x1_splitk_no_bias", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_MatMul_SplitK_No_Bias", "notes": "Matmul-like 1x1 Conv topology with K=768 accumulation; deterministic fixture data replaces ORT's random Gaussian inputs." }, "inputs": { "x": { "dtype": "float32", "shape": [1, 768, 16, 1], "data": { "kind": "fillFloat32", "scale": 0.025, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [64, 768, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.025, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 16, 1], "tolerance": 0.0001 } }, "attrs": {} }, { "name": "ort_conv2d_1x1_splitk_with_bias", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_MatMul_SplitK_With_Bias", "notes": "Matmul-like 1x1 Conv topology with K=768 accumulation and output-channel bias; deterministic fixture data replaces ORT's random Gaussian inputs." }, "inputs": { "x": { "dtype": "float32", "shape": [1, 768, 16, 1], "data": { "kind": "fillFloat32", "scale": 0.025, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [64, 768, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.025, "sinStep": 0.011, "cosStep": 0.023 } }, "bias": { "dtype": "float32", "shape": [64], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.013 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 16, 1], "tolerance": 0.0001 } }, "attrs": {} }, { "name": "ort_conv2d_1x1_batched_no_bias", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_MatMul_Batched_No_Bias", "notes": "Batched matmul-like 1x1 Conv topology with batch=2 and K=768; deterministic fixture data replaces ORT's random Gaussian inputs." }, "inputs": { "x": { "dtype": "float32", "shape": [2, 768, 16, 1], "data": { "kind": "fillFloat32", "scale": 0.025, "sinStep": 0.013, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [64, 768, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.025, "sinStep": 0.019, "cosStep": 0.007 } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 16, 1], "tolerance": 0.0001 } }, "attrs": {} }, { "name": "ort_conv2d_1x1_batched_with_bias", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_MatMul_Batched_With_Bias", "notes": "Batched matmul-like 1x1 Conv topology with batch=2, K=768, and output-channel bias; deterministic fixture data replaces ORT's random Gaussian inputs." }, "inputs": { "x": { "dtype": "float32", "shape": [2, 768, 16, 1], "data": { "kind": "fillFloat32", "scale": 0.025, "sinStep": 0.013, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [64, 768, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.025, "sinStep": 0.019, "cosStep": 0.007 } }, "bias": { "dtype": "float32", "shape": [64], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.023, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 16, 1], "tolerance": 0.0001 } }, "attrs": {} }, { "name": "ort_conv2d_pointwise_7x7_no_bias", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_2" }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 7, 7], "data": { "kind": "values", "values": [0.45246148109436035, 0.15498268604278564, 0.11199361085891724, -0.39421093463897705, 0.2626858949661255, 0.13414543867111206, -0.27184486389160156, -0.43028733134269714, -0.26825493574142456, 0.3893144130706787, -0.13631996512413025, -0.009590476751327515, -0.48771554231643677, -0.25256502628326416, -0.2812897562980652, 0.4043201804161072, 0.07795023918151855, 0.326981782913208, 0.13114392757415771, -0.4416425824165344, 0.12446999549865723, 0.36739975214004517, 0.1698915958404541, 0.2008744478225708, 0.23339951038360596, 0.38613730669021606, 0.11117297410964966, 0.3877097964286804, 0.20812749862670898, -0.34297940135002136, -0.029246658086776733, -0.20483523607254028, -0.19244328141212463, -0.11104947328567505, -0.32830488681793213, -0.01800677180290222, 0.3618946671485901, -0.40949052572250366, -0.18248388171195984, -0.3349453806877136, -0.34091079235076904, 0.006497859954833984, 0.4537564516067505, 0.08006560802459717, -0.14788749814033508, 0.034442365169525146, -0.33322954177856445, 0.06049239635467529, 0.42619407176971436] } }, "w": { "dtype": "float32", "shape": [1, 1, 1, 1], "data": { "kind": "values", "values": [-0.4406261742115021] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 7, 7], "tolerance": 0.000001 } }, "attrs": {} }, { "name": "ort_fp16_pointwise_2d_projected_f32", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_fp16_test.cc", "test": "ConvFp16Test.Pointwise_2D", "notes": "Float32 projection of the upstream float16 case, preserving its 1x1 multi-channel shape and values." }, "inputs": { "x": { "dtype": "float32", "shape": [1, 3, 3, 3], "data": { "kind": "values", "values": [-9.0, 1.0, 2.0, -5.0, 3.0, -2.0, 5.0, -3.0, 1.0, 1.0, 8.0, -4.0, -1.0, 6.0, 7.0, -1.0, 4.0, -5.0, -9.0, 1.0, 2.0, -5.0, 3.0, -2.0, 5.0, -3.0, 1.0] } }, "w": { "dtype": "float32", "shape": [2, 3, 1, 1], "data": { "kind": "values", "values": [2.0, -3.0, 0.5, 0.25, -2.0, -0.75] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 3, 3], "tolerance": 0.000001 } }, "attrs": {} }, { "name": "ort_fp16_conv2d_asymmetric_stride_projected_f32", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_fp16_test.cc", "test": "ConvFp16Test.Conv2D_1", "notes": "Float32 projection of the upstream float16 case, preserving its asymmetric 2D pads and stride." }, "attrs": { "strides": [3, 1], "pads": [1, 1, 1, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [2, 1, 1, 1], "data": { "kind": "values", "values": [-0.0910644531, -0.325195312] } }, "w": { "dtype": "float32", "shape": [2, 1, 3, 3], "data": { "kind": "values", "values": [0.431152344, -0.125610352, 0.448974609, -0.310058594, 0.135253906, -0.0679321289, 0.22668457, -0.173950195, -0.312988281, -0.315429688, 0.065612793, 0.265625, 0.413574219, 0.312255859, -0.375976562, -0.00571060181, 0.349121094, 0.450927734] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 1, 2], "tolerance": 0.000001 } } }, { "name": "ort_conv1d_single_kernel_default_attrs", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv1D_1_DefaultStridesAndDilations" }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 7], "data": { "kind": "values", "values": [-0.21559301018714905, 0.4691687822341919, 0.4426700472831726, -0.4517466723918915, -0.05216419696807861, 0.29067182540893555, 0.251010000705719] } }, "w": { "dtype": "float32", "shape": [1, 1, 1], "data": { "kind": "values", "values": [0.24472862482070923] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 7], "tolerance": 0.000001, "data": { "kind": "values", "values": [-0.052761781960725784, 0.11481902748346329, 0.10833403468132019, -0.11055534332990646, -0.012766072526574135, 0.07113571465015411, 0.061429332941770554] } } }, "attrs": {} }, { "name": "ort_added_conv1d_single_kernel_explicit_attrs", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv1D_1", "notes": "Same data as ORT's default-attribute Conv1D smoke case, but keeps explicit stride/dilation/pad attributes to exercise attribute mapping." }, "attrs": { "strides": [1], "dilations": [1], "pads": [0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 7], "data": { "kind": "values", "values": [-0.21559301018714905, 0.4691687822341919, 0.4426700472831726, -0.4517466723918915, -0.05216419696807861, 0.29067182540893555, 0.251010000705719] } }, "w": { "dtype": "float32", "shape": [1, 1, 1], "data": { "kind": "values", "values": [0.24472862482070923] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 7], "tolerance": 0.000001, "data": { "kind": "values", "values": [-0.052761781960725784, 0.11481902748346329, 0.10833403468132019, -0.11055534332990646, -0.012766072526574135, 0.07113571465015411, 0.061429332941770554] } } } }, { "name": "conv1d_f16_audio_feature", "provenance": { "source": "Manifest/schema gap regression", "notes": "Compact half-precision audio-feature convolution covering the unified, dtype-generic NCW fallback." }, "attrs": { "strides": [1], "dilations": [1], "pads": [1, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 2, 8], "data": { "kind": "values", "values": [0.5, -0.25, 0.75, 1.0, -0.5, 0.125, 0.25, -0.75, -0.5, 0.25, 0.5, -1.0, 0.75, -0.125, 0.375, 0.625] } }, "w": { "dtype": "float16", "shape": [3, 2, 3], "data": { "kind": "values", "values": [0.25, -0.5, 0.125, -0.25, 0.5, 0.75, -0.125, 0.375, 0.625, 0.5, -0.25, 0.125, 0.75, 0.25, -0.5, -0.375, 0.625, 0.25] } }, "bias": { "dtype": "float16", "shape": [3], "data": { "kind": "values", "values": [0.125, -0.25, 0.5] } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 3, 8], "tolerance": 0, "data": { "kind": "values", "values": [-0.21875, 1.09375, -0.75, -0.3125, 1.171875, 0.0, 0.625, 0.78125, -0.0625, -0.1875, 0.5625, 0.3125, -1.1875, 0.46875, -0.71875, -0.53125, 0.5, 0.90625, -0.03125, 0.9375, 1.875, -0.234375, 1.46875, 0.75] } } } }, { "name": "ort_added_conv1d_asymmetric_padding_bias", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv1D_asymmetric_padding" }, "attrs": { "strides": [1], "dilations": [1], "pads": [1, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } }, "w": { "dtype": "float32", "shape": [1, 1, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0] } }, "bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2], "tolerance": 0, "data": { "kind": "values", "values": [3.0, 6.0] } } } }, { "name": "ort_conv1d_dilated_strided_padding", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv1D_2", "notes": "Valid rank-3 Conv1D with dilation, stride, and symmetric padding." }, "attrs": { "strides": [2], "dilations": [2], "pads": [2, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [3, 1, 8], "data": { "kind": "values", "values": [0.11094123125076294, -0.0038032233715057373, 0.3896123170852661, 0.33259105682373047, 0.02794349193572998, -0.08360505104064941, -0.4100455045700073, -0.09502679109573364, -0.11361867189407349, -0.025495320558547974, 0.3696536421775818, 0.3529144525527954, -0.34991076588630676, -0.22024285793304443, 0.23085933923721313, -0.4575521945953369, -0.17685726284980774, -0.06030535697937012, -0.3996139168739319, -0.19385704398155212, -0.10454908013343811, -0.14503943920135498, -0.31941986083984375, -0.15372398495674133] } }, "w": { "dtype": "float32", "shape": [2, 1, 2], "data": { "kind": "values", "values": [0.13225573301315308, 0.09750443696975708, 0.3469849228858948, 0.4743430018424988] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 2, 5], "tolerance": 0.000001, "data": { "kind": "values", "values": [0.010817262344062328, 0.05266154557466507, 0.054253075271844864, -0.03628557175397873, -0.05423086881637573, 0.05262419581413269, 0.22330480813980103, 0.14844439923763275, -0.1848062425851822, -0.14227961003780365, -0.011078324168920517, 0.02101614698767662, 0.014770962297916412, -0.023767895996570587, 0.03053247183561325, -0.053894221782684326, 0.13591864705085754, -0.03771348297595978, -0.011907249689102173, 0.08010470867156982, -0.01724436692893505, -0.06235451623797417, -0.06304522603750229, -0.044972069561481476, -0.042245108634233475, -0.08389100432395935, -0.2509208619594574, -0.18825212121009827, -0.18779152631759644, -0.11083387583494186] } } } }, { "name": "ort_conv1d_bias_dilated_stride", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv1D_Bias" }, "attrs": { "strides": [3], "dilations": [2], "pads": [1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [2, 2, 9], "data": { "kind": "values", "values": [0.4582272171974182, 0.3877705931663513, -0.05413919687271118, -0.3013981878757477, 0.19299334287643433, -0.4758569598197937, 0.4670986533164978, 0.4078403115272522, 0.24010121822357178, 0.41645896434783936, -0.038333237171173096, 0.22969317436218262, 0.3565492033958435, 0.12812334299087524, 0.10096627473831177, 0.25682520866394043, 0.41700226068496704, 0.34114283323287964, -0.429997980594635, 0.3545404076576233, 0.40339237451553345, 0.10174298286437988, 0.45713120698928833, 0.08574831485748291, 0.38086581230163574, 0.16378509998321533, 0.12321442365646362, -0.19936135411262512, 0.26019394397735596, -0.18406429886817932, 0.3110783100128174, 0.15553230047225952, -0.14629846811294556, -0.1779327094554901, -0.01390346884727478, -0.09264758229255676] } }, "w": { "dtype": "float32", "shape": [1, 2, 1], "data": { "kind": "values", "values": [-0.17206084728240967, 0.3236315846443176] } }, "bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.37892162799835205] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 4], "tolerance": 0.000011, "data": { "kind": "values", "values": [0.37892162799835205, 0.4625728130340576, 0.4934738576412201, 0.44801419973373413, 0.37892162799835205, 0.2499445676803589, 0.31682088971138, 0.32773756980895996] } } } }, { "name": "ort_conv3d_pointwise_bias", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv3D_Bias", "notes": "Compact ORT-valid pointwise adaptation that preserves rank-5 shape and optional bias semantics." }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 2, 2, 2], "data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] } }, "w": { "dtype": "float32", "shape": [1, 1, 1, 1, 1], "data": { "kind": "values", "values": [2.0] } }, "bias": { "dtype": "float32", "shape": [1], "data": { "kind": "values", "values": [0.5] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2, 2], "data": { "kind": "values", "values": [0.5, 2.5, 4.5, 6.5, 8.5, 10.5, 12.5, 14.5] }, "tolerance": 0 } }, "attrs": {} }, { "name": "ort_conv3d_padded_kernel", "attrs": { "pads": [1, 1, 1, 1, 1, 1] }, "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv3D_1", "notes": "Compact ORT-valid 2x2x2 kernel adaptation with explicit 3D pads." }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 2, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] } }, "w": { "dtype": "float32", "shape": [1, 1, 2, 2, 2], "data": { "kind": "values", "values": [1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 3, 3], "data": { "kind": "values", "values": [1.0, 2.0, 0.0, 3.0, 5.0, 2.0, 0.0, 3.0, 4.0, 6.0, 8.0, 0.0, 10.0, 18.0, 8.0, 0.0, 10.0, 12.0, 5.0, 6.0, 0.0, 7.0, 13.0, 6.0, 0.0, 7.0, 8.0] }, "tolerance": 0 } } }, { "name": "ort_added_conv3d_stride2_asymmetric_padding_compact", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv3D_2", "notes": "Compact rank-5 adaptation of ORT's padded stride-2 3D Conv case; isolates output-shape and front/top/left pad indexing." }, "attrs": { "strides": [2, 2, 2], "pads": [1, 1, 1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 2, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] } }, "w": { "dtype": "float32", "shape": [1, 1, 1, 1, 1], "data": { "kind": "values", "values": [0.5] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2, 2], "tolerance": 0, "data": { "kind": "values", "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0] } } } }, { "name": "ort_conv2d_same_upper_stride2_asymmetric_padding", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_AutoPad_SAME_UPPER_Stride2", "notes": "Translated SAME_UPPER with stride=2 to equivalent explicit bottom/right pads." }, "attrs": { "strides": [2, 2], "pads": [0, 0, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 4, 4], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_conv2d_same_upper_stride2_asymmetric_padding_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0, "data": { "kind": "values", "values": [54.0, 45.0, 72.0, 54.0] } } } }, { "name": "ort_conv2d_asymmetric_padding_stride", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_1" }, "attrs": { "strides": [3, 1], "pads": [1, 1, 1, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [2, 1, 1, 1], "data": { "kind": "values", "values": [-0.09103918075561523, -0.32513630390167236] } }, "w": { "dtype": "float32", "shape": [2, 1, 3, 3], "data": { "kind": "values", "values": [0.4312484860420227, -0.12559029459953308, 0.44889551401138306, -0.3100617825984955, 0.13522827625274658, -0.06791308522224426, 0.22671669721603394, -0.17391827702522278, -0.31299442052841187, -0.31545522809028625, 0.06560015678405762, 0.2656586766242981, 0.41363757848739624, 0.31231558322906494, -0.376018226146698, -0.005708813667297363, 0.34922850131988525, 0.45095211267471313] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 1, 2], "tolerance": 0.000001, "data": { "kind": "values", "values": [-0.012311071157455444, 0.02822777070105076, -0.028432954102754593, -0.037657227367162704, -0.04396762326359749, 0.10081233829259872, -0.10154513269662857, -0.13448859751224518] } } } }, { "name": "conv_1x1_gemm_subgroup_aligned", "inputs": { "x": { "dtype": "float32", "shape": [2, 64, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [128, 64, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.007 } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 128, 16, 16], "tolerance": 0.0001 } }, "attrs": {} }, { "name": "conv_1x1_gemm_subgroup_aligned_bias", "inputs": { "x": { "dtype": "float32", "shape": [2, 64, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [128, 64, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.007 } }, "bias": { "dtype": "float32", "shape": [128], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.023, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 128, 16, 16], "tolerance": 0.0001 } }, "attrs": {} }, { "name": "conv_3x3_im2col_gemm_aligned", "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [64, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 16, 16], "tolerance": 0.0001 } } }, { "name": "conv_3x3_im2col_gemm_dense_c256_8x8", "provenance": { "notes": "Compact companion for wide 3x3 Conv bench cases such as flux2vae-dec-mid-512c-64x64-k3 and flux2vae-dec-up1-512c-128x128-k3, preserving the large K/M im2col-subgroup regime." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 256, 8, 8], "data": { "kind": "fillFloat32", "scale": 0.16, "sinStep": 0.013, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [256, 256, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.015, "sinStep": 0.007, "cosStep": 0.019 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 256, 8, 8], "tolerance": 0.006, "relTolerance": 0.006 } } }, { "name": "conv_3x3_im2col_gemm_aligned_bias", "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [64, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } }, "bias": { "dtype": "float32", "shape": [64], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.013 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 16, 16], "tolerance": 0.0001 } } }, { "name": "conv_3x3_stride2_im2col_gemm_aligned", "attrs": { "strides": [2, 2], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 31, 31], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [64, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 16, 16], "tolerance": 0.0001 } } }, { "name": "conv_5x5_im2col_gemm_aligned", "attrs": { "strides": [1, 1], "pads": [2, 2, 2, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [64, 32, 5, 5], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 16, 16], "tolerance": 0.0001 } } }, { "name": "conv_f16_3x3_pad1", "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 32, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float16", "shape": [64, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 16, 16], "tolerance": 0.002, "relTolerance": 0.01 } } }, { "name": "conv_f16_1x1_gemm_subgroup_aligned", "inputs": { "x": { "dtype": "float16", "shape": [1, 64, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.029 } }, "w": { "dtype": "float16", "shape": [128, 64, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.007 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 128, 16, 16], "tolerance": 0.002, "relTolerance": 0.01 } }, "attrs": {} }, { "name": "conv_f16_1x1_gemm_subgroup_aligned_bias", "inputs": { "x": { "dtype": "float16", "shape": [1, 64, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.029 } }, "w": { "dtype": "float16", "shape": [128, 64, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.007 } }, "bias": { "dtype": "float16", "shape": [128], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.023, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 128, 16, 16], "tolerance": 0.002, "relTolerance": 0.01 } }, "attrs": {} }, { "name": "conv_3x3_n_unaligned_14x14", "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 14, 14], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [64, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 14, 14], "tolerance": 0.0001 } } }, { "name": "conv_3x3_n_unaligned_14x14_bias", "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 14, 14], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [64, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } }, "bias": { "dtype": "float32", "shape": [64], "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.03, "cosStep": 0.05 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 14, 14], "tolerance": 0.0001 } } }, { "name": "conv_7x7_stem_k_unaligned", "attrs": { "strides": [1, 1], "pads": [3, 3, 3, 3] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 3, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [64, 3, 7, 7], "data": { "kind": "fillFloat32", "scale": 0.15, "sinStep": 0.013, "cosStep": 0.021 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 16, 16], "tolerance": 0.0001 } } }, { "name": "conv_3x3_both_unaligned_3ch_14x14", "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 3, 14, 14], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.023, "cosStep": 0.017 } }, "w": { "dtype": "float32", "shape": [64, 3, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.011, "cosStep": 0.027 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 14, 14], "tolerance": 0.0001 } } }, { "name": "conv_3x3_n49_7x7", "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 7, 7], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.015, "cosStep": 0.033 } }, "w": { "dtype": "float32", "shape": [64, 64, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.15, "sinStep": 0.009, "cosStep": 0.025 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 7, 7], "tolerance": 0.0001 } } }, { "name": "conv_3x3_stride2_n_unaligned_28to14", "attrs": { "strides": [2, 2], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 28, 28], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [64, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 14, 14], "tolerance": 0.0001 } } }, { "name": "ort_conv_2d_autopad_same_upper_stride2", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv2D_AutoPad_SAME_UPPER_Stride2", "notes": "Raw ONNX auto_pad attribute on a stride-2 fixture; the extra pad is assigned to bottom/right." }, "attrs": { "auto_pad": "SAME_UPPER", "strides": [2, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 4, 4], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_conv2d_same_upper_stride2_asymmetric_padding_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "constant", "value": 1.0 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2], "tolerance": 0, "data": { "kind": "values", "values": [54.0, 45.0, 72.0, 54.0] } } } }, { "name": "ort_conv_2d_autopad_same_lower_stride2", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_op_test.cc", "test": "ConvTest.Conv_AutoPad_with_non_default_strides", "notes": "Raw ONNX auto_pad attribute on a stride-2 fixture; the extra pad is assigned to top/left." }, "attrs": { "auto_pad": "SAME_LOWER", "strides": [2, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 5, 5], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/nchw_dilated_kernel_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 3, 3], "data": { "kind": "constant", "value": 1.0 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3, 3], "tolerance": 0, "data": { "kind": "values", "values": [12.0, 27.0, 24.0, 63.0, 108.0, 81.0, 72.0, 117.0, 84.0] } } } }, { "name": "ort_fp16_conv2d_bias_1", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_fp16_test.cc", "test": "ConvFp16Test.Conv2D_Bias_1", "notes": "Direct f16 adaptation of ORT's compact 2-output-channel bias case; outputs are exact f16 integers." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 1, 3, 3], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] } }, "w": { "dtype": "float16", "shape": [2, 1, 2, 2], "data": { "kind": "values", "values": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] } }, "bias": { "dtype": "float16", "shape": [2], "data": { "kind": "values", "values": [1.0, -1.0] } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 2, 2, 2], "tolerance": 0, "data": { "kind": "values", "values": [13.0, 17.0, 25.0, 29.0, 11.0, 15.0, 23.0, 27.0] } } } }, { "name": "ort_fp16_conv2d_bias_asymmetric_stride", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_fp16_test.cc", "test": "ConvFp16Test.Conv2D_Bias_2", "notes": "Covers f16 bias with asymmetric explicit pads and non-unit strides from ORT's handwritten Conv fp16 suite." }, "attrs": { "strides": [2, 3], "pads": [1, 2, 3, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 2, 6, 6], "data": { "kind": "values", "values": [-0.625, 0.4375, 0.0625, -0.3125, -0.6875, 0.375, 0.0625, -0.375, 0.6875, 0.3125, -0.0625, -0.4375, 0.625, 0.25, -0.125, -0.5, 0.5625, 0.1875, -0.1875, -0.5625, 0.5, 0.125, -0.25, -0.625, 0.4375, 0.0625, -0.3125, -0.6875, 0.375, 0.25, -0.375, 0.6875, 0.3125, -0.0625, -0.4375, 0.625, 0.25, -0.125, -0.5, 0.5625, 0.1875, -0.1875, -0.5625, 0.5, 0.125, -0.25, -0.625, 0.4375, 0.0625, -0.3125, -0.6875, 0.375, 0.125, -0.375, 0.6875, 0.3125, -0.0625, -0.4375, 0.625, 0.25, -0.125, -0.5, 0.5625, 0.1875, -0.1875, -0.5625, 0.5, 0.125, -0.25, -0.625, 0.4375, 0.0625] } }, "w": { "dtype": "float16", "shape": [1, 2, 4, 4], "data": { "kind": "values", "values": [-0.3125, -0.6875, 0.375, 0.025, -0.375, 0.6875, 0.3125, -0.0625, -0.4375, 0.625, 0.25, -0.125, -0.5, 0.5625, 0.1875, -0.1875, -0.5625, 0.5, 0.125, -0.25, -0.625, 0.4375, 0.0625, -0.3125, -0.6875, 0.375, -0.125, -0.375, 0.6875, 0.3125, -0.0625, -0.4375] } }, "bias": { "dtype": "float16", "shape": [1], "data": { "kind": "values", "values": [-0.8125] } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 1, 4, 2], "tolerance": 0.001, "data": { "kind": "values", "values": [-0.83203125, -1.40625, -0.595312476, -1.93906248, -0.896875024, -1.53750002, -0.904687524, -1.65937495] } } } }, { "name": "ort_fp16_conv2d_group_no_bias", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_fp16_test.cc", "test": "ConvFp16Test.Conv2D_group", "notes": "Direct f16 grouped 1x1 case; verifies group channel offsets in the f16 no-bias kernel." }, "attrs": { "group": 2, "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 2, 3, 3], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_conv2d_group_no_bias_input_x" } } }, "w": { "dtype": "float16", "shape": [2, 1, 1, 1], "data": { "kind": "values", "values": [1.0, 2.0] } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 2, 3, 3], "tolerance": 0, "data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0, 32.0, 34.0] } } } }, { "name": "ort_fp16_depthwise2d_bias_group2", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_fp16_test.cc", "test": "ConvFp16Test.Depthwise2D_Bias_Group2", "notes": "Direct f16 depthwise/grouped bias case from ORT; exercises grouped channel offsets plus per-output-channel bias." }, "attrs": { "group": 2, "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 2, 3, 3], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_conv2d_group_no_bias_input_x" } } }, "w": { "dtype": "float16", "shape": [2, 1, 1, 1], "data": { "kind": "values", "values": [1.0, 2.0] } }, "bias": { "dtype": "float16", "shape": [2], "data": { "kind": "values", "values": [1.0, -1.0] } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 2, 3, 3], "tolerance": 0, "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 17.0, 19.0, 21.0, 23.0, 25.0, 27.0, 29.0, 31.0, 33.0] } } } }, { "name": "ort_fp16_zero_batch_dim", "provenance": { "source": "onnxruntime/test/providers/cpu/nn/conv_fp16_test.cc", "test": "ConvFp16Test.ConvDimWithZero", "notes": "Valid f16 zero-batch Conv from ORT; output has zero elements but a fully specified rank-4 shape." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float16", "shape": [0, 2, 4, 4], "data": { "kind": "values", "values": [] } }, "w": { "dtype": "float16", "shape": [2, 2, 1, 1], "data": { "kind": "values", "values": [1.0, 2.0, 1.0, 2.0] } } }, "outputs": { "y": { "dtype": "float16", "shape": [0, 2, 4, 4], "tolerance": 0 } } }, { "name": "conv_f16_3x3_n_unaligned_14x14", "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 32, 14, 14], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float16", "shape": [64, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 14, 14], "tolerance": 0.002, "relTolerance": 0.01 } } }, { "name": "conv_f16_autopad_same_upper_no_variant", "attrs": { "auto_pad": "SAME_UPPER", "strides": [1, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 16, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.015, "cosStep": 0.021 } }, "w": { "dtype": "float16", "shape": [32, 16, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.009, "cosStep": 0.019 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 32, 16, 16], "tolerance": 0.03, "relTolerance": 0.02 } } }, { "name": "conv_autopad_same_upper_bias_no_variant", "attrs": { "auto_pad": "SAME_UPPER", "strides": [1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 16, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.015, "cosStep": 0.021 } }, "w": { "dtype": "float32", "shape": [32, 16, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.009, "cosStep": 0.019 } }, "bias": { "dtype": "float32", "shape": [32], "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.05, "cosStep": 0.07 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 16, 16], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "conv_f16_depthwise_group_cin", "attrs": { "group": 64, "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 64, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float16", "shape": [64, 1, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 16, 16], "tolerance": 0.02, "relTolerance": 0.02 } } }, { "name": "conv_f32_autopad_valid", "attrs": { "auto_pad": "VALID", "strides": [1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 16, 16, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.015, "cosStep": 0.021 } }, "w": { "dtype": "float32", "shape": [32, 16, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.009, "cosStep": 0.019 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 14, 14], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "conv_1x1_gemm_tiled_reg_512x64x1024", "inputs": { "x": { "dtype": "float32", "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.029 }, "shape": [1, 64, 32, 32] }, "w": { "dtype": "float32", "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.007 }, "shape": [512, 64, 1, 1] } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 512, 32, 32], "tolerance": 0.0001 } }, "attrs": {} }, { "name": "conv_1x1_gemm_tiled_reg_bias_512x64x1024", "inputs": { "x": { "dtype": "float32", "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.029 }, "shape": [1, 64, 32, 32] }, "w": { "dtype": "float32", "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.007 }, "shape": [512, 64, 1, 1] }, "bias": { "dtype": "float32", "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.023, "cosStep": 0.017 }, "shape": [512] } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 512, 32, 32], "tolerance": 0.0001 } }, "attrs": {} }, { "name": "grouped_large_kernel_k9_group4_nchw_fallback", "attrs": { "group": 4, "strides": [1, 1], "pads": [4, 4, 4, 4] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 8, 12, 12], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.031, "cosStep": 0.017 } }, "w": { "dtype": "float32", "shape": [8, 2, 9, 9], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.027 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 8, 12, 12], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "grouped_large_kernel_k9_group4_bias_nchw_fallback", "attrs": { "group": 4, "strides": [1, 1], "pads": [4, 4, 4, 4] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 8, 12, 12], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.029, "cosStep": 0.019 } }, "w": { "dtype": "float32", "shape": [8, 2, 9, 9], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.011, "cosStep": 0.023 } }, "bias": { "dtype": "float32", "shape": [8], "data": { "kind": "values", "values": [-0.5, 0.25, 1.0, -1.0, 0.125, 0.75, -0.25, 0.5] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 8, 12, 12], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "grouped_dilated_large_kernel_asym_pad_nchw_fallback", "attrs": { "group": 2, "strides": [1, 1], "dilations": [2, 2], "pads": [2, 3, 4, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 4, 14, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.037, "cosStep": 0.013 } }, "w": { "dtype": "float32", "shape": [4, 2, 8, 8], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.017, "cosStep": 0.029 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 4, 6, 6], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "grouped_dilated_large_kernel_k11_oc4_nchw_fallback", "provenance": { "source": "Realistic grouped/dilated Conv stress geometry", "notes": "Compact companion for conv-f32-group4-k11-dilated-128c-48x48; covers the K11 selection boundary with two OC4 tiles per group." }, "attrs": { "group": 2, "strides": [1, 1], "dilations": [2, 2], "pads": [10, 10, 10, 10] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 4, 24, 24], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.037, "cosStep": 0.013 } }, "w": { "dtype": "float32", "shape": [16, 2, 11, 11], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.017, "cosStep": 0.029 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 16, 24, 24], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "f16_grouped_large_kernel_k9_nchw_f16_fallback", "requires": { "features": ["shader-f16"] }, "attrs": { "group": 4, "strides": [1, 1], "pads": [4, 4, 4, 4] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 8, 12, 12], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.031, "cosStep": 0.017 } }, "w": { "dtype": "float16", "shape": [8, 2, 9, 9], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.027 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 8, 12, 12], "tolerance": 0.02, "relTolerance": 0.02 } } }, { "name": "f16_grouped_large_kernel_k9_oc4_nchw_f16_fallback", "provenance": { "source": "Realistic grouped Conv stress geometry", "notes": "Compact f16 OC4 companion for conv-f16-group8-k9-256c-64x64; two OC4 tiles per group exercise shared-input output-channel tiling." }, "requires": { "features": ["shader-f16"] }, "attrs": { "group": 2, "strides": [1, 1], "pads": [4, 4, 4, 4] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 4, 12, 12], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.031, "cosStep": 0.017 } }, "w": { "dtype": "float16", "shape": [16, 2, 9, 9], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.027 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 16, 12, 12], "tolerance": 0.02, "relTolerance": 0.02 } } }, { "name": "conv3d_depth_dilation2_compact", "provenance": { "source": "ONNX Conv-22 volumetric dilation semantics", "notes": "Covers a non-default depth dilation. Existing 3D fixtures varied depth padding/stride but kept dilationD=1." }, "attrs": { "strides": [1, 1, 1], "dilations": [2, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 4, 2, 2], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_conv2d_same_upper_stride2_asymmetric_padding_input_x" } } }, "w": { "dtype": "float32", "shape": [1, 1, 2, 1, 1], "data": { "kind": "values", "values": [1.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 2, 2, 2], "data": { "kind": "values", "values": [19.0, 22.0, 25.0, 28.0, 31.0, 34.0, 37.0, 40.0] }, "tolerance": 0.000001 } } }, { "name": "grouped_large_kernel_k9_odd_width_tail", "provenance": { "notes": "Uses 16x17 output so the odd-width tail specialization has at least four rows of wide-workgroup spatial work; smaller compact outputs intentionally use direct_unrolled." }, "attrs": { "group": 4, "strides": [1, 1], "pads": [4, 4, 4, 4] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 8, 16, 17], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.031, "cosStep": 0.017 } }, "w": { "dtype": "float32", "shape": [8, 2, 9, 9], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.027 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 8, 16, 17], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "grouped_k3_group4_w4_below_prior_min_kernel", "provenance": { "source": "authored for route coverage", "notes": "A 3x3 grouped convolution above the wide-workgroup spatial floor with a width divisible by four, so it takes grouped_large_kernel_w4. Kernel sizes below 7 could not reach this variant before, so nothing covered the w4 arm at k3." }, "attrs": { "group": 4, "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 8, 16, 20] }, "w": { "dtype": "float32", "shape": [8, 2, 3, 3] } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 8, 16, 20], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "grouped_k3_depthwise_w4_below_prior_min_kernel", "provenance": { "source": "authored for route coverage", "notes": "Depthwise 3x3, the most common grouped shape in mobile vision backbones, on the same w4 arm." }, "attrs": { "group": 8, "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 8, 16, 20] }, "w": { "dtype": "float32", "shape": [8, 1, 3, 3] } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 8, 16, 20], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "grouped_k3_group4_odd_width_tail_below_prior_min_kernel", "provenance": { "source": "authored for route coverage", "notes": "A 3x3 grouped convolution whose width is not divisible by four, covering the odd-width tail specialization at k3." }, "attrs": { "group": 4, "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 8, 16, 17] }, "w": { "dtype": "float32", "shape": [8, 2, 3, 3] } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 8, 16, 17], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "grouped_large_kernel_k9_dilation8_span_over_cap", "provenance": { "source": "ONNX Conv-22 dilations semantics (per-axis dilations [1, 8])", "notes": "Grouped 7x9 conv whose retained input-column span (kernelW-1)*dilationW + 1 + 3*strideW = 65 exceeds GROUPED_MAX_REGISTER_SPAN (64), so the grouped wide-output route must render its per-tap bounds-tested column form instead of the row-window register form; every pre-existing grouped fixture has span <= 24. Asymmetric dilations are valid ONNX (dilations is per spatial axis). Geometry keeps all nine width taps live while leaving kw=0 out of range at ow<2 and kw=8 out of range at ow>=14, and the 7-tall window off both height edges, so the per-tap column and row guards are exercised in both directions." }, "attrs": { "group": 2, "strides": [1, 1], "dilations": [1, 8], "pads": [3, 2, 3, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 4, 16, 76], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.031, "cosStep": 0.017 } }, "w": { "dtype": "float32", "shape": [4, 2, 7, 9], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.027 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 4, 16, 16], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "grouped_large_kernel_k9_dilation8_stride2_span_over_cap_tail", "provenance": { "source": "ONNX Conv-22 strides/dilations semantics (strides [1, 2], dilations [1, 8])", "notes": "Same over-cap span regime as grouped_large_kernel_k9_dilation8_span_over_cap (span = 8*8 + 1 + 3*2 = 71 > 64) but with strideW = 2 and an output width of 15. The per-tap form spaces its four lanes by lane*strideW, which folds to lane whenever strideW is 1, so strideW = 2 makes a dropped factor observable; the non-multiple-of-four width also exercises the masked tail epilogue. Output 18x15 = 270 keeps the wide-output route's spatial minimum." }, "attrs": { "group": 2, "strides": [1, 2], "dilations": [1, 8], "pads": [3, 2, 3, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 2, 18, 90], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.029, "cosStep": 0.019 } }, "w": { "dtype": "float32", "shape": [2, 1, 7, 9], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 18, 15], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "conv1d_aligned_sgmat_k3_s1_p1_c32m128_w1024", "provenance": { "notes": "Whisper-stem-shaped NCW conv with K=96 and N=1024; covers aligned materialized subgroup-matrix Conv1d on the full tier and the register-tiled/scalar NCW fallbacks." }, "attrs": { "strides": [1], "pads": [1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 1024], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [128, 32, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.007 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 128, 1024], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "conv1d_tiled_reg_bias_k3_s2_p1_c16m128_w2047", "provenance": { "notes": "Whisper-stem-shaped strided NCW conv (k=3, s=2, p=1) with bias and an odd input width, exercising padded materialized im2col addressing, the bias epilogue, and reduced-feature fallbacks." }, "attrs": { "strides": [2], "pads": [1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 16, 2047], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.023 } }, "w": { "dtype": "float32", "shape": [128, 16, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.031 } }, "bias": { "dtype": "float32", "shape": [128], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.023, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 128, 1024], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "conv1d_tiled_reg_dilation2_c24m192_w1030", "provenance": { "notes": "Dilated (d=2, p=2) NCW conv on a non-multiple-of-64 width; materialized and implicit im2col address decoding must apply dilation before the pad shift." }, "attrs": { "strides": [1], "dilations": [2], "pads": [2, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 24, 1030], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.021, "cosStep": 0.013 } }, "w": { "dtype": "float32", "shape": [192, 24, 3], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.015, "cosStep": 0.027 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 192, 1030], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "conv1d_tiled_reg_bias_partial_tiles_b2c32m100_w999", "provenance": { "notes": "Batch 2 with outChannels=100 and width 999 so both materialized GEMM axes end in partial tiles; bounds-checked loads and stores must not spill across batch or tile edges." }, "attrs": { "strides": [1], "pads": [1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [2, 32, 999], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.011 } }, "w": { "dtype": "float32", "shape": [100, 32, 3], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.027, "cosStep": 0.009 } }, "bias": { "dtype": "float32", "shape": [100], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 100, 999], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "conv1d_tiled_reg_f16_bias_k3_s1_p1_c16m128_w1024", "provenance": { "notes": "f16 companion covering materialized subgroup-matrix Conv1d and the tiled NCW fallback: operands accumulate in f32 and narrow once at store." }, "attrs": { "strides": [1], "pads": [1, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 16, 1024], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.029 } }, "w": { "dtype": "float16", "shape": [128, 16, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.007 } }, "bias": { "dtype": "float16", "shape": [128], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.023, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 128, 1024], "tolerance": 0.002, "relTolerance": 0.01 } } }, { "name": "grouped_kernel12_wide_forces_nchw_scalar", "provenance": { "notes": "Grouped 2D conv whose kernel width (12) exceeds DIRECT_MAX_KERNEL_SIZE and GROUPED_MAX_KERNEL_SIZE, while group > 1 rules out every im2col/1x1 GEMM path: the only survivor is the scalar NCHW direct kernel." }, "attrs": { "group": 2, "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 2, 1, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.031, "cosStep": 0.017 } }, "w": { "dtype": "float32", "shape": [2, 1, 1, 12], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.027 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 1, 5], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "grouped_kernel12_wide_bias_forces_nchw_scalar", "provenance": { "notes": "Bias companion of the oversized-kernel grouped conv: the bias epilogue must be exercised on the scalar NCHW direct kernel, which is the only path left once kernel width 12 and group > 1 reject the unrolled and GEMM variants." }, "attrs": { "group": 2, "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 2, 1, 16], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.029, "cosStep": 0.019 } }, "w": { "dtype": "float32", "shape": [2, 1, 1, 12], "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.011, "cosStep": 0.023 } }, "bias": { "dtype": "float32", "shape": [2], "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.05, "cosStep": 0.07 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 1, 5], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "conv_8x8_im2col_gemm_tiled_reg_m1_n8192", "provenance": { "notes": "Non-1x1 kernel (8x8, so kernelRows = 64) over a 64x128 output plane: the register-tile thresholds (>= 128 64x64 tiles, spatial >= 1024) are met through the N axis alone with a single output channel, which also keeps the subgroup-matrix paths out (they need outChannels >= 32)." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 71, 135], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [1, 1, 8, 8], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.007 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 64, 128], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "conv_8x8_im2col_gemm_tiled_bias_reg_m1_n8192", "provenance": { "notes": "Bias companion of the N-axis register-tiled im2col GEMM: the 8x8 kernel keeps the 1x1 register-tiled shortcut ineligible, so the bias epilogue runs on the im2col register-tiled GEMM." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 71, 135], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.023 } }, "w": { "dtype": "float32", "shape": [1, 1, 8, 8], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.031 } }, "bias": { "dtype": "float32", "shape": [1], "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.05, "cosStep": 0.07 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 64, 128], "tolerance": 0.0001, "relTolerance": 0.0001 } } }, { "name": "conv3d_im2col_subgroup_matrix_aligned_f32", "provenance": { "notes": "Rank-5 aligned matrix-path coverage. Shape-derived K=C*KD*KH*KW=32 and N=OD*OH*OW=64 exercise the NCDHW im2col producer and f32 subgroup-matrix consumer without relying on a model-specific size." }, "attrs": { "strides": [1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 4, 5, 5, 5], "data": { "kind": "constant", "value": 1.0 } }, "w": { "dtype": "float32", "shape": [32, 4, 2, 2, 2], "data": { "kind": "constant", "value": 0.125 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 4, 4, 4], "tolerance": 0.0002, "relTolerance": 0.0002, "data": { "kind": "constant", "value": 4.0 } } } }, { "name": "conv3d_im2col_subgroup_matrix_aligned_bias_f16", "provenance": { "notes": "F16+bias companion for the general aligned rank-5 matrix path. The geometry is derived from the tensor contract and also validates the scratch-store narrowing epilogue." }, "attrs": { "strides": [1, 1, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 4, 5, 5, 5], "data": { "kind": "constant", "value": 1.0 } }, "w": { "dtype": "float16", "shape": [32, 4, 2, 2, 2], "data": { "kind": "constant", "value": 0.125 } }, "bias": { "dtype": "float16", "shape": [32], "data": { "kind": "constant", "value": 0.5 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 32, 4, 4, 4], "tolerance": 0.01, "relTolerance": 0.01, "data": { "kind": "constant", "value": 4.5 } } } }, { "name": "conv3d_im2col_tiled_reg_large_spatial_f32", "provenance": { "notes": "Rank-5 convolution with N=8*32*32, M=64, and K=8*2*2*2 exercises portable register tiling, NCDHW im2col addressing, and a multi-tap contraction." }, "attrs": { "strides": [1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 8, 9, 33, 33], "data": { "kind": "constant", "value": 1.0 } }, "w": { "dtype": "float32", "shape": [64, 8, 2, 2, 2], "data": { "kind": "constant", "value": 0.015625 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 8, 32, 32], "tolerance": 0.0002, "relTolerance": 0.0002, "data": { "kind": "constant", "value": 1.0 } } } }, { "name": "conv3d_im2col_tiled_bias_reg_large_spatial_f32", "provenance": { "notes": "Bias companion for the portable register-tiled rank-5 path, using the same shape-derived tile eligibility and a separately checkable epilogue." }, "attrs": { "strides": [1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 8, 9, 33, 33], "data": { "kind": "constant", "value": 1.0 } }, "w": { "dtype": "float32", "shape": [64, 8, 2, 2, 2], "data": { "kind": "constant", "value": 0.015625 } }, "bias": { "dtype": "float32", "shape": [64], "data": { "kind": "constant", "value": 0.5 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 8, 32, 32], "tolerance": 0.0002, "relTolerance": 0.0002, "data": { "kind": "constant", "value": 1.5 } } } }, { "name": "conv_3x3_implicit_im2col_aligned", "provenance": { "notes": "Selects implicit_im2col_subgroup_matrix: outputSpatial 4096 meets IMPLICIT_MIN_OUTPUT_SPATIAL and one M tile. K and N both aligned, so every gathered tile is full." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 64, 64], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [32, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 64, 64], "tolerance": 0.0001 } } }, { "name": "conv_3x3_implicit_im2col_m32_bias_bk32", "provenance": { "notes": "Portable implicit-im2col M=32 fixture with K=288: selects the BM32/WG128 bias route and its BK32 carried-gather geometry, including padded border windows." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 64, 64], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float32", "shape": [32, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } }, "bias": { "dtype": "float32", "shape": [32], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 64, 64], "tolerance": 0.0001 } } }, { "name": "conv_3x3_implicit_im2col_m32_bk16_f16_bias_batch2", "provenance": { "notes": "Portable M=32 carried-gather coverage for the remaining specialization edges: K=72 selects BK16, batch=2 exercises the z dispatch and batch base, and f16 X/W/Y plus bias exercise the half-storage path. The 128x256 plane is the conservative N=32768 specialization boundary established by the f32/f16 A/B controls." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [2, 8, 128, 256], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float16", "shape": [32, 8, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } }, "bias": { "dtype": "float16", "shape": [32], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float16", "shape": [2, 32, 128, 256], "tolerance": 0.002, "relTolerance": 0.01 } } }, { "name": "conv_3x3_implicit_im2col_k_n_tails_bias", "provenance": { "notes": "Implicit im2col with BOTH tails live: K = 216 is not a multiple of 32 and outputSpatial = 4225 is not a multiple of 64, so the gather has to zero-fill both and the store has to guard its columns." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 24, 65, 65], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [32, 24, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float32", "shape": [32], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 65, 65], "tolerance": 0.0001 } } }, { "name": "conv_3x3_implicit_im2col_m_tail", "provenance": { "notes": "Implicit im2col with an M tail: 40 output channels over a 32-row tile is two M tiles with 8 valid rows in the second, exercising the row_limit store guard and loadSHMA's zero-fill." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 16, 64, 66], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.023, "cosStep": 0.037 } }, "w": { "dtype": "float32", "shape": [40, 16, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.029 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 40, 64, 66], "tolerance": 0.0001 } } }, { "name": "conv_3x3_stride2_dilation2_implicit_im2col", "provenance": { "notes": "Implicit im2col over a strided, dilated window: the gather computes each tap's source coordinate itself, so stride and dilation are only correct if that arithmetic matches the materialized im2col pass." }, "attrs": { "strides": [2, 2], "dilations": [2, 2], "pads": [2, 2, 2, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 16, 130, 132], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.019 } }, "w": { "dtype": "float32", "shape": [32, 16, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.007, "cosStep": 0.013 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 65, 66], "tolerance": 0.0001 } } }, { "name": "conv_f16_3x3_implicit_im2col", "provenance": { "notes": "Implicit im2col with f16 operands: the gathered value is narrowed to f16 exactly as the materialized f32 cols buffer is on load, so the two paths must agree bit for bit." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 32, 64, 64], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.031 } }, "w": { "dtype": "float16", "shape": [32, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.023 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 32, 64, 64], "tolerance": 0.02, "relTolerance": 0.02 } } }, { "name": "conv_3x3_splitk_im2col_padded_k_n_tails", "tunables": { "TILED_SPLIT_K_MODE": 1 }, "provenance": { "notes": "Split-K over a materialized padded im2col on subgroup-matrix tiers and the portable implicit gather otherwise: 5x7 output is 35 positions, so the un-split GEMM would dispatch ONE workgroup and leave 39 of 40 cores idle. K = 432 and N = 35 exercise the reduction tails in both implementations." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 48, 5, 7], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [64, 48, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 5, 7], "tolerance": 0.0001 } } }, { "name": "conv_3x3_splitk_im2col_padded_bias_m_tail", "provenance": { "notes": "Same starved shape with a bias and an M TAIL: 48 output channels over 32-row tiles pads the partial scratch to 64 rows, so the reduce must ignore the 16 rows the GEMM wrote and the bias must be applied once, in the reduce, not once per slice." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 5, 7], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [48, 64, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float32", "shape": [48], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 48, 5, 7], "tolerance": 0.0001 } } }, { "name": "conv_3x3_splitk_implicit_im2col_k_tail", "provenance": { "notes": "Split-K over the IMPLICIT gather (no materialized columns): 32x34 output clears the implicit path's spatial floor, K = 288 pads to 384 for a 4-way split, and each slice gathers only its own K chunk straight out of NCHW." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 32, 34], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [64, 32, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 32, 34], "tolerance": 0.0001 } } }, { "name": "conv_3x3_splitk_implicit_im2col_bias_stride2_dilation2", "provenance": { "notes": "Split-K implicit gather with a strided, dilated window and a bias, so the carried (in-channel, tap-row, tap-col) decomposition is entered at a non-zero k in every slice but the first." }, "attrs": { "strides": [2, 2], "dilations": [2, 2], "pads": [2, 2, 2, 2] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 66, 68], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [64, 64, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float32", "shape": [64], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 33, 34], "tolerance": 0.0001 } } }, { "name": "conv_3x3_splitk_batch2_z_carries_both_axes", "provenance": { "notes": "Batch of two through split-K: workgroup_id.z carries the slice AND the batch image, so a wrong decomposition writes every slice of image 1 over image 0." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [2, 48, 5, 7], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [64, 48, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float32", "shape": [64], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 5, 7], "tolerance": 0.0001 } } }, { "name": "conv_3x3_tiled_splitk_implicit_batch2_m_n_tails_bias", "tunables": { "TILED_SPLIT_K_MODE": 1 }, "provenance": { "notes": "Portable register-tiled split-K over the implicit NCHW gather. Batch 2 exercises the combined batch/slice z axis; M=48 and N=35 exercise both padded partial axes; K=432 selects BK=16 and does not divide evenly across the eight balanced slices; the bias must be applied exactly once by the shared reduce pass." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float32", "shape": [2, 48, 5, 7], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [48, 48, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float32", "shape": [48], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 48, 5, 7], "tolerance": 0.0001 } } }, { "name": "conv_f16_3x3_splitk_im2col_padded", "tunables": { "TILED_SPLIT_K_MODE": 1 }, "provenance": { "notes": "f16 operands through split-K on both subgroup-matrix and portable register-tiled tiers: operands remain f16 while the partial scratch and its reduce stay f32, so the sum of slices rounds once, at the final store." }, "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 48, 5, 7], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float16", "shape": [64, 48, 3, 3], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float16", "shape": [64], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 5, 7], "tolerance": 0.02 } } }, { "name": "conv_1x1_implicit_im2col_n_tail", "provenance": { "notes": "A 1x1 kernel through the IMPLICIT gather: 37x49 is 1813 positions, not a multiple of 64, so the dedicated aligned 1x1 kernel declines and the gather takes it rather than materializing an im2col matrix that would be a verbatim copy of X." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 384, 37, 49], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [384, 384, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float32", "shape": [384], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 384, 37, 49], "tolerance": 0.0001 } } }, { "name": "conv_1x1_implicit_im2col_splitk_aligned_starved", "provenance": { "notes": "An ALIGNED 1x1 that is nonetheless starved: 32x32 is 16 column tiles over one 64-row tile, so the split outranks the dedicated aligned 1x1 kernel here even though that kernel is eligible and wins at any well-fed size." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 256, 32, 32], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [64, 256, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float32", "shape": [64], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 32, 32], "tolerance": 0.0001 } } }, { "name": "conv_1x1_channel_reduce_single_out_bias", "provenance": { "notes": "The depth head's final 32 -> 1 projection in miniature: one output channel, so every GEMM route computes a one-row tile. 33x35 is 1155 positions and NOT a multiple of 4, which is the point — this route carries no alignment gate." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 33, 35], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [1, 32, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float32", "shape": [1], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 33, 35], "tolerance": 0.0001 } } }, { "name": "conv_1x1_channel_reduce_single_out", "provenance": { "notes": "Same shape without a bias, so the store path is the bare accumulator." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 33, 35], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [1, 32, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 33, 35], "tolerance": 0.0001 } } }, { "name": "conv_1x1_channel_reduce_max_out_batch2_bias", "provenance": { "notes": "Sixteen output channels — the largest the register budget takes — over a batch of two, so the unrolled accumulator set is at its widest and the per-image plane strides on both the input and the output have to be right." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [2, 24, 33, 35], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float32", "shape": [16, 24, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float32", "shape": [16], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 16, 33, 35], "tolerance": 0.0001 } } }, { "name": "conv_f16_1x1_channel_reduce_bias", "provenance": { "notes": "f16 operands with an f32 accumulator: the reduction widens each load, sums in f32, and narrows once at the store." }, "attrs": { "strides": [1, 1], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float16", "shape": [1, 32, 33, 35], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.019, "cosStep": 0.029 } }, "w": { "dtype": "float16", "shape": [4, 32, 1, 1], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.013, "cosStep": 0.021 } }, "bias": { "dtype": "float16", "shape": [4], "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.007, "cosStep": 0.017 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 4, 33, 35], "tolerance": 0.02 } } }, { "name": "conv_8x8_s8_im2col_gemm_tiled_bias_reg_nonoverlapping", "provenance": { "notes": "Stride-8 8x8 windows tile the input without overlap. Exercises materialized register-tiled im2col with bias, including one-write materialization, register blocking, and exact output tiling." }, "attrs": { "strides": [8, 8], "pads": [0, 0, 0, 0] }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 728, 728], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.017, "cosStep": 0.023 } }, "w": { "dtype": "float32", "shape": [1, 1, 8, 8], "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.011, "cosStep": 0.031 } }, "bias": { "dtype": "float32", "shape": [1], "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.05, "cosStep": 0.07 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 91, 91], "tolerance": 0.0001, "relTolerance": 0.0001 } } } ] }