Download build/webgpu/test.json from webgpu-kernels/ai.onnx.Conv: direct link, hf CLI and curl.
- Browser
- Download file 296 kB
-
https://huggingface.co/kernels/webgpu-kernels/ai.onnx.Conv/resolve/v1/build/webgpu/test.json
- Command line
-
hf download hf://webgpu-kernels/ai.onnx.Conv@v1/build/webgpu/test.json
-
curl -L -o test.json https://huggingface.co/kernels/webgpu-kernels/ai.onnx.Conv/resolve/v1/build/webgpu/test.json
296 kB
| { | |
| "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], | |
| "ort_fp16_pointwise_odd_out_channels_97_input_w": [-0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.1875, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.125, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, -0.0625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.0625, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875, 0.1875] | |
| }, | |
| "cases": [ | |
| { | |
| "name": "qwen-image21-vae-convout-four-channels-sgmat-f32-bias", | |
| "provenance": { | |
| "source": "Qwen-Image 2.1 VAE decoder", | |
| "notes": "The four-output-channel final 3x3 convolution opts into padded implicit subgroup-matrix output rows; odd spatial extent exercises the tail and padding edges." | |
| }, | |
| "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, | |
| "tunables": { "SGMAT_MIN_M": 4, "SGMAT_SPLIT_K_MAX_BASE_WORKGROUPS": 0 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 144, 33, 33], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [4, 144, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| }, | |
| "bias": { "dtype": "float32", "shape": [4], "data": { "kind": "cycle", "values": [-0.02, 0.0, 0.02, 0.01] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 4, 33, 33], "tolerance": 0.00001 } } | |
| }, | |
| { | |
| "name": "qwen-image21-vae-large-column-implicit-f32-bias", | |
| "provenance": { | |
| "source": "Qwen-Image 2.1 VAE decoder", | |
| "notes": "Compact 3x3 analogue of the large-column implicit route, including channel and spatial matrix tiles." | |
| }, | |
| "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, | |
| "tunables": { "IMPLICIT_MAX_M_TILES": 2, "DIRECT_IM2COL_MIN_M_TILES": 3, "SGMAT_SPLIT_K_MAX_BASE_WORKGROUPS": 0 }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 32, 32, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 32, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03 } | |
| }, | |
| "bias": { "dtype": "float32", "shape": [64], "data": { "kind": "cycle", "values": [-0.02, 0.0, 0.02, 0.01] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 32, 32], "tolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "qwen-image21-vae-nine-matrix-tiles-f32-bias", | |
| "provenance": { | |
| "source": "Qwen-Image 2.1 VAE decoder", | |
| "notes": "A compact 3x3 convolution at the nine-output-tile boundary of the full-resolution decoder. The input and kernel rows exercise the implicit im2col path without committing a large fixture." | |
| }, | |
| "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 16, 32, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [288, 16, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| }, | |
| "bias": { "dtype": "float32", "shape": [288], "data": { "kind": "cycle", "values": [-0.02, 0.0, 0.02] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 288, 32, 32], "tolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "qwen-image21-vae-nine-wide-matrix-tiles-f32-bias", | |
| "provenance": { | |
| "source": "Qwen-Image 2.1 VAE decoder", | |
| "notes": "The 576-channel decoder convolution needs nine 64-channel matrix tiles. Small spatial dimensions keep the correctness reference compact." | |
| }, | |
| "attrs": { "strides": [1, 1], "pads": [1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 16, 32, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.147, "cosStep": 0.183, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [576, 16, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.269, "cosStep": 0.289, "scale": 0.03, "offset": 0.013 } | |
| }, | |
| "bias": { "dtype": "float32", "shape": [576], "data": { "kind": "cycle", "values": [-0.02, 0.0, 0.02] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 576, 32, 32], "tolerance": 0.001 } } | |
| }, | |
| { | |
| "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": "A 1x1 convolution with 32 input channels, 32 output channels, and 64 spatial positions 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 } } | |
| }, | |
| "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": "A zero channel-bias tensor exercises the 1x1 matrix epilogue; finite subnormal convolution outputs must remain unchanged." | |
| }, | |
| "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": "A 2x1 convolution with 32 input channels, 32 output channels, and 64 spatial positions must preserve 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": "A zero channel-bias tensor exercises the aligned column-matrix epilogue; finite subnormal convolution outputs must remain unchanged." | |
| }, | |
| "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": "A 2x1 kernel over 9 input channels (an 18-element reduction) with every input and weight set to 1e-20 produces outputs near the float32 subnormal boundary, checking how finite subnormal results are handled. Transcribed from onnxruntime's conv_op_test.cc ConvTest." | |
| }, | |
| "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": "A zero channel-bias tensor exercises the padded column-matrix epilogue; padded K/N lanes must not alter 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": "A single input channel expands to 32 output channels with weight 0.5 and bias 0.5, so every output equals 1.0; checks 32 packed output channels with bias. Transcribed from onnxruntime's ConvTest.Depthwise2D_Bias_Group1_Issue18992_Packed." | |
| }, | |
| "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": "A single input channel with a full 8x8 kernel (64 taps) expands to 32 output channels with weight 0.5 and bias 0.5, so every output equals 32.5; checks 32 packed output channels with a full-kernel bias. Transcribed from onnxruntime's ConvTest.Depthwise2D_Bias_Group1_Issue18992_Packed4." | |
| }, | |
| "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": "gemm_1x1_tiled_reg_splitk_c128_16x16", | |
| "provenance": { | |
| "notes": "A 1x1 convolution with K=128 and four 64-by-64 output regions checks complete float32 accumulation." | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 128, 16, 16], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.031 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 128, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.011, "cosStep": 0.023 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 16, 16], "tolerance": 0.0001 } }, | |
| "attrs": {} | |
| }, | |
| { | |
| "name": "gemm_1x1_tiled_reg_splitk_bias_c128_16x16", | |
| "provenance": { | |
| "notes": "The split-K 1x1 register tile produces two f32 partials per output tile; the reduce pass sums them before adding per-channel bias." | |
| }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 128, 16, 16], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.019, "cosStep": 0.029 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 128, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.013, "cosStep": 0.021 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "scale": 0.5, "sinStep": 0.07, "cosStep": 0.05 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 16, 16], "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": "local fixture", | |
| "notes": "A compact half-precision audio-feature convolution exercises the dtype-generic NCW implementation." | |
| }, | |
| "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": "A 3x3 convolution with 256 input and 256 output channels over an 8x8 spatial output checks a 2304-tap reduction; offset input and weight values keep each accumulation proportional to its length so a dropped tap is observable." | |
| }, | |
| "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, "offset": 0.2 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [256, 256, 3, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.015, "sinStep": 0.007, "cosStep": 0.019, "offset": 0.02 } | |
| } | |
| }, | |
| "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": "This half-precision case combines channel bias, asymmetric explicit padding, and non-unit strides from the cited upstream Conv fixture." | |
| }, | |
| "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": "A grouped, dilated 11x11 convolution with two groups and 16 output channels; dilation two and padding ten keep the 24x24 output size." | |
| }, | |
| "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": "A compact half-precision grouped 9x9 convolution produces two four-channel output tiles per group, exercising 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": "Depth dilation 2 separates the two volumetric kernel planes while height and width dilation remain one." | |
| }, | |
| "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": "A grouped 9x9 convolution with a 16x17 output checks the final odd-width column across multiple rows." | |
| }, | |
| "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", | |
| "provenance": { | |
| "source": "synthetic fixture", | |
| "notes": "A grouped 3x3 convolution with four groups produces 20 output columns, a multiple of four." | |
| }, | |
| "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", | |
| "provenance": { | |
| "source": "synthetic fixture", | |
| "notes": "A depthwise 3x3 convolution produces 20 output columns with one input channel per group." | |
| }, | |
| "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_bias", | |
| "provenance": { | |
| "source": "synthetic fixture", | |
| "notes": "A grouped 3x3 convolution produces 17 columns, so the final four-lane output group contains one valid column. Mixed-sign channel bias exercises the biased masked-tail epilogue." | |
| }, | |
| "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] }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [-0.5, 0.25, 0.75, -1.0, 1.25, -0.125, 0.375, -0.875] } | |
| } | |
| }, | |
| "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": "A grouped (group=2) 7x9 convolution with height dilation 1 and width dilation 8 reduces a 4-channel, 16x76 input to a 16x16 output; padding [3,2,3,2] keeps out-of-range edge taps at zero, exercising ONNX Conv-22's per-axis dilation semantics." | |
| }, | |
| "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": "A grouped (group=2) 7x9 convolution with height dilation 1, width dilation 8 and width stride 2 reduces a 2-channel, 18x90 input to an 18x15 output; padding [3,2,3,2] keeps out-of-range edge taps at zero, exercising ONNX Conv-22's per-axis strides and dilations." | |
| }, | |
| "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": "A Whisper-stem-shaped NCW convolution with K=96 and N=1024 exercises aligned materialized matrix multiplication and the register-tiled and scalar NCW implementations." | |
| }, | |
| "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": "Half-precision operands exercise materialized matrix multiplication and tiled NCW paths; both accumulate in f32 and narrow once at the output 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_nchw_scalar", | |
| "provenance": { | |
| "notes": "A grouped (group=2) convolution with a 1x12 kernel reduces a 1x16 row to a 1x5 output; each of the two groups has one input and one output channel." | |
| }, | |
| "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_nchw_scalar", | |
| "provenance": { | |
| "notes": "A grouped convolution with kernel width 12 and nonzero channel bias checks every output window and bias addition." | |
| }, | |
| "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": "An 8x8 convolution with 8,192 spatial positions and nonzero channel bias checks a large spatial extent and biased output." | |
| }, | |
| "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": "For this rank-5 tensor, K=C*KD*KH*KW=32 and N=OD*OH*OW=64. The aligned geometry exercises the NCDHW column producer and f32 matrix consumer without 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": "Half-precision rank-5 input with channel bias exercises the aligned matrix path and its f32-to-f16 scratch-store 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": "Rank-five convolution with a large spatial extent and nonzero channel bias checks three-dimensional indexing and bias application." | |
| }, | |
| "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": "A 3x3 convolution with 32 input and 32 output channels over a 64x64 (4096-element) spatial output has a 288-element reduction; both the reduction and spatial sizes are multiples of 32, leaving no partial tile." | |
| }, | |
| "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": "A 3x3 convolution with M=32 and K=288, channel bias, and padded border windows checks the full reduction and spatial boundaries." | |
| }, | |
| "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": "A float16 3x3 convolution with M=32, K=72, two batches, channel bias, and 32,768 output positions per image checks batch indexing." | |
| }, | |
| "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": "A 5x7 output has 35 positions, so split-K adds independent workgroups to the single output tile. K=432 and N=35 exercise reduction tails in both the subgroup-matrix materialized-im2col route and the portable implicit-gather route." | |
| }, | |
| "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": "A two-batch convolution with 48 output channels, 35 output positions, K=432, and channel bias checks partial channel/spatial tiles and bias applied once per output." | |
| }, | |
| "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 convolution with a 32x32 output produces 16 column tiles over one 64-row tile, exercising split-K despite satisfying the dedicated aligned-kernel geometry." | |
| }, | |
| "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 } } | |
| }, | |
| { | |
| "name": "grouped_dilated_lanes_k9_d4_g2_16x40", | |
| "provenance": { | |
| "notes": "Dilated-lane grouped route: four columns per invocation spaced by the dilation, so every tap reads a 12-register row window; width 40 is a whole number of lane runs in every residue class." | |
| }, | |
| "attrs": { "group": 2, "strides": [1, 1], "dilations": [4, 4], "pads": [16, 16, 16, 16] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 8, 16, 40], | |
| "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [8, 4, 9, 9], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 8, 16, 40], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_dilated_lanes_k9_d4_g2_odd_width_41_lane_tail", | |
| "provenance": { | |
| "notes": "Dilated-lane route with a width that is not a whole number of runs: residue classes hold 11, 10, 10 and 10 columns, so the last run of every class stores only its leading lanes." | |
| }, | |
| "attrs": { "group": 2, "strides": [1, 1], "dilations": [4, 4], "pads": [16, 16, 16, 16] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 8, 16, 41], | |
| "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.031, "cosStep": 0.019 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [8, 4, 9, 9], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.023, "cosStep": 0.011 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 8, 16, 41], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "f16_grouped_dilated_lanes_k9_d5_g4_oc2_12x40", | |
| "provenance": { | |
| "notes": "A grouped (group=4, two channels per group) float16 convolution with a 9x9 kernel and dilation 5 pads 20 on every side, keeping the 12x40 spatial size unchanged." | |
| }, | |
| "attrs": { "group": 4, "strides": [1, 1], "dilations": [5, 5], "pads": [20, 20, 20, 20] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 8, 12, 40], | |
| "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.041, "cosStep": 0.017 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [8, 2, 9, 9], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.019, "cosStep": 0.031 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 8, 12, 40], "tolerance": 0.01, "relTolerance": 0.01 } } | |
| }, | |
| { | |
| "name": "grouped_dilated_lanes_k9_d4_g2_16x40_bias", | |
| "provenance": { | |
| "notes": "The dilated-lanes grouped route carrying a bias: the accumulator is seeded per output channel before any tap is read, and the lane registers are the ones that must pick it up." | |
| }, | |
| "attrs": { "group": 2, "strides": [1, 1], "dilations": [4, 4], "pads": [16, 16, 16, 16] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 8, 16, 40], | |
| "data": { "kind": "fillFloat32", "scale": 0.25, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [8, 4, 9, 9], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "values", "values": [0.5, -0.25, 1.0, -0.75, 0.125, 2.0, -1.5, 0.375] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 8, 16, 40], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m32_c32_rank1_n128_bias0", | |
| "provenance": { | |
| "notes": "A float32 3-tap 1D convolution with 32 input channels and 32 output channels (a multiple of 32) produces a 128-element output row over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [32, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 32, 128], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m32_c32_rank1_n128_bias1", | |
| "provenance": { | |
| "notes": "A float32 3-tap 1D convolution with 32 input channels and 32 output channels (a multiple of 32) produces a 128-element output row over batch 2; a 32-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [32, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 32, 128], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m32_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 32 output channels (a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [32, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 32, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m32_c32_rank2_n8x8_bias1", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 32 output channels (a multiple of 32) produces an 8x8 output over batch 2; a 32-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [32, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 32, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m64_c32_rank1_n128_bias0", | |
| "provenance": { | |
| "notes": "A float32 3-tap 1D convolution with 32 input channels and 64 output channels (a multiple of 32) produces a 128-element output row over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 128], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m64_c32_rank1_n128_bias1", | |
| "provenance": { | |
| "notes": "A float32 3-tap 1D convolution with 32 input channels and 64 output channels (a multiple of 32) produces a 128-element output row over batch 2; a 64-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 128], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m64_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 64 output channels (a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m64_c32_rank2_n8x8_bias1", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 64 output channels (a multiple of 32) produces an 8x8 output over batch 2; a 64-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m96_c32_rank1_n128_bias0", | |
| "provenance": { | |
| "notes": "A float32 3-tap 1D convolution with 32 input channels and 96 output channels (a multiple of 32) produces a 128-element output row over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [96, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 96, 128], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m96_c32_rank1_n128_bias1", | |
| "provenance": { | |
| "notes": "A float32 3-tap 1D convolution with 32 input channels and 96 output channels (a multiple of 32) produces a 128-element output row over batch 2; a 96-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [96, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [96], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 96, 128], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m96_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 96 output channels (a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [96, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 96, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m96_c32_rank2_n8x8_bias1", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 96 output channels (a multiple of 32) produces an 8x8 output over batch 2; a 96-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [96, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [96], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 96, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m128_c32_rank1_n128_bias0", | |
| "provenance": { | |
| "notes": "A float32 3-tap 1D convolution with 32 input channels and 128 output channels (a multiple of 32) produces a 128-element output row over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [128, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 128, 128], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m128_c32_rank1_n128_bias1", | |
| "provenance": { | |
| "notes": "A float32 3-tap 1D convolution with 32 input channels and 128 output channels (a multiple of 32) produces a 128-element output row over batch 2; a 128-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [128, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [128], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 128, 128], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m128_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 128 output channels (a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [128, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 128, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m128_c32_rank2_n8x8_bias1", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 128 output channels (a multiple of 32) produces an 8x8 output over batch 2; a 128-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [128, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [128], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 128, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m31_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 31 output channels (one short of a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [31, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 31, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m33_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 33 output channels (one more than a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [33, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 33, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m65_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 65 output channels (one more than a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [65, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 65, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m64_c31_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 31 input channels (one short of a multiple of 32) and 64 output channels (a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 31, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 31, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 8, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m64_c32_rank2_n7x9_bias0", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 64 output channels (a multiple of 32) produces a 7x9 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 7, 9], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 7, 9], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m32_c32_rank1_n128_bias0", | |
| "provenance": { | |
| "notes": "A float16 3-tap 1D convolution with 32 input channels and 32 output channels (a multiple of 32) produces a 128-element output row over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [32, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 32, 128], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m32_c32_rank1_n128_bias1", | |
| "provenance": { | |
| "notes": "A float16 3-tap 1D convolution with 32 input channels and 32 output channels (a multiple of 32) produces a 128-element output row over batch 2; a 32-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [32, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 32, 128], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m32_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 32 output channels (a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [32, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 32, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m32_c32_rank2_n8x8_bias1", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 32 output channels (a multiple of 32) produces an 8x8 output over batch 2; a 32-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [32, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 32, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m64_c32_rank1_n128_bias0", | |
| "provenance": { | |
| "notes": "A float16 3-tap 1D convolution with 32 input channels and 64 output channels (a multiple of 32) produces a 128-element output row over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 128], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m64_c32_rank1_n128_bias1", | |
| "provenance": { | |
| "notes": "A float16 3-tap 1D convolution with 32 input channels and 64 output channels (a multiple of 32) produces a 128-element output row over batch 2; a 64-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 128], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m64_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 64 output channels (a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m64_c32_rank2_n8x8_bias1", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 64 output channels (a multiple of 32) produces an 8x8 output over batch 2; a 64-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m96_c32_rank1_n128_bias0", | |
| "provenance": { | |
| "notes": "A float16 3-tap 1D convolution with 32 input channels and 96 output channels (a multiple of 32) produces a 128-element output row over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [96, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 96, 128], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m96_c32_rank1_n128_bias1", | |
| "provenance": { | |
| "notes": "A float16 3-tap 1D convolution with 32 input channels and 96 output channels (a multiple of 32) produces a 128-element output row over batch 2; a 96-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [96, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [96], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 96, 128], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m96_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 96 output channels (a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [96, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 96, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m96_c32_rank2_n8x8_bias1", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 96 output channels (a multiple of 32) produces an 8x8 output over batch 2; a 96-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [96, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [96], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 96, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m128_c32_rank1_n128_bias0", | |
| "provenance": { | |
| "notes": "A float16 3-tap 1D convolution with 32 input channels and 128 output channels (a multiple of 32) produces a 128-element output row over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [128, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 128, 128], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m128_c32_rank1_n128_bias1", | |
| "provenance": { | |
| "notes": "A float16 3-tap 1D convolution with 32 input channels and 128 output channels (a multiple of 32) produces a 128-element output row over batch 2; a 128-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 128], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [128, 32, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [128], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 128, 128], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m128_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 128 output channels (a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [128, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 128, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m128_c32_rank2_n8x8_bias1", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 128 output channels (a multiple of 32) produces an 8x8 output over batch 2; a 128-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [128, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [128], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 128, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m31_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 31 output channels (one short of a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [31, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 31, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m33_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 33 output channels (one more than a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [33, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 33, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m65_c32_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 65 output channels (one more than a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [65, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 65, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m64_c31_rank2_n8x8_bias0", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 31 input channels (one short of a multiple of 32) and 64 output channels (a multiple of 32) produces an 8x8 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 31, 8, 8], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 31, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 8, 8], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m64_c32_rank2_n7x9_bias0", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 64 output channels (a multiple of 32) produces a 7x9 output over batch 2; no bias is applied." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 7, 9], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 7, 9], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m128_c32_rank2_n32x32_bias1", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 128 output channels (a multiple of 32) produces a 32x32 output over batch 2; a 128-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 32, 32], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [128, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [128], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 128, 32, 32], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float32_m512_c32_rank2_n32x32_bias1", | |
| "provenance": { | |
| "notes": "A float32 1x3-kernel 2D convolution with 32 input channels and 512 output channels (a multiple of 32) produces a 32x32 output over batch 2; a 512-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 32, 32], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [512, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [512], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 512, 32, 32], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m64_c32_rank2_n32x32_bias1", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 64 output channels (a multiple of 32) produces a 32x32 output over batch 2; a 64-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 32, 32], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 32, 32], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_columns_float16_m256_c32_rank2_n32x32_bias1", | |
| "provenance": { | |
| "notes": "A float16 1x3-kernel 2D convolution with 32 input channels and 256 output channels (a multiple of 32) produces a 32x32 output over batch 2; a 256-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [0, 1, 0, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 32, 32], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.037, "cosStep": 0.013 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [256, 32, 1, 3], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.017, "cosStep": 0.029 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [256], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.19, "cosStep": 0.31 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 256, 32, 32], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m32_k32_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [32, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 32, 1, 64], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m32_k32_n64_mode1", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [32, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.23, "cosStep": 0.391 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 32, 1, 64], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m64_k32_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 1, 64], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m64_k32_n64_mode1", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.23, "cosStep": 0.391 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 1, 64], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m33_k32_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [33, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 33, 1, 64], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m65_k32_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [65, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 65, 1, 64], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m96_k32_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [96, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 96, 1, 64], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m64_k31_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 31, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 31, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 1, 64], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m64_k33_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 33, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 33, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 1, 64], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m64_k32_n63_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 1, 63], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 1, 63], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float32_m64_k32_n65_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 32, 1, 65], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 64, 1, 65], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m32_k32_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [32, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 32, 1, 64], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m32_k32_n64_mode1", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [32, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.23, "cosStep": 0.391 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 32, 1, 64], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m64_k32_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 1, 64], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m64_k32_n64_mode1", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "scale": 0.1, "sinStep": 0.23, "cosStep": 0.391 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 1, 64], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m33_k32_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [33, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 33, 1, 64], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m65_k32_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [65, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 65, 1, 64], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m96_k32_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [96, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 96, 1, 64], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m64_k31_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 31, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 31, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 1, 64], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m64_k33_n64_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 33, 1, 64], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 33, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 1, 64], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m64_k32_n63_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 1, 63], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 1, 63], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "direct_1x1_float16_m64_k32_n65_mode0", | |
| "provenance": { | |
| "notes": "Batched direct 1x1 matrix loads cover both scalar widths and fused epilogues. Neighboring incomplete M/K/N tiles take guarded staging or the fallback route; device limits determine the row tile." | |
| }, | |
| "attrs": { "pads": [0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 32, 1, 65], | |
| "data": { "kind": "fillFloat32", "scale": 0.2, "sinStep": 0.013, "cosStep": 0.022099999999999998 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 32, 1, 1], | |
| "data": { "kind": "fillFloat32", "scale": 0.05, "sinStep": 0.031, "cosStep": 0.0527 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 64, 1, 65], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_narrow_rows17_bias0", | |
| "provenance": { | |
| "notes": "A float16 convolution with 33 input channels and 17 output channels produces a 1025-element output row (one more than a multiple of 64) over batch 4; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [4, 33, 1, 1025], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [17, 33, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [4, 17, 1, 1025], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_narrow_rows32_short_k_bias0", | |
| "provenance": { | |
| "notes": "A float16 convolution with a single input channel (a 9-element reduction) and 32 output channels produces a 512-element output (an exact multiple of 64) over batch 8; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [8, 1, 16, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [32, 1, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [8, 32, 16, 32], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_rows33_bias0", | |
| "provenance": { | |
| "notes": "A float16 convolution with 32 input channels and 33 output channels produces a 1056-element output (not a multiple of 64) over batch 4; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [4, 32, 32, 33], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [33, 32, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [4, 33, 32, 33], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_short_spatial_alt_layout_bias0", | |
| "provenance": { | |
| "notes": "A float16 convolution with 64 input channels and 384 output channels produces a 128-element (8x16) output, an exact multiple of 64, over batch 1; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 64, 8, 16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [384, 64, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 384, 8, 16], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_short_spatial_batched_bias0", | |
| "provenance": { | |
| "notes": "A float16 convolution with 64 input channels and 384 output channels produces a 128-element (8x16) output, an exact multiple of 64, over batch 4; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [4, 64, 8, 16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [384, 64, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [4, 384, 8, 16], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_small_tiled_long_spatial_bias0", | |
| "provenance": { | |
| "notes": "A float16 convolution with 33 input channels and 17 output channels produces a 1025-element output row (one more than a multiple of 64) over batch 1; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 33, 1, 1025], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [17, 33, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 17, 1, 1025], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_narrow_rows17_bias1", | |
| "provenance": { | |
| "notes": "A float16 convolution with 33 input channels and 17 output channels produces a 1025-element output row (one more than a multiple of 64) over batch 4; a 17-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [4, 33, 1, 1025], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [17, 33, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [17], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.020999999999999998, | |
| "cosStep": 0.033, | |
| "scale": 0.05, | |
| "offset": 0.03 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [4, 17, 1, 1025], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_narrow_rows32_short_k_bias1", | |
| "provenance": { | |
| "notes": "A float16 convolution with a single input channel (a 9-element reduction) and 32 output channels produces a 512-element output (an exact multiple of 64) over batch 8; a 32-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [8, 1, 16, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [32, 1, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [32], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.020999999999999998, | |
| "cosStep": 0.033, | |
| "scale": 0.05, | |
| "offset": 0.03 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [8, 32, 16, 32], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_rows33_bias1", | |
| "provenance": { | |
| "notes": "A float16 convolution with 32 input channels and 33 output channels produces a 1056-element output (not a multiple of 64) over batch 4; a 33-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [4, 32, 32, 33], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [33, 32, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [33], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.020999999999999998, | |
| "cosStep": 0.033, | |
| "scale": 0.05, | |
| "offset": 0.03 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [4, 33, 32, 33], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_short_spatial_alt_layout_bias1", | |
| "provenance": { | |
| "notes": "A float16 convolution with 64 input channels and 384 output channels produces a 128-element (8x16) output, an exact multiple of 64, over batch 1; a 384-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 64, 8, 16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [384, 64, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [384], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.020999999999999998, | |
| "cosStep": 0.033, | |
| "scale": 0.05, | |
| "offset": 0.03 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 384, 8, 16], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_short_spatial_batched_bias1", | |
| "provenance": { | |
| "notes": "A float16 convolution with 64 input channels and 384 output channels produces a 128-element (8x16) output, an exact multiple of 64, over batch 4; a 384-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [4, 64, 8, 16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [384, 64, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [384], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.020999999999999998, | |
| "cosStep": 0.033, | |
| "scale": 0.05, | |
| "offset": 0.03 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [4, 384, 8, 16], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_small_tiled_long_spatial_bias1", | |
| "provenance": { | |
| "notes": "A float16 convolution with 33 input channels and 17 output channels produces a 1025-element output row (one more than a multiple of 64) over batch 1; a 17-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 33, 1, 1025], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [17, 33, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [17], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.020999999999999998, | |
| "cosStep": 0.033, | |
| "scale": 0.05, | |
| "offset": 0.03 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 17, 1, 1025], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_short_reduction", | |
| "provenance": { | |
| "notes": "A float16 convolution with a 7-channel (63-element) reduction and 512 output channels produces a 1089-element output (one more than a multiple of 64) over batch 1; a 512-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 7, 33, 33], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [512, 7, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [512], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.020999999999999998, | |
| "cosStep": 0.033, | |
| "scale": 0.05, | |
| "offset": 0.03 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 512, 33, 33], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_dilation", | |
| "provenance": { | |
| "notes": "A float16 convolution with dilation 2 and matching padding 2 keeps the 33x33 spatial size (1089 elements, one more than a multiple of 64) across 33 input and 384 output channels; a 384-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [2, 2, 2, 2], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 33, 33, 33], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [384, 33, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [384], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.020999999999999998, | |
| "cosStep": 0.033, | |
| "scale": 0.05, | |
| "offset": 0.03 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 384, 33, 33], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_strided_batch", | |
| "provenance": { | |
| "notes": "A float16 convolution with stride 2 over a 63x65 input (8 input, 512 output channels) reduces to a 32x33 (1056-element, not a multiple of 64) output over batch 2; a 512-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [2, 2], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 8, 63, 65], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [512, 8, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [512], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.020999999999999998, | |
| "cosStep": 0.033, | |
| "scale": 0.05, | |
| "offset": 0.03 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 512, 32, 33], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_reg_short_tail_bias0", | |
| "provenance": { | |
| "notes": "A float16 convolution with 8 input channels and 512 output channels produces a 496-element output (48 past a multiple of 64) over batch 1; no bias is applied." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 8, 16, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [512, 8, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 512, 16, 31], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "half_columns_reg_short_tail_bias1", | |
| "provenance": { | |
| "notes": "A float16 convolution with 8 input channels and 512 output channels produces a 496-element output (48 past a multiple of 64) over batch 1; a 512-element bias is added to each channel." | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 8, 16, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [512, 8, 3, 3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.03, "scale": 0.02, "offset": 0.0 } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [512], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.020999999999999998, | |
| "cosStep": 0.033, | |
| "scale": 0.05, | |
| "offset": 0.03 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 512, 16, 31], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c8_m16_32x31_k3x3_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 3x3 convolution with 8 input and 16 output channels per group, dilation 2x2, and stride 1x1. The output has 32 rows and 31 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [2, 2, 2, 2], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 32, 32, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 8, 3, 3], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 32, 31], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c8_m16_32x31_k5x5_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 5x5 convolution with 8 input and 16 output channels per group, dilation 2x2, and stride 1x1. The output has 32 rows and 31 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [4, 4, 4, 4], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 32, 32, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 8, 5, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 32, 31], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c8_m16_32x31_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 8 input and 16 output channels per group, dilation 2x2, and stride 1x1. The output has 32 rows and 31 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 32, 32, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 8, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 32, 31], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c8_m16_32x32_k7x7_d3x3_s1x1_bias0_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 8 input and 16 output channels per group, dilation 3x3, and stride 1x1. The output has 32 rows and 32 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [9, 9, 9, 9], "strides": [1, 1], "dilations": [3, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 32, 32, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 8, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 32, 32], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c8_m16_32x31_k9x9_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 9x9 convolution with 8 input and 16 output channels per group, dilation 2x2, and stride 1x1. The output has 32 rows and 31 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [8, 8, 8, 8], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 32, 32, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 8, 9, 9], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 32, 31], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c8_m16_32x31_k11x11_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 8 input and 16 output channels per group, dilation 2x2, and stride 1x1. The output has 32 rows and 31 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [10, 10, 10, 10], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 32, 32, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 8, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 32, 31], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c8_m16_32x32_k11x11_d3x3_s1x1_bias0_asym0", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 8 input and 16 output channels per group, dilation 3x3, and stride 1x1. The output has 32 rows and 32 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [15, 15, 15, 15], "strides": [1, 1], "dilations": [3, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 32, 32, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [64, 8, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 32, 32], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c8_m16_32x31_k3x3_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 3x3 convolution with 8 input and 16 output channels per group, dilation 2x2, and stride 1x1. The output has 32 rows and 31 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [2, 2, 2, 2], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 32, 32, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 8, 3, 3], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 32, 31], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c8_m16_32x31_k5x5_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 5x5 convolution with 8 input and 16 output channels per group, dilation 2x2, and stride 1x1. The output has 32 rows and 31 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [4, 4, 4, 4], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 32, 32, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 8, 5, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 32, 31], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c8_m16_32x31_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 8 input and 16 output channels per group, dilation 2x2, and stride 1x1. The output has 32 rows and 31 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 32, 32, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 8, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 32, 31], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c8_m16_32x32_k7x7_d3x3_s1x1_bias0_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 8 input and 16 output channels per group, dilation 3x3, and stride 1x1. The output has 32 rows and 32 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [9, 9, 9, 9], "strides": [1, 1], "dilations": [3, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 32, 32, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 8, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 32, 32], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c8_m16_32x31_k9x9_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 9x9 convolution with 8 input and 16 output channels per group, dilation 2x2, and stride 1x1. The output has 32 rows and 31 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [8, 8, 8, 8], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 32, 32, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 8, 9, 9], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 32, 31], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c8_m16_32x31_k11x11_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 8 input and 16 output channels per group, dilation 2x2, and stride 1x1. The output has 32 rows and 31 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [10, 10, 10, 10], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 32, 32, 31], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 8, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 32, 31], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c8_m16_32x32_k11x11_d3x3_s1x1_bias0_asym0", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 8 input and 16 output channels per group, dilation 3x3, and stride 1x1. The output has 32 rows and 32 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [15, 15, 15, 15], "strides": [1, 1], "dilations": [3, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 32, 32, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [64, 8, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 32, 32], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b2_g3_c3_m1_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 1 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [3, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 17, 29], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b2_g3_c3_m1_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 1 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [3, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [3], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 3, 17, 29], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b2_g3_c3_m2_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 2 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [6, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [6], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 6, 17, 29], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b2_g3_c3_m2_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 2 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [6, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [6], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 6, 17, 29], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b2_g3_c3_m3_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 3 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [9, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [9], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 9, 17, 29], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b2_g3_c3_m3_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 3 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [9, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [9], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 9, 17, 29], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b2_g3_c3_m5_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 5 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [15, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [15], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 15, 17, 29], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b2_g3_c3_m5_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 5 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [15, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [15], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 15, 17, 29], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b2_g3_c3_m6_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 6 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [18, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [18], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 18, 17, 29], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b2_g3_c3_m6_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 6 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [18, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [18], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 18, 17, 29], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b2_g3_c3_m8_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 8 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 24, 17, 29], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b2_g3_c3_m8_17x29_k7x7_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 7x7 convolution with 3 input and 8 output channels per group, dilation 2x2, and stride 1x1. The output has 17 rows and 29 columns per channel." | |
| }, | |
| "attrs": { "group": 3, "pads": [6, 6, 6, 6], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [2, 9, 17, 29], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [24, 3, 7, 7], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 24, 17, 29], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_17x7_k5x5_d1x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 5x5 convolution with 3 input and 6 output channels per group, dilation 1x2, and stride 1x1. The output has 17 rows and 7 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [2, 4, 2, 4], "strides": [1, 1], "dilations": [1, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 17, 7], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 5, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 17, 7], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_17x8_k5x5_d1x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 5x5 convolution with 3 input and 6 output channels per group, dilation 1x2, and stride 1x1. The output has 17 rows and 8 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [2, 4, 2, 4], "strides": [1, 1], "dilations": [1, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 17, 8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 5, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 17, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_17x9_k5x5_d1x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 5x5 convolution with 3 input and 6 output channels per group, dilation 1x2, and stride 1x1. The output has 17 rows and 9 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [2, 4, 2, 4], "strides": [1, 1], "dilations": [1, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 17, 9], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 5, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 17, 9], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_17x11_k5x5_d1x3_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 5x5 convolution with 3 input and 6 output channels per group, dilation 1x3, and stride 1x1. The output has 17 rows and 11 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [2, 6, 2, 6], "strides": [1, 1], "dilations": [1, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 17, 11], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 5, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 17, 11], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_17x12_k5x5_d1x3_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 5x5 convolution with 3 input and 6 output channels per group, dilation 1x3, and stride 1x1. The output has 17 rows and 12 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [2, 6, 2, 6], "strides": [1, 1], "dilations": [1, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 17, 12], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 5, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 17, 12], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_17x13_k5x5_d1x3_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 5x5 convolution with 3 input and 6 output channels per group, dilation 1x3, and stride 1x1. The output has 17 rows and 13 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [2, 6, 2, 6], "strides": [1, 1], "dilations": [1, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 17, 13], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 5, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 17, 13], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_33x35_k3x11_d1x2_s1x1_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 3x11 convolution with 3 input and 6 output channels per group, dilation 1x2, and stride 1x1. The output has 34 rows and 37 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [1, 10, 2, 12], "strides": [1, 1], "dilations": [1, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 3, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 34, 37], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_33x35_k11x3_d2x1_s1x1_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 11x3 convolution with 3 input and 6 output channels per group, dilation 2x1, and stride 1x1. The output has 34 rows and 37 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [10, 1, 11, 3], "strides": [1, 1], "dilations": [2, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 11, 3], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 34, 37], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_33x35_k5x9_d1x3_s2x1_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 5x9 convolution with 3 input and 6 output channels per group, dilation 1x3, and stride 2x1. The output has 17 rows and 37 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [2, 12, 3, 14], "strides": [2, 1], "dilations": [1, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 5, 9], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 17, 37], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_33x35_k7x5_d2x2_s1x2_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 7x5 convolution with 3 input and 6 output channels per group, dilation 2x2, and stride 1x2. The output has 34 rows and 19 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [6, 4, 7, 6], "strides": [1, 2], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 7, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 34, 19], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_33x35_k11x11_d6x6_s1x1_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 3 input and 6 output channels per group, dilation 6x6, and stride 1x1. The output has 34 rows and 37 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [30, 30, 31, 32], "strides": [1, 1], "dilations": [6, 6] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 34, 37], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g4_c3_m6_33x35_k11x11_d7x7_s1x1_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 3 input and 6 output channels per group, dilation 7x7, and stride 1x1. The output has 34 rows and 37 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [35, 35, 36, 37], "strides": [1, 1], "dilations": [7, 7] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [24, 3, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 34, 37], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c3_m6_33x35_k3x11_d1x2_s1x1_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 3x11 convolution with 3 input and 6 output channels per group, dilation 1x2, and stride 1x1. The output has 34 rows and 37 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [1, 10, 2, 12], "strides": [1, 1], "dilations": [1, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [24, 3, 3, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 24, 34, 37], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c3_m6_33x35_k11x3_d2x1_s1x1_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 11x3 convolution with 3 input and 6 output channels per group, dilation 2x1, and stride 1x1. The output has 34 rows and 37 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [10, 1, 11, 3], "strides": [1, 1], "dilations": [2, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [24, 3, 11, 3], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 24, 34, 37], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c3_m6_33x35_k5x9_d1x3_s2x1_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 5x9 convolution with 3 input and 6 output channels per group, dilation 1x3, and stride 2x1. The output has 17 rows and 37 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [2, 12, 3, 14], "strides": [2, 1], "dilations": [1, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [24, 3, 5, 9], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 24, 17, 37], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c3_m6_33x35_k7x5_d2x2_s1x2_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 7x5 convolution with 3 input and 6 output channels per group, dilation 2x2, and stride 1x2. The output has 34 rows and 19 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [6, 4, 7, 6], "strides": [1, 2], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [24, 3, 7, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 24, 34, 19], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c3_m6_33x35_k11x11_d6x6_s1x1_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 3 input and 6 output channels per group, dilation 6x6, and stride 1x1. The output has 34 rows and 37 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [30, 30, 31, 32], "strides": [1, 1], "dilations": [6, 6] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [24, 3, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 24, 34, 37], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g4_c3_m6_33x35_k11x11_d7x7_s1x1_bias1_asym1", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 3 input and 6 output channels per group, dilation 7x7, and stride 1x1. The output has 34 rows and 37 columns per channel." | |
| }, | |
| "attrs": { "group": 4, "pads": [35, 35, 36, 37], "strides": [1, 1], "dilations": [7, 7] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 12, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [24, 3, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [24], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 24, 34, 37], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g16_c1_m2_33x35_k3x3_d3x3_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 3x3 convolution with 1 input and 2 output channels per group, dilation 3x3, and stride 1x1. The output has 33 rows and 35 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [3, 3, 3, 3], "strides": [1, 1], "dilations": [3, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [32, 1, 3, 3], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 33, 35], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g16_c1_m1_33x35_k11x11_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 1 input and 1 output channels per group, dilation 2x2, and stride 1x1. The output has 33 rows and 35 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [10, 10, 10, 10], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [16, 1, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 16, 33, 35], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g16_c1_m2_33x35_k11x11_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 1 input and 2 output channels per group, dilation 2x2, and stride 1x1. The output has 33 rows and 35 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [10, 10, 10, 10], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [32, 1, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 33, 35], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g16_c1_m2_33x35_k3x3_d3x3_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 3x3 convolution with 1 input and 2 output channels per group, dilation 3x3, and stride 1x1. The output has 33 rows and 35 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [3, 3, 3, 3], "strides": [1, 1], "dilations": [3, 3] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [32, 1, 3, 3], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 32, 33, 35], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g16_c1_m1_33x35_k11x11_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 1 input and 1 output channels per group, dilation 2x2, and stride 1x1. The output has 33 rows and 35 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [10, 10, 10, 10], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [16, 1, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 16, 33, 35], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g16_c1_m2_33x35_k11x11_d2x2_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 11x11 convolution with 1 input and 2 output channels per group, dilation 2x2, and stride 1x1. The output has 33 rows and 35 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [10, 10, 10, 10], "strides": [1, 1], "dilations": [2, 2] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [32, 1, 11, 11], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 32, 33, 35], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g16_c1_m1_33x35_k4x4_d1x1_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 4x4 convolution with 1 input and 1 output channels per group, dilation 1x1, and stride 1x1. The output has 32 rows and 34 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [16, 1, 4, 4], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 16, 32, 34], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g16_c1_m1_33x35_k5x5_d1x1_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 5x5 convolution with 1 input and 1 output channels per group, dilation 1x1, and stride 1x1. The output has 33 rows and 35 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [2, 2, 2, 2], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [16, 1, 5, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 16, 33, 35], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float32_b1_g16_c1_m1_33x35_k9x9_d1x1_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 9x9 convolution with 1 input and 1 output channels per group, dilation 1x1, and stride 1x1. The output has 33 rows and 35 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [4, 4, 4, 4], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [16, 1, 9, 9], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float32", | |
| "shape": [16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 16, 33, 35], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g16_c1_m1_33x35_k4x4_d1x1_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 4x4 convolution with 1 input and 1 output channels per group, dilation 1x1, and stride 1x1. The output has 32 rows and 34 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [1, 1, 1, 1], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [16, 1, 4, 4], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 16, 32, 34], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g16_c1_m1_33x35_k5x5_d1x1_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 5x5 convolution with 1 input and 1 output channels per group, dilation 1x1, and stride 1x1. The output has 33 rows and 35 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [2, 2, 2, 2], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [16, 1, 5, 5], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 16, 33, 35], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "grouped_float16_b1_g16_c1_m1_33x35_k9x9_d1x1_s1x1_bias1_asym0", | |
| "provenance": { | |
| "notes": "Grouped 9x9 convolution with 1 input and 1 output channels per group, dilation 1x1, and stride 1x1. The output has 33 rows and 35 columns per channel." | |
| }, | |
| "attrs": { "group": 16, "pads": [4, 4, 4, 4], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 16, 33, 35], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.137, "cosStep": 0.193, "scale": 0.2, "offset": 0.0 } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [16, 1, 9, 9], | |
| "data": { | |
| "kind": "fillFloat32", | |
| "sinStep": 0.20800000000000002, | |
| "cosStep": 0.246, | |
| "scale": 0.02, | |
| "offset": 0.0 | |
| } | |
| }, | |
| "bias": { | |
| "dtype": "float16", | |
| "shape": [16], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.279, "cosStep": 0.299, "scale": 0.03, "offset": 0.017 } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 16, 33, 35], "tolerance": 0.001, "relTolerance": 0.001 } } | |
| }, | |
| { | |
| "name": "ort_grouped_conv_padding_signed_coordinates", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/webgpu/grouped_conv_padding_test.cc", | |
| "test": "Conv_WebGPU.GroupedConvWithPaddingUsesSignedCoordinates", | |
| "notes": "Two independent audio-style channels as a 2D convolution with H=1 and a left/right pad of 1, so the leftmost output column needs input column -1. ORT expected Y: [4,8,8, 30,60,50]." | |
| }, | |
| "attrs": { "group": 2, "kernel_shape": [1, 3], "pads": [0, 1, 0, 1], "strides": [1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float32", | |
| "shape": [1, 2, 1, 3], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 10.0, 20.0, 30.0] } | |
| }, | |
| "w": { | |
| "dtype": "float32", | |
| "shape": [2, 1, 1, 3], | |
| "data": { "kind": "values", "values": [1.0, 2.0, 1.0, 1.0, 1.0, 1.0] } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 1, 3], "tolerance": 0.000001 } } | |
| }, | |
| { | |
| "name": "ort_conv3d_f16_valid_c1_scalar_remainder", | |
| "provenance": { | |
| "source": "js/web/test/data/ops/conv3dncdhw_f16.jsonc", | |
| "test": "conv3d float16, x=[1, 1, 2, 2, 2], f=[2, 1, 2, 2, 2], s=1, d=1, p=valid", | |
| "notes": "float16 Conv3D (NCDHW). All operand values are multiples of 0.5 so every partial sum is exact in f16 and the result does not depend on accumulation order. ORT expected output: [6.5, 0.75]" | |
| }, | |
| "attrs": { "kernel_shape": [2, 2, 2], "auto_pad": "VALID", "strides": [1, 1, 1], "dilations": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 1, 2, 2, 2], | |
| "data": { "kind": "values", "values": [-1.5, -1.0, 1.5, 0.5, -1.0, -0.5, -1.0, -1.5] } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [2, 1, 2, 2, 2], | |
| "data": { | |
| "kind": "values", | |
| "values": [-1.0, -1.0, -0.5, 0.5, -1.0, -1.0, -1.5, -1.0, -1.0, -0.5, -1.5, 0.5, 1.5, -1.0, 0.5, -1.5] | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 2, 1, 1, 1], "tolerance": 0.005 } } | |
| }, | |
| { | |
| "name": "ort_conv3d_f16_valid_c4_vec4", | |
| "provenance": { | |
| "source": "js/web/test/data/ops/conv3dncdhw_f16.jsonc", | |
| "test": "conv3d float16, x=[1, 4, 2, 2, 2], f=[2, 4, 2, 2, 2], s=1, d=1, p=valid", | |
| "notes": "float16 Conv3D (NCDHW). All operand values are multiples of 0.5 so every partial sum is exact in f16 and the result does not depend on accumulation order. ORT expected output: [-2.0, 0.5]" | |
| }, | |
| "attrs": { "kernel_shape": [2, 2, 2], "auto_pad": "VALID", "strides": [1, 1, 1], "dilations": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 4, 2, 2, 2], | |
| "data": { | |
| "kind": "values", | |
| "values": [0.5, -1.0, -1.5, 0.5, 0.5, -1.0, 1.0, -1.0, 0.5, -1.0, 1.0, -0.5, -1.0, -1.0, -1.5, -1.0, -1.0, -1.0, 1.0, 1.5, 1.5, 1.5, -1.5, -1.0, -1.0, 0.5, 1.5, 1.0, -1.0, -1.0, -1.0, 0.5] | |
| } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [2, 4, 2, 2, 2], | |
| "data": { | |
| "kind": "values", | |
| "values": [0.5, -1.0, 0.5, 1.0, 1.0, -1.0, 1.0, -1.0, -0.5, 0.5, -1.5, 0.5, -0.5, -1.0, -1.0, 1.5, -1.0, 0.5, 0.5, 1.0, -1.0, -1.0, 0.5, 0.5, 0.5, 0.5, -1.0, -0.5, 1.5, -1.0, 0.5, -1.0, 0.5, 0.5, 1.5, -1.0, -0.5, -1.0, 1.0, -1.0, -1.0, 0.5, -1.0, -1.5, 0.5, -1.0, -1.0, 1.5, 1.0, -1.0, -1.5, -1.0, -1.5, 1.5, -0.5, 0.5, -1.0, 0.5, -0.5, -0.5, -1.0, -1.5, -1.5, 0.5] | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 2, 1, 1, 1], "tolerance": 0.005 } } | |
| }, | |
| { | |
| "name": "ort_conv3d_f16_valid_c6_vec4_vec2_remainder", | |
| "provenance": { | |
| "source": "js/web/test/data/ops/conv3dncdhw_f16.jsonc", | |
| "test": "conv3d float16, x=[1, 6, 2, 2, 2], f=[2, 6, 2, 2, 2], s=1, d=1, p=valid", | |
| "notes": "float16 Conv3D (NCDHW). All operand values are multiples of 0.5 so every partial sum is exact in f16 and the result does not depend on accumulation order. ORT expected output: [-0.5, 1.0]" | |
| }, | |
| "attrs": { "kernel_shape": [2, 2, 2], "auto_pad": "VALID", "strides": [1, 1, 1], "dilations": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 6, 2, 2, 2], | |
| "data": { | |
| "kind": "values", | |
| "values": [1.0, 0.5, -0.5, -1.0, 0.5, 0.5, 0.5, -1.5, -1.5, -1.0, 1.0, -1.0, -0.5, -0.5, 1.0, -1.5, -1.0, 0.5, 0.5, 1.5, 1.5, -1.5, -1.0, 0.5, 0.5, 1.0, -0.5, 1.0, 0.5, 1.0, 1.0, -1.0, 1.5, -0.5, -1.0, 1.0, -1.5, 0.5, 0.5, -0.5, -1.5, 1.0, 0.5, -1.0, 0.5, -1.0, 0.5, -1.0] | |
| } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [2, 6, 2, 2, 2], | |
| "data": { | |
| "kind": "values", | |
| "values": [-1.0, -0.5, -1.0, -1.0, -0.5, 0.5, -0.5, 1.5, -1.5, 1.5, -1.0, -1.0, -1.0, -1.0, 1.5, -1.0, 1.5, -1.5, 1.0, 0.5, -1.5, -0.5, 1.0, 1.5, 0.5, -1.5, -0.5, -1.0, 1.5, 1.0, -1.5, 0.5, -0.5, 0.5, 0.5, 1.0, -1.5, -1.0, -1.5, -1.0, 0.5, -1.0, -1.5, -1.0, 0.5, -1.0, 0.5, -1.0, -0.5, -1.5, 0.5, -1.0, 0.5, -1.0, -1.0, -1.0, -1.5, -0.5, 0.5, 0.5, 1.0, -0.5, -1.5, -1.0, 1.5, 1.5, 0.5, -0.5, 1.5, -1.5, -1.5, 1.5, 1.5, -1.5, -1.5, -1.5, 0.5, 0.5, 1.0, 0.5, 0.5, -1.5, 0.5, -0.5, 0.5, -1.0, -1.0, 1.5, 1.5, 1.0, -1.0, 1.5, 0.5, 1.5, 1.0, 1.0] | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 2, 1, 1, 1], "tolerance": 0.005 } } | |
| }, | |
| { | |
| "name": "ort_conv3d_f16_valid_c7_vec4_vec3_remainder", | |
| "provenance": { | |
| "source": "js/web/test/data/ops/conv3dncdhw_f16.jsonc", | |
| "test": "conv3d float16, x=[1, 7, 2, 2, 2], f=[2, 7, 2, 2, 2], s=1, d=1, p=valid", | |
| "notes": "float16 Conv3D (NCDHW). All operand values are multiples of 0.5 so every partial sum is exact in f16 and the result does not depend on accumulation order. ORT expected output: [4.5, 0.25]" | |
| }, | |
| "attrs": { "kernel_shape": [2, 2, 2], "auto_pad": "VALID", "strides": [1, 1, 1], "dilations": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 7, 2, 2, 2], | |
| "data": { | |
| "kind": "values", | |
| "values": [1.0, 0.5, -1.0, -1.5, -0.5, 0.5, -1.0, 0.5, 1.0, -0.5, 1.0, 1.5, -1.0, -1.5, 0.5, -1.0, -1.0, -0.5, 0.5, 1.5, 1.0, 1.5, 0.5, 0.5, 1.0, 1.5, -1.0, 0.5, -1.0, -1.5, -1.5, -0.5, 0.5, -1.5, 0.5, 0.5, 1.0, 0.5, -1.5, 0.5, 0.5, -0.5, 1.0, 1.0, -1.0, 0.5, 0.5, -1.0, 1.0, -1.5, -0.5, 0.5, 0.5, -1.5, 1.5, -1.0] | |
| } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [2, 7, 2, 2, 2], | |
| "data": { | |
| "kind": "values", | |
| "values": [-1.5, -0.5, -0.5, -1.0, 0.5, 0.5, -1.0, 0.5, 0.5, 1.5, 0.5, -1.0, -1.0, -0.5, -1.5, 1.5, -1.0, 0.5, 0.5, 0.5, -1.0, -1.0, 1.0, 0.5, 0.5, -1.5, -1.5, -0.5, 0.5, -0.5, -1.0, -1.0, -1.5, 1.0, 0.5, 0.5, 0.5, -1.0, -1.0, -0.5, -0.5, -1.5, 0.5, 1.0, 0.5, 0.5, 1.5, 0.5, -1.5, -1.0, -1.0, 0.5, -0.5, -0.5, 0.5, 0.5, 1.0, 1.5, 1.5, 1.0, 1.5, -1.0, -1.0, 0.5, 0.5, 0.5, 1.5, -1.5, 1.5, 0.5, -0.5, 1.0, -1.0, 1.5, -1.0, 1.0, 0.5, -0.5, -0.5, -1.5, -1.5, -1.5, 0.5, -0.5, -1.0, -1.5, 1.5, -1.0, -0.5, 1.5, 1.5, -0.5, 1.0, -1.5, -1.0, 1.0, 0.5, 1.0, 1.5, 1.5, -1.5, -0.5, 0.5, -0.5, 0.5, 0.5, 0.5, 1.5, -1.5, -1.5, 0.5, -1.0] | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 2, 1, 1, 1], "tolerance": 0.005 } } | |
| }, | |
| { | |
| "name": "ort_conv3d_f16_same_upper_k3", | |
| "provenance": { | |
| "source": "js/web/test/data/ops/conv3dncdhw_f16.jsonc", | |
| "test": "conv3d float16, x=[1, 3, 3, 3, 3], f=[2, 3, 3, 3, 3], s=1, d=1, p=same_upper", | |
| "notes": "float16 Conv3D (NCDHW). All operand values are multiples of 0.5 so every partial sum is exact in f16 and the result does not depend on accumulation order. ORT expected output: [-5.75, -0.5, -1.5, 4.25, -5.75, 1.25, 0.75, -5.75, 0.25, -2.25, 4.5, -6.5, 9.25, -2.75, -3.5, 0.25, -5.0, 11.25, -2.5, -5.25, 4.0, -2.75, 1.5, 3.5, 5.75, -3.25, -0.75, -7.0, -5.5, 3.75, 2.75, 0.5, 7.0, -0.25, 3.25, -5.0, -4.5, -2.0, -5.75, 1.75, -1.0, -3.0, -6.75, -16.5, 1.25, -4.25, 3.75, 3.25, 2.25, -3.75, 4.0, -3.75, 11.25, -1.75]" | |
| }, | |
| "attrs": { "kernel_shape": [3, 3, 3], "auto_pad": "SAME_UPPER", "strides": [1, 1, 1], "dilations": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 3, 3, 3, 3], | |
| "data": { | |
| "kind": "values", | |
| "values": [-1.0, 0.5, -1.0, -1.5, 0.5, 0.5, 0.5, -0.5, 0.5, 1.5, -1.0, 0.5, -1.0, 0.5, 0.5, 0.5, -1.0, 1.5, -1.0, -0.5, -1.5, -1.0, 0.5, -1.0, 1.5, -1.5, -1.0, -0.5, -1.0, 0.5, 1.5, 0.5, -1.5, 1.0, 0.5, -0.5, -0.5, 1.0, -0.5, -0.5, 0.5, -0.5, 1.0, -1.0, 0.5, 0.5, -1.5, 1.0, 0.5, 0.5, 1.5, 0.5, 1.5, -0.5, -1.0, -1.0, -1.0, 1.0, 1.5, 0.5, -0.5, -1.0, -1.0, 1.0, -0.5, -1.5, -1.0, 1.5, 1.5, -1.5, 0.5, 0.5, -1.0, -1.0, -1.0, 1.5, -0.5, -1.0, -1.0, -1.0, 0.5] | |
| } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [2, 3, 3, 3, 3], | |
| "data": { | |
| "kind": "values", | |
| "values": [0.5, -1.5, 0.5, -0.5, 1.5, 0.5, 0.5, 1.5, 0.5, 1.5, -1.5, -0.5, 0.5, -1.0, -0.5, -1.5, -1.0, 0.5, -0.5, -1.0, 1.5, -1.0, -1.0, -0.5, 0.5, 1.5, -1.5, 1.5, -1.5, 0.5, 0.5, -0.5, 1.5, 1.0, 1.0, 0.5, -1.5, -1.0, 1.5, -0.5, -0.5, 1.5, -1.0, 0.5, 0.5, -1.5, 1.0, 1.5, -1.0, -0.5, -1.0, -1.5, 0.5, -0.5, 1.0, -1.5, 0.5, -1.0, 0.5, 1.0, 0.5, 0.5, -1.5, 1.5, 1.5, 0.5, 1.0, 1.5, 0.5, 0.5, -0.5, -1.0, -0.5, 1.5, -1.0, -0.5, 0.5, -0.5, 0.5, 1.0, 0.5, 1.0, -0.5, -1.5, -0.5, -1.0, 0.5, 0.5, 0.5, 1.0, 1.0, 1.0, 0.5, 0.5, -1.0, 1.0, -0.5, 0.5, -1.0, -1.5, -0.5, -1.0, -0.5, 0.5, 1.0, -1.0, 1.0, 1.5, 0.5, -0.5, 1.5, -0.5, -1.0, -1.0, -0.5, 0.5, 0.5, -1.0, 1.5, 1.5, -1.0, 1.5, 0.5, 1.5, -1.5, -1.0, -1.5, -1.5, -1.5, 0.5, -1.5, -1.0, 1.5, -0.5, -1.0, -1.0, 1.5, 0.5, -1.0, 0.5, -1.0, -1.0, 1.5, 0.5, 1.5, -1.0, -0.5, 1.0, -1.0, 0.5, 0.5, -1.0, -1.5, -1.5, -0.5, 1.0, 0.5, 1.5, 1.0, -1.0, -1.0, -1.0] | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 2, 3, 3, 3], "tolerance": 0.005 } } | |
| }, | |
| { | |
| "name": "ort_conv3d_f16_same_upper_k3_bias", | |
| "provenance": { | |
| "source": "js/web/test/data/ops/conv3dncdhw_f16.jsonc", | |
| "test": "conv3d float16 with bias, x=[1, 4, 3, 3, 3], f=[2, 4, 3, 3, 3], s=1, d=1, p=same_upper", | |
| "notes": "float16 Conv3D (NCDHW). All operand values are multiples of 0.5 so every partial sum is exact in f16 and the result does not depend on accumulation order. ORT expected output: [3.5, 9.75, -6.5, -17.75, 5.0, -3.0, 3.0, -4.25, -6.0, -5.0, 11.75, -2.25, 8.75, -2.5, 2.25, 11.75, 19.5, -12.25, 1.0, -6.0, -4.75, -1.5, 21.75, 0.75, -8.0, -5.5, -1.0, 0.25, 12.5, 0.0, 6.75, -2.75, -7.0, 5.25, -0.25, -1.25, 2.75, -4.25, 2.5, -3.25, 4.5, 11.5, 5.75, -4.25, -3.75, 5.5, 13.75, 11.25, -4.25, 2.5, 13.25, -1.0, -3.75, -1.5]" | |
| }, | |
| "attrs": { "kernel_shape": [3, 3, 3], "auto_pad": "SAME_UPPER", "strides": [1, 1, 1], "dilations": [1, 1, 1] }, | |
| "inputs": { | |
| "x": { | |
| "dtype": "float16", | |
| "shape": [1, 4, 3, 3, 3], | |
| "data": { | |
| "kind": "values", | |
| "values": [1.0, -0.5, -1.0, 1.5, 1.0, -1.5, -1.0, 1.0, 0.5, 0.5, -0.5, -0.5, -1.0, -1.5, -0.5, 1.0, -1.0, -0.5, 1.5, 0.5, 1.5, -0.5, 0.5, 1.0, 1.5, 1.5, -1.0, -1.0, 1.0, -1.5, -1.5, 1.0, -1.0, -0.5, 0.5, 1.0, -1.0, -1.5, -1.5, -0.5, 1.5, -1.5, 0.5, 0.5, 1.0, -1.0, 1.0, -1.0, -1.0, -1.5, 1.5, 1.5, -1.0, -0.5, -1.5, 1.0, 1.0, 0.5, -1.0, 0.5, -1.5, 0.5, 1.0, 1.0, -1.0, 1.0, -1.0, -1.5, -1.0, -0.5, 1.0, -1.0, 0.5, -0.5, -1.0, -0.5, 0.5, 0.5, 1.0, -1.0, -1.0, 1.5, -1.0, 0.5, -0.5, 1.5, 1.0, 1.5, -0.5, -1.0, -1.5, -1.0, -1.5, -1.5, -1.0, 0.5, -0.5, -0.5, 1.5, 0.5, -1.5, 1.0, 0.5, -1.5, -0.5, -0.5, -1.0, 1.0] | |
| } | |
| }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [2, 4, 3, 3, 3], | |
| "data": { | |
| "kind": "values", | |
| "values": [0.5, 1.0, -1.0, -0.5, -1.0, 1.5, 1.5, 1.0, -1.0, -1.0, -1.5, 1.0, 1.0, -1.5, -1.5, 0.5, 1.5, -1.0, -0.5, -1.5, 1.0, 0.5, 0.5, -0.5, 1.5, -1.0, 1.0, -1.5, -1.5, 0.5, 1.0, -1.0, -1.5, -1.0, -1.0, 1.5, -1.0, 1.0, -1.5, -0.5, 1.0, 0.5, 0.5, 1.0, -1.5, 1.5, 0.5, 1.5, 0.5, 0.5, 0.5, -0.5, 0.5, 0.5, 1.0, -1.0, 0.5, -1.5, -1.0, -0.5, 1.0, -0.5, -1.0, 0.5, -0.5, -1.5, 1.0, -1.5, 1.0, -1.0, -0.5, -1.0, -0.5, 0.5, -0.5, -1.0, 0.5, -1.5, 1.0, -0.5, 1.0, 0.5, -1.5, 0.5, 0.5, -1.0, 0.5, -1.0, -0.5, -1.5, -1.0, -1.5, 1.5, 0.5, -1.0, 0.5, 0.5, -1.0, 0.5, 1.0, 0.5, -1.0, -1.0, -1.5, -1.5, -1.5, -1.5, 1.5, -1.5, 0.5, 1.0, -0.5, -0.5, 0.5, -0.5, -1.0, 1.5, -1.0, 0.5, 1.0, -0.5, 1.5, 1.0, 1.0, 1.0, 0.5, -0.5, -1.0, 0.5, 1.0, 1.0, -1.0, 0.5, -0.5, 0.5, -1.5, 0.5, 0.5, -1.5, -1.5, -0.5, 0.5, 0.5, -1.5, 0.5, -1.0, 0.5, -1.0, -1.0, 1.0, -1.5, 0.5, 0.5, 0.5, 0.5, 0.5, -1.5, 0.5, 0.5, 0.5, -1.5, -1.0, 0.5, 1.0, 1.0, -1.5, -1.0, 1.5, -0.5, -1.5, -1.5, 1.0, 0.5, 1.5, -1.0, -0.5, 1.0, 0.5, -1.5, 1.0, 1.0, 0.5, 1.0, 0.5, -1.5, 0.5, -1.0, -1.5, 0.5, 1.0, 0.5, -0.5, -1.0, 1.5, -1.0, 1.5, -1.0, -1.0, -0.5, -1.5, -1.0, -0.5, -1.0, -0.5, 1.0, 1.5, 0.5, -1.0, -0.5, 0.5, -0.5, 1.0, 0.5, 0.5, -1.0, 1.5] | |
| } | |
| }, | |
| "bias": { "dtype": "float16", "shape": [2], "data": { "kind": "values", "values": [-1.5, 1.0] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 2, 3, 3, 3], "tolerance": 0.005 } } | |
| }, | |
| { | |
| "name": "ort_fp16_pointwise_odd_out_channels_97", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/nn/conv_fp16_test.cc", | |
| "test": "ConvFp16Test.WebGpuSubgroupPointwiseNoBias", | |
| "notes": "f16 point-wise (1x1) Conv with an ODD out-channel count (97) -- the shape ORT added to exercise safe reuse of a padded constant B in the subgroup-matrix path. X is all 1.0; W[oc][ic] = (oc%7-3)/16 (period 7 in oc, so a 112-long cycle reproduces it exactly), so every output equals oc%7-3 exactly in f16." | |
| }, | |
| "attrs": { "group": 1, "kernel_shape": [1, 1], "pads": [0, 0, 0, 0], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { "dtype": "float16", "shape": [1, 16, 4, 8], "data": { "kind": "constant", "value": 1.0 } }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [97, 16, 1, 1], | |
| "data": { | |
| "kind": "cycle", | |
| "values": { "$ref": "#/fixtureArrays/ort_fp16_pointwise_odd_out_channels_97_input_w" } | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 97, 4, 8], "tolerance": 0.005 } } | |
| }, | |
| { | |
| "name": "ort_fp16_pointwise_odd_out_channels_97_bias", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/nn/conv_fp16_test.cc", | |
| "test": "ConvFp16Test.WebGpuSubgroupPointwiseBias", | |
| "notes": "f16 point-wise (1x1) Conv with an ODD out-channel count (97) -- the shape ORT added to exercise safe reuse of a padded constant B in the subgroup-matrix path. X is all 1.0; W[oc][ic] = (oc%7-3)/16 (period 7 in oc, so a 112-long cycle reproduces it exactly), so every output equals oc%7-3 exactly in f16 plus bias (oc%3-1)*0.25 (period 3)." | |
| }, | |
| "attrs": { "group": 1, "kernel_shape": [1, 1], "pads": [0, 0, 0, 0], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { "dtype": "float16", "shape": [1, 16, 4, 8], "data": { "kind": "constant", "value": 1.0 } }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [97, 16, 1, 1], | |
| "data": { | |
| "kind": "cycle", | |
| "values": { "$ref": "#/fixtureArrays/ort_fp16_pointwise_odd_out_channels_97_input_w" } | |
| } | |
| }, | |
| "bias": { "dtype": "float16", "shape": [97], "data": { "kind": "cycle", "values": [-0.25, 0.0, 0.25] } } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 97, 4, 8], "tolerance": 0.005 } } | |
| }, | |
| { | |
| "name": "ort_fp16_pointwise_odd_out_channels_97_batch2", | |
| "provenance": { | |
| "source": "onnxruntime/test/providers/cpu/nn/conv_fp16_test.cc", | |
| "test": "ConvFp16Test.WebGpuSubgroupPointwiseBatch", | |
| "notes": "f16 point-wise (1x1) Conv with an ODD out-channel count (97) -- the shape ORT added to exercise safe reuse of a padded constant B in the subgroup-matrix path. X is all 1.0; W[oc][ic] = (oc%7-3)/16 (period 7 in oc, so a 112-long cycle reproduces it exactly), so every output equals oc%7-3 exactly in f16." | |
| }, | |
| "attrs": { "group": 1, "kernel_shape": [1, 1], "pads": [0, 0, 0, 0], "strides": [1, 1], "dilations": [1, 1] }, | |
| "inputs": { | |
| "x": { "dtype": "float16", "shape": [2, 16, 4, 8], "data": { "kind": "constant", "value": 1.0 } }, | |
| "w": { | |
| "dtype": "float16", | |
| "shape": [97, 16, 1, 1], | |
| "data": { | |
| "kind": "cycle", | |
| "values": { "$ref": "#/fixtureArrays/ort_fp16_pointwise_odd_out_channels_97_input_w" } | |
| } | |
| } | |
| }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 97, 4, 8], "tolerance": 0.005 } } | |
| } | |
| ] | |
| } | |