Download build/webgpu/bench.json from webgpu-kernels/ai.onnx.Resize: direct link, hf CLI and curl.
- Browser
- Download file 17.5 kB
-
https://huggingface.co/kernels/webgpu-kernels/ai.onnx.Resize/resolve/v1/build/webgpu/bench.json
- Command line
-
hf download hf://webgpu-kernels/ai.onnx.Resize@v1/build/webgpu/bench.json
-
curl -L -o bench.json https://huggingface.co/kernels/webgpu-kernels/ai.onnx.Resize/resolve/v1/build/webgpu/bench.json
17.5 kB
| { | |
| "tunableSpace": { "WORKGROUP_SIZE": [64, 128, 256] }, | |
| "cases": [ | |
| { | |
| "name": "nchw_1x64_256_to_512_linear_decoder", | |
| "preset": "smoke", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "half_pixel" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 256, 256], "dist": "normal", "seed": 731, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 512, 512] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_1x64_256_to_512_linear_asymmetric_decoder", | |
| "preset": "smoke", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "asymmetric" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 256, 256], "dist": "normal", "seed": 732, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 512, 512] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] } | |
| }, | |
| { | |
| "name": "nchw_1x3_256_to_512_linear", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "half_pixel" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 3, 256, 256] } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 3, 512, 512] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_1x32_256_to_512_linear_align_corners_large", | |
| "preset": "smoke", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "align_corners" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 256, 256], "dist": "normal", "seed": 751, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 512, 512] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_1x3_256_to_512_linear_align_corners_fallback", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "align_corners" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 3, 256, 256] } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 3, 512, 512] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_1x3_256_to_512_nearest_2x", | |
| "attrs": { "mode": "nearest", "coordinate_transformation_mode": "asymmetric", "nearest_mode": "floor" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 3, 256, 256] } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 3, 512, 512] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_1x128_64_to_128_nearest_2x_f16_vae", | |
| "preset": "smoke", | |
| "attrs": { | |
| "mode": "nearest", | |
| "coordinate_transformation_mode": "asymmetric", | |
| "nearest_mode": "floor", | |
| "scales": [1, 1, 2, 2] | |
| }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [1, 128, 64, 64], "dist": "normal", "seed": 601, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 128, 128, 128] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 2" }] } | |
| }, | |
| { | |
| "name": "nchw_1x3_176_to_528_nearest_3x", | |
| "attrs": { "mode": "nearest", "coordinate_transformation_mode": "asymmetric", "nearest_mode": "floor" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 3, 176, 176] } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 3, 528, 528] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_1x3_128_to_512_nearest_4x", | |
| "attrs": { | |
| "mode": "nearest", | |
| "coordinate_transformation_mode": "half_pixel", | |
| "nearest_mode": "round_prefer_floor" | |
| }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 3, 128, 128] } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 3, 512, 512] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_1x64_256_to_510_linear_w_odd_scalar_cliff", | |
| "preset": "smoke", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "half_pixel" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 256, 256], "dist": "normal", "seed": 781, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 512, 510] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_1x64_256_to_512_linear_f16_vec4_decoder", | |
| "preset": "smoke", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "half_pixel" }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [1, 64, 256, 256], "dist": "normal", "seed": 782, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 512, 512] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 2" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_1x64_256_to_510_linear_f16_w_odd_scalar_cliff", | |
| "preset": "smoke", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "half_pixel" }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [1, 64, 256, 256], "dist": "normal", "seed": 783, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 512, 510] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 2" }] } | |
| }, | |
| { | |
| "name": "nchw_1x64_512_to_256_linear_downsample_vec4", | |
| "preset": "smoke", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "half_pixel" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 512, 512], "dist": "normal", "seed": 784, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 256, 256] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "antialias_linear_8x_downsample_tap_explosion_stress", | |
| "preset": "stress", | |
| "attrs": { | |
| "mode": "linear", | |
| "antialias": 1, | |
| "coordinate_transformation_mode": "half_pixel", | |
| "scales": [1, 1, 0.125, 0.125] | |
| }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 256, 256], "dist": "normal", "seed": 901, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 32, 32], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] } | |
| }, | |
| { | |
| "name": "generic_nhwc_linear_2x_upsample_scalar_no_vec4_stress", | |
| "preset": "stress", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "half_pixel" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 256, 256, 16], "dist": "normal", "seed": 902, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 512, 512, 16], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] } | |
| }, | |
| { | |
| "name": "generic_rank5_cubic_64tap_unroll_stress", | |
| "preset": "stress", | |
| "attrs": { "mode": "cubic", "coordinate_transformation_mode": "half_pixel", "cubic_coeff_a": -0.75 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 32, 32, 32], "dist": "normal", "seed": 903, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 64, 64, 64], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] } | |
| }, | |
| { | |
| "name": "nchw_1x64_256_to_512_linear_opset18_axes_spelling", | |
| "provenance": { | |
| "notes": "An opset-18 NCHW decoder upsample names the two spatial axes and supplies one 2x scale for each, producing [1,64,512,512]." | |
| }, | |
| "preset": "smoke", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "half_pixel", "axes": [2, 3], "scales": [2, 2] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 256, 256], "dist": "normal", "seed": 731, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 512, 512] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "suffix_linear_f32_c3", | |
| "preset": "edge", | |
| "attrs": { "mode": "linear" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 64, 3], "dist": "normal", "seed": 993, "scale": 0.3 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 128, 128, 3] } }, | |
| "provenance": { | |
| "notes": "Aligned and unaligned identity suffixes exercise generic linear interpolation reuse and its scalar fallback." | |
| } | |
| }, | |
| { | |
| "name": "suffix_linear_f32_c4", | |
| "preset": "edge", | |
| "attrs": { "mode": "linear" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 64, 4], "dist": "normal", "seed": 993, "scale": 0.3 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 128, 128, 4] } }, | |
| "provenance": { | |
| "notes": "Aligned and unaligned identity suffixes exercise generic linear interpolation reuse and its scalar fallback." | |
| } | |
| }, | |
| { | |
| "name": "suffix_linear_f32_c7", | |
| "preset": "edge", | |
| "attrs": { "mode": "linear" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 64, 7], "dist": "normal", "seed": 993, "scale": 0.3 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 128, 128, 7] } }, | |
| "provenance": { | |
| "notes": "Aligned and unaligned identity suffixes exercise generic linear interpolation reuse and its scalar fallback." | |
| } | |
| }, | |
| { | |
| "name": "suffix_linear_f32_c8", | |
| "preset": "edge", | |
| "attrs": { "mode": "linear" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 64, 8], "dist": "normal", "seed": 993, "scale": 0.3 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 128, 128, 8] } }, | |
| "provenance": { | |
| "notes": "Aligned and unaligned identity suffixes exercise generic linear interpolation reuse and its scalar fallback." | |
| } | |
| }, | |
| { | |
| "name": "suffix_linear_f16_c8", | |
| "preset": "edge", | |
| "attrs": { "mode": "linear" }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [1, 128, 128, 8], "dist": "normal", "seed": 993, "scale": 0.3 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 256, 256, 8] } }, | |
| "provenance": { | |
| "notes": "Aligned and unaligned identity suffixes exercise generic linear interpolation reuse and its scalar fallback." | |
| } | |
| }, | |
| { | |
| "name": "suffix_linear_3axes_f32", | |
| "preset": "edge", | |
| "attrs": { "mode": "linear" }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [1, 16, 16, 16, 8], "dist": "normal", "seed": 993, "scale": 0.3 } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 24, 24, 24, 8] } }, | |
| "provenance": { | |
| "notes": "Aligned and unaligned identity suffixes exercise generic linear interpolation reuse and its scalar fallback." | |
| } | |
| }, | |
| { | |
| "name": "explicit_linear_f16_2x", | |
| "preset": "smoke", | |
| "attrs": { "mode": "linear", "coordinate_transformation_mode": "half_pixel", "scales": [1, 1, 2, 2] }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [1, 64, 256, 256], "dist": "normal", "seed": 782, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 512, 512] } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 2" }] | |
| }, | |
| "provenance": { | |
| "notes": "The f16 decoder benchmark case written with full-rank scales; identical shape and input distribution." | |
| } | |
| }, | |
| { | |
| "name": "cubic_suffix_float32_s128_c16_exclude0", | |
| "preset": "stress", | |
| "attrs": { | |
| "mode": "cubic", | |
| "coordinate_transformation_mode": "half_pixel", | |
| "cubic_coeff_a": -0.75, | |
| "exclude_outside": 0 | |
| }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 128, 128, 16], "dist": "normal", "seed": 902, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 256, 256, 16], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] }, | |
| "provenance": { | |
| "notes": "Cubic channel-contiguous interpolation with an aligned unchanged suffix. Metric counts logical input plus output bytes; it does not count all tap reads or describe physical memory traffic." | |
| } | |
| }, | |
| { | |
| "name": "cubic_suffix_float16_s128_c16_exclude0", | |
| "preset": "stress", | |
| "attrs": { | |
| "mode": "cubic", | |
| "coordinate_transformation_mode": "half_pixel", | |
| "cubic_coeff_a": -0.75, | |
| "exclude_outside": 0 | |
| }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [1, 128, 128, 16], "dist": "normal", "seed": 902, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 256, 256, 16], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 2" }] }, | |
| "provenance": { | |
| "notes": "Cubic channel-contiguous interpolation with an aligned unchanged suffix. Metric counts logical input plus output bytes; it does not count all tap reads or describe physical memory traffic." | |
| } | |
| }, | |
| { | |
| "name": "cubic_suffix_float32_s256_c16_exclude0", | |
| "preset": "stress", | |
| "attrs": { | |
| "mode": "cubic", | |
| "coordinate_transformation_mode": "half_pixel", | |
| "cubic_coeff_a": -0.75, | |
| "exclude_outside": 0 | |
| }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 256, 256, 16], "dist": "normal", "seed": 902, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 512, 512, 16], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] }, | |
| "provenance": { | |
| "notes": "Cubic channel-contiguous interpolation with an aligned unchanged suffix. Metric counts logical input plus output bytes; it does not count all tap reads or describe physical memory traffic." | |
| } | |
| }, | |
| { | |
| "name": "cubic_suffix_float16_s256_c16_exclude0", | |
| "preset": "stress", | |
| "attrs": { | |
| "mode": "cubic", | |
| "coordinate_transformation_mode": "half_pixel", | |
| "cubic_coeff_a": -0.75, | |
| "exclude_outside": 0 | |
| }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [1, 256, 256, 16], "dist": "normal", "seed": 902, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 512, 512, 16], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 2" }] }, | |
| "provenance": { | |
| "notes": "Cubic channel-contiguous interpolation with an aligned unchanged suffix. Metric counts logical input plus output bytes; it does not count all tap reads or describe physical memory traffic." | |
| } | |
| }, | |
| { | |
| "name": "cubic_suffix_float32_s128_c16_exclude1", | |
| "preset": "stress", | |
| "attrs": { | |
| "mode": "cubic", | |
| "coordinate_transformation_mode": "half_pixel", | |
| "cubic_coeff_a": -0.75, | |
| "exclude_outside": 1 | |
| }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 128, 128, 16], "dist": "normal", "seed": 902, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 256, 256, 16], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] }, | |
| "provenance": { | |
| "notes": "Cubic channel-contiguous interpolation with an aligned unchanged suffix. Metric counts logical input plus output bytes; it does not count all tap reads or describe physical memory traffic." | |
| } | |
| }, | |
| { | |
| "name": "cubic_suffix_float16_s128_c16_exclude1", | |
| "preset": "stress", | |
| "attrs": { | |
| "mode": "cubic", | |
| "coordinate_transformation_mode": "half_pixel", | |
| "cubic_coeff_a": -0.75, | |
| "exclude_outside": 1 | |
| }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [1, 128, 128, 16], "dist": "normal", "seed": 902, "scale": 1 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 256, 256, 16], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 2" }] }, | |
| "provenance": { | |
| "notes": "Cubic channel-contiguous interpolation with an aligned unchanged suffix. Metric counts logical input plus output bytes; it does not count all tap reads or describe physical memory traffic." | |
| } | |
| } | |
| ] | |
| } | |