Download build/webgpu/bench.json from webgpu-kernels/ai.onnx.AveragePool: direct link, hf CLI and curl.
- Browser
- Download file 15.8 kB
-
https://huggingface.co/kernels/webgpu-kernels/ai.onnx.AveragePool/resolve/v1/build/webgpu/bench.json
- Command line
-
hf download hf://webgpu-kernels/ai.onnx.AveragePool@v1/build/webgpu/bench.json
-
curl -L -o bench.json https://huggingface.co/kernels/webgpu-kernels/ai.onnx.AveragePool/resolve/v1/build/webgpu/bench.json
15.8 kB
| { | |
| "tunableSpace": { "WORKGROUP_SIZE": [64, 128, 256] }, | |
| "cases": [ | |
| { | |
| "name": "average-pool-f32-b1c32-64x64-k2s2", | |
| "preset": "smoke", | |
| "vars": { "batch": 1, "channels": 32, "inH": 64, "inW": 64 }, | |
| "attrs": { "kernel_shape": [2, 2], "strides": [2, 2], "pads": [0, 0, 0, 0] }, | |
| "inputs": { "x": { "shape": [1, 32, 64, 64], "dtype": "float32", "dist": "normal", "seed": 116, "scale": 0.2 } }, | |
| "outputs": { "y": { "shape": [1, 32, 32, 32], "dtype": "float32" } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_8x64x112x112_k3s1p1_unrolled", | |
| "preset": "smoke", | |
| "vars": { "batch": 8, "channels": 64, "inH": 112, "inW": 112 }, | |
| "attrs": { "kernel_shape": [3, 3], "strides": [1, 1], "pads": [1, 1, 1, 1] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [8, 64, 112, 112], "dist": "normal", "seed": 205 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [8, 64, 112, 112], "dist": "empty" } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 4 * 2" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_f16_8x64x112x112_k3s1p1_unrolled", | |
| "preset": "smoke", | |
| "vars": { "batch": 8, "channels": 64, "inH": 112, "inW": 112 }, | |
| "attrs": { "kernel_shape": [3, 3], "strides": [1, 1], "pads": [1, 1, 1, 1] }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [8, 64, 112, 112], "dist": "normal", "seed": 206 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [8, 64, 112, 112], "dist": "empty" } }, | |
| "bench": { | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 2 * 2" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_f16_1x128x56x56_k3s1p1", | |
| "preset": "model", | |
| "vars": { "batch": 1, "channels": 128, "inH": 56, "inW": 56 }, | |
| "attrs": { "kernel_shape": [3, 3], "strides": [1, 1], "pads": [1, 1, 1, 1] }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [1, 128, 56, 56], "dist": "normal", "seed": 207 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 128, 56, 56], "dist": "empty" } }, | |
| "bench": { | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 2 * 2" }] | |
| } | |
| }, | |
| { | |
| "name": "average-pool-f32-b1c64-224x224-k7s2p3-generic", | |
| "preset": "smoke", | |
| "vars": { "batch": 1, "channels": 64, "inH": 224, "inW": 224 }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [7, 7], "strides": [2, 2], "pads": [3, 3, 3, 3] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 224, 224], "dist": "normal", "seed": 311, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 112, 112], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 4" }] } | |
| }, | |
| { | |
| "name": "average-pool-f16-b1c64-224x224-k7s2p3-generic", | |
| "preset": "smoke", | |
| "vars": { "batch": 1, "channels": 64, "inH": 224, "inW": 224 }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [7, 7], "strides": [2, 2], "pads": [3, 3, 3, 3] }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [1, 64, 224, 224], "dist": "normal", "seed": 312, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [1, 64, 112, 112], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 2" }] } | |
| }, | |
| { | |
| "name": "average-pool-f32-b8c64-112x114-k3s1p1-unaligned-fallback", | |
| "preset": "smoke", | |
| "vars": { "batch": 8, "channels": 64, "inH": 112, "inW": 114 }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [3, 3], "strides": [1, 1], "pads": [1, 1, 1, 1] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [8, 64, 112, 114], "dist": "normal", "seed": 313, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [8, 64, 112, 114], "dist": "empty" } }, | |
| "bench": { | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 4 * 2" }] | |
| } | |
| }, | |
| { | |
| "name": "average-pool-f32-ncdhw-b1c32-32x64x64-k2s2-3d", | |
| "preset": "smoke", | |
| "vars": { "batch": 1, "channels": 32, "inD": 32, "inH": 64, "inW": 64 }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [2, 2, 2], "strides": [2, 2, 2], "pads": [0, 0, 0, 0, 0, 0] }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [1, 32, 32, 64, 64], "dist": "normal", "seed": 314, "scale": 0.2 } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 16, 32, 32], "dist": "empty" } }, | |
| "bench": { | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inD * args.inH * args.inW * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "average-pool-f32-ncl-b8c256-1024-k3s2-1d", | |
| "preset": "smoke", | |
| "vars": { "batch": 8, "channels": 256, "inW": 1024 }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [3], "strides": [2], "pads": [0, 0] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [8, 256, 1024], "dist": "normal", "seed": 315, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [8, 256, 511], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inW * 4" }] } | |
| }, | |
| { | |
| "name": "global_avg_pool_bigkernel_tiny_output_launch_starved_stress", | |
| "preset": "stress", | |
| "vars": { "batch": 1, "channels": 512, "inH": 64, "inW": 64 }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [64, 64], "strides": [1, 1], "pads": [0, 0, 0, 0] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 512, 64, 64], "dist": "normal", "seed": 4101, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 512, 1, 1], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 4" }] } | |
| }, | |
| { | |
| "name": "global-avg-pool-f32-b2c256-96x96-segmentation-head", | |
| "preset": "stress", | |
| "vars": { "batch": 2, "channels": 256, "inH": 96, "inW": 96 }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [96, 96], "strides": [1, 1], "pads": [0, 0, 0, 0] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [2, 256, 96, 96], "dist": "normal", "seed": 4103, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 256, 1, 1], "dist": "empty" } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw2d_generic_k7s1_overlap_reread_large_map_stress", | |
| "preset": "stress", | |
| "vars": { "batch": 4, "channels": 64, "inH": 128, "inW": 128 }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [7, 7], "strides": [1, 1], "pads": [3, 3, 3, 3] }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [4, 64, 128, 128], "dist": "normal", "seed": 4102, "scale": 0.2 } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [4, 64, 128, 128], "dist": "empty" } }, | |
| "bench": { | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 4 * 2" }] | |
| } | |
| }, | |
| { | |
| "name": "average-pool-k7s1p3-f32-b2c128-96x96-segmentation-context", | |
| "preset": "stress", | |
| "vars": { "batch": 2, "channels": 128, "inH": 96, "inW": 96 }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [7, 7], "strides": [1, 1], "pads": [3, 3, 3, 3] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [2, 128, 96, 96], "dist": "normal", "seed": 4104, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 128, 96, 96], "dist": "empty" } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 4 * 2" }] | |
| } | |
| }, | |
| { | |
| "name": "average-pool-k7s1p3-f32-b1c64-112x113-odd-width-cliff", | |
| "preset": "stress", | |
| "vars": { "batch": 1, "channels": 64, "inH": 112, "inW": 113 }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [7, 7], "strides": [1, 1], "pads": [3, 3, 3, 3] }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [1, 64, 112, 113], "dist": "normal", "seed": 4105, "scale": 0.2 } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 112, 113], "dist": "empty" } }, | |
| "bench": { | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 4 * 2" }] | |
| } | |
| }, | |
| { | |
| "name": "global-averagepool-rank5-serial-reduction-pathology", | |
| "preset": "stress", | |
| "provenance": { | |
| "source": "synthetic benchmark", | |
| "notes": "Rank-5 global pooling over 131,072 spatial values per plane exercises the parallel global-window reduction and its feature-tier alternatives." | |
| }, | |
| "vars": { "batch": 1, "channels": 32, "inD": 32, "inH": 64, "inW": 64 }, | |
| "attrs": { | |
| "count_include_pad": 0, | |
| "kernel_shape": [32, 64, 64], | |
| "strides": [1, 1, 1], | |
| "pads": [0, 0, 0, 0, 0, 0] | |
| }, | |
| "inputs": { | |
| "x": { "dtype": "float32", "shape": [1, 32, 32, 64, 64], "dist": "normal", "seed": 5101, "scale": 0.2 } | |
| }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 1, 1, 1], "dist": "empty" } }, | |
| "bench": { | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inD * args.inH * args.inW * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "nchw_8x64x112x112_k3s1_same_upper_spelling", | |
| "preset": "smoke", | |
| "vars": { "batch": 8, "channels": 64, "inH": 112, "inW": 112 }, | |
| "attrs": { "kernel_shape": [3, 3], "strides": [1, 1], "auto_pad": "SAME_UPPER" }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [8, 64, 112, 112], "dist": "normal", "seed": 205 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [8, 64, 112, 112], "dist": "empty" } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.inH * args.inW * 4 * 2" }] | |
| }, | |
| "provenance": { | |
| "notes": "SAME_UPPER resolves to symmetric padding for this shape, so every pooling window has the same geometry as the explicit-padding form." | |
| } | |
| }, | |
| { | |
| "name": "average-pool-f32-b8c64-56x56-k7s1-valid-no-pad", | |
| "preset": "edge", | |
| "attrs": { "kernel_shape": [7, 7], "strides": [1, 1] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [8, 64, 56, 56] } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [8, 64, 50, 50] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] } | |
| }, | |
| { | |
| "name": "average-pool-f32-b8c64-56x56-k7s7-valid-no-pad", | |
| "preset": "edge", | |
| "attrs": { "kernel_shape": [7, 7], "strides": [7, 7] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [8, 64, 56, 56] } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [8, 64, 8, 8] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] } | |
| }, | |
| { | |
| "name": "average-pool-f32-b1c32-24x24-k12s1p2-window-parallel-starved", | |
| "preset": "stress", | |
| "provenance": { | |
| "source": "synthetic benchmark", | |
| "notes": "A 144-tap padded window produces 9,248 outputs across 32 channels. This brackets the region where output parallelism exceeds the number of taps." | |
| }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [12, 12], "strides": [1, 1], "pads": [2, 2, 2, 2] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 32, 24, 24], "dist": "normal", "seed": 4301, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 32, 17, 17], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] } | |
| }, | |
| { | |
| "name": "average-pool-f32-b1c64-24x24-k12s1p2-serial-side-of-gate", | |
| "preset": "stress", | |
| "provenance": { | |
| "source": "synthetic benchmark", | |
| "notes": "Measures average pooling with a 12x12 window and padding 2 over 64 channels of a 24x24 input, producing a 17x17 (18,496-element) output." | |
| }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [12, 12], "strides": [1, 1], "pads": [2, 2, 2, 2] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 24, 24], "dist": "normal", "seed": 4302, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 17, 17], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] } | |
| }, | |
| { | |
| "name": "average-pool-f32-b1c16-56x56-k28s28-window-parallel-extreme-starved", | |
| "preset": "stress", | |
| "provenance": { | |
| "source": "synthetic benchmark", | |
| "notes": "A 784-tap non-overlapping window leaving 64 outputs: the serial route dispatches a single workgroup and loops 784 taps on each of 64 invocations." | |
| }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [28, 28], "strides": [28, 28], "pads": [0, 0, 0, 0] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 16, 56, 56], "dist": "normal", "seed": 4303, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 16, 2, 2], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] } | |
| }, | |
| { | |
| "name": "average-pool-f32-b1c64-14x14-k14s1p6-padded-near-global", | |
| "preset": "stress", | |
| "provenance": { | |
| "source": "synthetic benchmark", | |
| "notes": "A padded near-global pool from a classifier head: a 196-tap window over a 14x14 map with pad 6 leaves 10816 outputs, 43 serial dispatch groups." | |
| }, | |
| "attrs": { "count_include_pad": 0, "kernel_shape": [14, 14], "strides": [1, 1], "pads": [6, 6, 6, 6] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 64, 14, 14], "dist": "normal", "seed": 4304, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 64, 13, 13], "dist": "empty" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(numel(shapes.x) + numel(shapes.y)) * 4" }] } | |
| }, | |
| { | |
| "name": "occupancy-window_parallel_nchw2d_count_include_pad_k12p2_small_output", | |
| "preset": "stress", | |
| "attrs": { | |
| "kernel_shape": [12, 12], | |
| "strides": [2, 2], | |
| "pads": [2, 2, 2, 2], | |
| "count_include_pad": 1, | |
| "ceil_mode": 0 | |
| }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 24, 24], "dist": "normal", "seed": 5482, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 9, 9] } } | |
| }, | |
| { | |
| "name": "occupancy-window_parallel_outputs_to_taps_boundary_128", | |
| "preset": "stress", | |
| "attrs": { "kernel_shape": [128], "strides": [1] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 255], "dist": "normal", "seed": 5482, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 128] } } | |
| }, | |
| { | |
| "name": "occupancy-window_parallel_outputs_to_taps_boundary_129", | |
| "preset": "stress", | |
| "attrs": { "kernel_shape": [128], "strides": [1] }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 256], "dist": "normal", "seed": 5482, "scale": 0.2 } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 129] } } | |
| } | |
| ] | |
| } | |