Download build/webgpu/bench.json from webgpu-kernels/ai.onnx.ReduceMean: direct link, hf CLI and curl.
- Browser
- Download file 14.1 kB
-
https://huggingface.co/kernels/webgpu-kernels/ai.onnx.ReduceMean/resolve/v1/build/webgpu/bench.json
- Command line
-
hf download hf://webgpu-kernels/ai.onnx.ReduceMean@v1/build/webgpu/bench.json
-
curl -L -o bench.json https://huggingface.co/kernels/webgpu-kernels/ai.onnx.ReduceMean/resolve/v1/build/webgpu/bench.json
14.1 kB
| { | |
| "tunableSpace": { "WORKGROUP_SIZE": [64, 128, 256], "MIDDLE_AXIS_TILE_COLS": [16, 32, 64] }, | |
| "cases": [ | |
| { | |
| "name": "reduce-mean-axis0-1024x512", | |
| "preset": "smoke", | |
| "vars": { "dtype": "float32", "rows": 1024, "cols": 512 }, | |
| "attrs": { "axes": [0], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [1024, 512], "dtype": "float32", "dist": "normal", "seed": 881, "scale": 1 } }, | |
| "outputs": { "y": { "shape": [512], "dtype": "float32" } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype)" }] | |
| } | |
| }, | |
| { | |
| "name": "reduce-mean-axis1-1024x4096", | |
| "preset": "smoke", | |
| "vars": { "dtype": "float32", "rows": 1024, "cols": 4096 }, | |
| "attrs": { "axes": [1], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [1024, 4096], "dtype": "float32", "dist": "normal", "seed": 880, "scale": 1 } }, | |
| "outputs": { "y": { "shape": [1024], "dtype": "float32" } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype)" }] | |
| } | |
| }, | |
| { | |
| "name": "reducemean-lastaxis-f32-4096x4096", | |
| "preset": "smoke", | |
| "vars": { "rows": 4096, "cols": 4096 }, | |
| "attrs": { "axes": [1], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [4096, 4096], "dtype": "float32", "dist": "normal", "seed": 117, "scale": 0.2 } }, | |
| "outputs": { "y": { "shape": [4096], "dtype": "float32" } }, | |
| "bench": { "primary": true, "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * 4" }] } | |
| }, | |
| { | |
| "name": "reducemean-rank3-lastaxis-f32-64x64x4096", | |
| "preset": "smoke", | |
| "vars": { "rows": 4096, "cols": 4096 }, | |
| "attrs": { "axes": [2], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [64, 64, 4096], "dtype": "float32", "dist": "normal", "seed": 218, "scale": 0.2 } }, | |
| "outputs": { "y": { "shape": [64, 64], "dtype": "float32" } }, | |
| "bench": { "primary": true, "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * 4" }] } | |
| }, | |
| { | |
| "name": "reducemean-rank3-lastaxis-smallcols-f32-1024x32x16", | |
| "preset": "smoke", | |
| "vars": { "rows": 32768, "cols": 16 }, | |
| "attrs": { "axes": [2], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [1024, 32, 16], "dtype": "float32", "dist": "normal", "seed": 412, "scale": 0.2 } }, | |
| "outputs": { "y": { "shape": [1024, 32], "dtype": "float32" } }, | |
| "bench": { "primary": true, "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * 4" }] } | |
| }, | |
| { | |
| "name": "axis0-large-65536x512", | |
| "preset": "smoke", | |
| "vars": { "rows": 65536, "cols": 512 }, | |
| "attrs": { "axes": [0], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [65536, 512], "dtype": "float32", "dist": "normal", "scale": 0.2, "seed": 311 } }, | |
| "outputs": { "y": { "shape": [512], "dtype": "float32" } }, | |
| "bench": { "primary": true, "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * 4" }] } | |
| }, | |
| { | |
| "name": "axis0-tall-16384x1024", | |
| "preset": "smoke", | |
| "vars": { "rows": 16384, "cols": 1024 }, | |
| "attrs": { "axes": [0], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [16384, 1024], "dtype": "float32", "dist": "normal", "scale": 0.2, "seed": 312 } }, | |
| "outputs": { "y": { "shape": [1024], "dtype": "float32" } }, | |
| "bench": { "primary": true, "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * 4" }] } | |
| }, | |
| { | |
| "name": "reducemean-rank4-axis1-serial-32x256x28x28", | |
| "preset": "smoke", | |
| "vars": { "dtype": "float32" }, | |
| "attrs": { "axes": [1], "keepdims": 0 }, | |
| "inputs": { | |
| "x": { "shape": [32, 256, 28, 28], "dtype": "float32", "dist": "normal", "scale": 0.2, "seed": 5511 } | |
| }, | |
| "outputs": { "y": { "shape": [32, 28, 28], "dtype": "float32" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "32 * 256 * 28 * 28 * dtypeBytes(args.dtype)" }] } | |
| }, | |
| { | |
| "name": "reducemean-rank3-axis1-serial-8x1024x768", | |
| "preset": "smoke", | |
| "vars": { "dtype": "float32" }, | |
| "attrs": { "axes": [1], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [8, 1024, 768], "dtype": "float32", "dist": "normal", "scale": 0.2, "seed": 5512 } }, | |
| "outputs": { "y": { "shape": [8, 768], "dtype": "float32" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "8 * 1024 * 768 * dtypeBytes(args.dtype)" }] } | |
| }, | |
| { | |
| "name": "reducemean-lastaxis-scalar-subgroup-cols-unaligned-4096x4095", | |
| "preset": "smoke", | |
| "vars": { "dtype": "float32", "rows": 4096, "cols": 4095 }, | |
| "attrs": { "axes": [1], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [4096, 4095], "dtype": "float32", "dist": "normal", "scale": 0.2, "seed": 5513 } }, | |
| "outputs": { "y": { "shape": [4096], "dtype": "float32" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype)" }] } | |
| }, | |
| { | |
| "name": "reducemean-fullreduce-serial-numel-not-mul4-r3", | |
| "preset": "stress", | |
| "attrs": { "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [1001, 1001, 1], "dtype": "float32", "dist": "normal", "seed": 601, "scale": 1 } }, | |
| "outputs": { "y": { "shape": [], "dtype": "float32" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "1001 * 1001 * 1 * 4" }] } | |
| }, | |
| { | |
| "name": "reducemean-int32-lastaxis-serial-4096x1024", | |
| "preset": "stress", | |
| "attrs": { "axes": [1], "keepdims": 0 }, | |
| "inputs": { | |
| "x": { "shape": [4096, 1024], "dtype": "int32", "dist": "randint", "seed": 602, "min": -1000, "max": 1000 } | |
| }, | |
| "outputs": { "y": { "shape": [4096], "dtype": "int32" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4096 * 1024 * 4" }] } | |
| }, | |
| { | |
| "name": "reducemean-axis0-f32-131072x15-narrow-splitk-boundary", | |
| "preset": "stress", | |
| "vars": { "rows": 131072, "cols": 15 }, | |
| "attrs": { "axes": [0], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [131072, 15], "dtype": "float32", "dist": "normal", "seed": 603, "scale": 0.2 } }, | |
| "outputs": { "y": { "shape": [15], "dtype": "float32", "dist": "empty" } }, | |
| "bench": { "primary": true, "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * 4" }] } | |
| }, | |
| { | |
| "name": "reducemean-spatial-axes23-f32-2x64x256x256-globalpool-pattern", | |
| "preset": "stress", | |
| "provenance": { | |
| "source": "synthetic", | |
| "notes": "Rank-4 contiguous-suffix reduction that verifies the vec4 subgroup reducer and portable workgroup-tree fallback." | |
| }, | |
| "vars": { "batch": 2, "channels": 64, "height": 256, "width": 256 }, | |
| "attrs": { "axes": [2, 3], "keepdims": 1 }, | |
| "inputs": { "x": { "shape": [2, 64, 256, 256], "dtype": "float32", "dist": "normal", "seed": 909, "scale": 0.2 } }, | |
| "outputs": { "y": { "shape": [2, 64, 1, 1], "dtype": "float32", "dist": "empty" } }, | |
| "bench": { | |
| "metrics": [{ "type": "bandwidth", "value": "args.batch * args.channels * args.height * args.width * 4" }] | |
| } | |
| }, | |
| { | |
| "name": "reducemean-rank4-axis1-largeaxis-2x131072x1x8", | |
| "preset": "smoke", | |
| "vars": { "numel": 2097152 }, | |
| "attrs": { "axes": [1], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [2, 131072, 1, 8], "dtype": "float32", "dist": "normal", "seed": 120, "scale": 0.2 } }, | |
| "outputs": { "y": { "shape": [2, 1, 8], "dtype": "float32" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "args.numel * 4" }] } | |
| }, | |
| { | |
| "name": "reducemean-rank4-axes023-f32-8x256x56x56-noncontiguous-pathology", | |
| "preset": "stress", | |
| "provenance": { | |
| "notes": "Rank-4 reduction over axes {0,2,3} (per-channel statistics over batch and space with the channel axis second): the kept axis sits in the middle, so the reduced elements are not a contiguous suffix and the multi-axis rank-4 kernel launches one serial lane per output, 256 lanes each walking 25088 strided inputs. Its control reduces the same values with the channel axis first." | |
| }, | |
| "vars": { "dtype": "float32", "batch": 8, "channels": 256, "height": 56, "width": 56 }, | |
| "attrs": { "axes": [0, 2, 3], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [8, 256, 56, 56], "dtype": "float32", "dist": "normal", "seed": 620, "scale": 0.2 } }, | |
| "outputs": { "y": { "shape": [256], "dtype": "float32", "dist": "empty" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "bandwidth", | |
| "value": "args.batch * args.channels * args.height * args.width * dtypeBytes(args.dtype)" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "reducemean-rank4-axes123-f32-256x8x56x56-contiguous-suffix-control", | |
| "preset": "stress", | |
| "provenance": { | |
| "notes": "Contiguous-suffix control for the axes {0,2,3} reduction: the same 256 reductions of 25088 elements with the kept axis first, which the cooperative suffix reduction covers with one workgroup per output." | |
| }, | |
| "vars": { "dtype": "float32", "batch": 256, "channels": 8, "height": 56, "width": 56 }, | |
| "attrs": { "axes": [1, 2, 3], "keepdims": 0 }, | |
| "inputs": { "x": { "shape": [256, 8, 56, 56], "dtype": "float32", "dist": "normal", "seed": 621, "scale": 0.2 } }, | |
| "outputs": { "y": { "shape": [256], "dtype": "float32", "dist": "empty" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "bandwidth", | |
| "value": "args.batch * args.channels * args.height * args.width * dtypeBytes(args.dtype)" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float32_rank3_odd_axis_odd_inner", | |
| "attrs": { "axes": [-2], "keepdims": 1 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [3, 127, 259], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 1, 259] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "397824" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float32_rank3_even_inner", | |
| "attrs": { "axes": [1], "keepdims": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [7, 129, 260], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [7, 260] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "946400" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float32_rank5_middle", | |
| "attrs": { "axes": [3], "keepdims": 1 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [2, 3, 5, 17, 7], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 5, 1, 7] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "15120" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float32_rank3_axis0", | |
| "attrs": { "axes": [0], "keepdims": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [17, 5, 13], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [5, 13] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4680" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float32_rank4_middle", | |
| "attrs": { "axes": [2], "keepdims": 0 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [3, 5, 17, 4], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [3, 5, 4] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4320" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float32_rank4_channel", | |
| "attrs": { "axes": [1], "keepdims": 1 }, | |
| "inputs": { "x": { "dtype": "float32", "shape": [2, 63, 7, 8], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 7, 8] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "28672" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float16_rank3_odd_axis_odd_inner", | |
| "attrs": { "axes": [-2], "keepdims": 1 }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [3, 127, 259], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [3, 1, 259] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "198912" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float16_rank3_even_inner", | |
| "attrs": { "axes": [1], "keepdims": 0 }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [7, 129, 260], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [7, 260] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "473200" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float16_rank5_middle", | |
| "attrs": { "axes": [3], "keepdims": 1 }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [2, 3, 5, 17, 7], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 3, 5, 1, 7] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "7560" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float16_rank3_axis0", | |
| "attrs": { "axes": [0], "keepdims": 0 }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [17, 5, 13], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [5, 13] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "2340" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float16_rank4_middle", | |
| "attrs": { "axes": [2], "keepdims": 0 }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [3, 5, 17, 4], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [3, 5, 4] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "2160" }] } | |
| }, | |
| { | |
| "name": "bench-strided_geometry_float16_rank4_channel", | |
| "attrs": { "axes": [1], "keepdims": 1 }, | |
| "inputs": { "x": { "dtype": "float16", "shape": [2, 63, 7, 8], "dist": "normal" } }, | |
| "outputs": { "y": { "dtype": "float16", "shape": [2, 1, 7, 8] } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "14336" }] } | |
| } | |
| ] | |
| } | |