Download build/webgpu/bench.json from webgpu-kernels/ai.onnx.ConvTranspose: direct link, hf CLI and curl.
- Browser
- Download file 17.7 kB
-
https://huggingface.co/kernels/webgpu-kernels/ai.onnx.ConvTranspose/resolve/v1/build/webgpu/bench.json
- Command line
-
hf download hf://webgpu-kernels/ai.onnx.ConvTranspose@v1/build/webgpu/bench.json
-
curl -L -o bench.json https://huggingface.co/kernels/webgpu-kernels/ai.onnx.ConvTranspose/resolve/v1/build/webgpu/bench.json
17.7 kB
| { | |
| "tunableSpace": { "WORKGROUP_SIZE": [64, 128, 256] }, | |
| "cases": [ | |
| { | |
| "name": "conv-transpose-f32-b1c16m16-16x16-k3s2", | |
| "preset": "smoke", | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 16, | |
| "outChannels": 16, | |
| "inH": 16, | |
| "inW": 16, | |
| "kernelH": 3, | |
| "kernelW": 3, | |
| "strideH": 2, | |
| "strideW": 2, | |
| "padH": 1, | |
| "padW": 1 | |
| }, | |
| "attrs": { "strides": [2, 2], "pads": [1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 16, 16, 16], "dtype": "float32", "dist": "normal", "seed": 114, "scale": 0.2 }, | |
| "w": { "shape": [16, 16, 3, 3], "dtype": "float32", "dist": "normal", "seed": 115, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 16, 31, 31], "dtype": "float32" } }, | |
| "bench": { | |
| "primary": true, | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inH * args.inW * args.inChannels * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-non-vector-bias-b1c3m5-32x32-k3s2", | |
| "preset": "edge", | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 3, | |
| "outChannels": 5, | |
| "inH": 32, | |
| "inW": 32, | |
| "kernelH": 3, | |
| "kernelW": 3, | |
| "strideH": 2, | |
| "strideW": 2, | |
| "padH": 1, | |
| "padW": 1 | |
| }, | |
| "attrs": { "strides": [2, 2], "pads": [1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 3, 32, 32], "dtype": "float32", "dist": "normal", "seed": 116, "scale": 0.2 }, | |
| "w": { "shape": [3, 5, 3, 3], "dtype": "float32", "dist": "normal", "seed": 117, "scale": 0.1 }, | |
| "bias": { "shape": [5], "dtype": "float32", "dist": "normal", "seed": 118, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 5, 63, 63], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inH * args.inW * args.inChannels * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f16-b1c64m64-32x32-k3s2", | |
| "preset": "smoke", | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 64, | |
| "outChannels": 64, | |
| "inH": 32, | |
| "inW": 32, | |
| "kernelH": 3, | |
| "kernelW": 3, | |
| "strideH": 2, | |
| "strideW": 2, | |
| "padH": 1, | |
| "padW": 1 | |
| }, | |
| "attrs": { "strides": [2, 2], "pads": [1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 64, 32, 32], "dtype": "float16", "dist": "normal", "seed": 211, "scale": 0.2 }, | |
| "w": { "shape": [64, 64, 3, 3], "dtype": "float16", "dist": "normal", "seed": 212, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 64, 63, 63], "dtype": "float16" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inH * args.inW * args.inChannels * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-b1c64m64-32x32-k3s2", | |
| "preset": "smoke", | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 64, | |
| "outChannels": 64, | |
| "inH": 32, | |
| "inW": 32, | |
| "kernelH": 3, | |
| "kernelW": 3, | |
| "strideH": 2, | |
| "strideW": 2, | |
| "padH": 1, | |
| "padW": 1 | |
| }, | |
| "attrs": { "strides": [2, 2], "pads": [1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 64, 32, 32], "dtype": "float32", "dist": "normal", "seed": 211, "scale": 0.2 }, | |
| "w": { "shape": [64, 64, 3, 3], "dtype": "float32", "dist": "normal", "seed": 212, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 64, 63, 63], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inH * args.inW * args.inChannels * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f16-large-upsampler-b1c128m128-64x64-k4s2", | |
| "preset": "smoke", | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 128, | |
| "outChannels": 128, | |
| "inH": 64, | |
| "inW": 64, | |
| "kernelH": 4, | |
| "kernelW": 4, | |
| "strideH": 2, | |
| "strideW": 2, | |
| "padH": 1, | |
| "padW": 1 | |
| }, | |
| "attrs": { "strides": [2, 2], "pads": [1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 128, 64, 64], "dtype": "float16", "dist": "normal", "seed": 213, "scale": 0.2 }, | |
| "w": { "shape": [128, 128, 4, 4], "dtype": "float16", "dist": "normal", "seed": 214, "scale": 0.05 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 128, 128, 128], "dtype": "float16" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inH * args.inW * args.inChannels * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-depthwise-g64-32x32-k4s2", | |
| "preset": "smoke", | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 64, | |
| "outChannels": 64, | |
| "inChannelsPerGroup": 1, | |
| "inH": 32, | |
| "inW": 32, | |
| "kernelH": 4, | |
| "kernelW": 4, | |
| "strideH": 2, | |
| "strideW": 2, | |
| "padH": 1, | |
| "padW": 1, | |
| "group": 64 | |
| }, | |
| "attrs": { "group": 64, "strides": [2, 2], "pads": [1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 64, 32, 32], "dtype": "float32", "dist": "normal", "seed": 215, "scale": 0.2 }, | |
| "w": { "shape": [64, 1, 4, 4], "dtype": "float32", "dist": "normal", "seed": 216, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 64, 64, 64], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inH * args.inW * args.inChannelsPerGroup * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-depthwise-pointwise-g64-512x512-dispatch-fold", | |
| "preset": "edge", | |
| "provenance": { | |
| "notes": "Realistic depthwise pointwise projection at 16,777,216 outputs. Exercises the two-dimensional dispatch fold while exposing scalar coordinate/division overhead in the generic grouped kernel." | |
| }, | |
| "vars": { "count": 16777216 }, | |
| "attrs": { "group": 64 }, | |
| "inputs": { | |
| "x": { "shape": [1, 64, 512, 512], "dtype": "float32", "dist": "normal", "seed": 221, "scale": 0.2 }, | |
| "w": { "shape": [64, 1, 1, 1], "dtype": "float32", "dist": "normal", "seed": 222, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 64, 512, 512], "dtype": "float32" } }, | |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "(2 * args.count + 64) * 4" }] } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-1d-b1c128m128-256-k4s2", | |
| "preset": "smoke", | |
| "vars": { "batch": 1, "inChannels": 128, "outChannels": 128, "inW": 256, "kernelW": 4, "strideW": 2, "padW": 1 }, | |
| "attrs": { "strides": [2], "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 128, 256], "dtype": "float32", "dist": "normal", "seed": 217, "scale": 0.2 }, | |
| "w": { "shape": [128, 128, 4], "dtype": "float32", "dist": "normal", "seed": 218, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 128, 512], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { "type": "gflops", "value": "2 * args.batch * args.outChannels * args.inW * args.inChannels * args.kernelW" } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "neural-audio-1d-f32-b1c256m256-w1024-k4s2-pathology", | |
| "preset": "stress", | |
| "provenance": { | |
| "source": "synthetic benchmark", | |
| "notes": "Realistic neural-audio upsampling stage for the direct NCW fallback. Every output sample serially scans 256 input channels and four kernel taps." | |
| }, | |
| "vars": { "batch": 1, "inChannels": 256, "outChannels": 256, "inW": 1024, "kernelW": 4, "strideW": 2, "padW": 1 }, | |
| "attrs": { "strides": [2], "pads": [1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 256, 1024], "dtype": "float32", "dist": "normal", "seed": 219, "scale": 0.2 }, | |
| "w": { "shape": [256, 256, 4], "dtype": "float32", "dist": "normal", "seed": 220, "scale": 0.05 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 256, 2048], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { "type": "gflops", "value": "2 * args.batch * args.outChannels * args.inW * args.inChannels * args.kernelW" } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-3d-naive-b1c16m16-16x16x16-k3", | |
| "preset": "stress", | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 16, | |
| "outChannels": 16, | |
| "inD": 16, | |
| "inH": 16, | |
| "inW": 16, | |
| "kernelD": 3, | |
| "kernelH": 3, | |
| "kernelW": 3 | |
| }, | |
| "attrs": {}, | |
| "inputs": { | |
| "x": { "shape": [1, 16, 16, 16, 16], "dtype": "float32", "dist": "normal", "seed": 331, "scale": 0.2 }, | |
| "w": { "shape": [16, 16, 3, 3, 3], "dtype": "float32", "dist": "normal", "seed": 332, "scale": 0.05 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 16, 18, 18, 18], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inD * args.inH * args.inW * args.inChannels * args.kernelD * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "medical-decoder-3d-f32-b1c32m32-32x32x32-k3-pathology", | |
| "preset": "stress", | |
| "provenance": { | |
| "source": "synthetic benchmark", | |
| "notes": "Realistic 3D decoder stage for the direct NCDHW fallback. Each output voxel serially scans all 32 input channels and the 3x3x3 kernel." | |
| }, | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 32, | |
| "outChannels": 32, | |
| "inD": 32, | |
| "inH": 32, | |
| "inW": 32, | |
| "kernelD": 3, | |
| "kernelH": 3, | |
| "kernelW": 3 | |
| }, | |
| "attrs": { "pads": [1, 1, 1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 32, 32, 32, 32], "dtype": "float32", "dist": "normal", "seed": 333, "scale": 0.2 }, | |
| "w": { "shape": [32, 32, 3, 3, 3], "dtype": "float32", "dist": "normal", "seed": 334, "scale": 0.05 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 32, 32, 32, 32], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inD * args.inH * args.inW * args.inChannels * args.kernelD * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-grouped-naive-g4-c32m64-48x48-k4s2", | |
| "preset": "stress", | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 32, | |
| "outChannels": 64, | |
| "inChannelsPerGroup": 8, | |
| "inH": 48, | |
| "inW": 48, | |
| "kernelH": 4, | |
| "kernelW": 4, | |
| "strideH": 2, | |
| "strideW": 2, | |
| "padH": 1, | |
| "padW": 1, | |
| "group": 4 | |
| }, | |
| "attrs": { "group": 4, "strides": [2, 2], "pads": [1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 32, 48, 48], "dtype": "float32", "dist": "normal", "seed": 341, "scale": 0.2 }, | |
| "w": { "shape": [32, 16, 4, 4], "dtype": "float32", "dist": "normal", "seed": 342, "scale": 0.05 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 64, 96, 96], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inH * args.inW * args.inChannelsPerGroup * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "grouped-bias-g4-c32m64-48x48-k4s2-generic-pathology", | |
| "preset": "stress", | |
| "provenance": { | |
| "source": "synthetic benchmark", | |
| "notes": "Grouped stride-two transposed convolution with channel bias; the paired no-bias case isolates the effect of the optional input." | |
| }, | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 32, | |
| "outChannels": 64, | |
| "inChannelsPerGroup": 8, | |
| "inH": 48, | |
| "inW": 48, | |
| "kernelH": 4, | |
| "kernelW": 4, | |
| "strideH": 2, | |
| "strideW": 2, | |
| "padH": 1, | |
| "padW": 1, | |
| "group": 4 | |
| }, | |
| "attrs": { "group": 4, "strides": [2, 2], "pads": [1, 1, 1, 1] }, | |
| "inputs": { | |
| "x": { "shape": [1, 32, 48, 48], "dtype": "float32", "dist": "normal", "seed": 5104, "scale": 0.2 }, | |
| "w": { "shape": [32, 16, 4, 4], "dtype": "float32", "dist": "normal", "seed": 5105, "scale": 0.05 }, | |
| "bias": { "shape": [64], "dtype": "float32", "dist": "normal", "seed": 5106, "scale": 0.05 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 64, 96, 96], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inH * args.inW * args.inChannelsPerGroup * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-dpt-reassemble-48ch-37x49-k4s4", | |
| "preset": "all", | |
| "provenance": { | |
| "source": "Depth Anything V2 Small neck reassemble", | |
| "notes": "Depth Anything V2 Small's factor-4 reassemble at 518x686. ConvTranspose contracts the projected neck width (48), not the backbone width." | |
| }, | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 48, | |
| "outChannels": 48, | |
| "inH": 37, | |
| "inW": 49, | |
| "kernelH": 4, | |
| "kernelW": 4, | |
| "strideH": 4, | |
| "strideW": 4, | |
| "padH": 0, | |
| "padW": 0 | |
| }, | |
| "attrs": { "strides": [4, 4] }, | |
| "inputs": { | |
| "x": { "shape": [1, 48, 37, 49], "dtype": "float32", "dist": "normal", "seed": 9421, "scale": 0.2 }, | |
| "w": { "shape": [48, 48, 4, 4], "dtype": "float32", "dist": "normal", "seed": 9422, "scale": 0.1 }, | |
| "bias": { "shape": [48], "dtype": "float32", "dist": "normal", "seed": 9423, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 48, 148, 196], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inH * args.inW * args.inChannels * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-dpt-reassemble-96ch-37x49-k2s2", | |
| "preset": "all", | |
| "provenance": { | |
| "source": "Depth Anything V2 Small neck reassemble", | |
| "notes": "The factor-2 reassemble of the same model, likewise contracting over the neck width (96). Four taps per output element, one of them real." | |
| }, | |
| "vars": { | |
| "batch": 1, | |
| "inChannels": 96, | |
| "outChannels": 96, | |
| "inH": 37, | |
| "inW": 49, | |
| "kernelH": 2, | |
| "kernelW": 2, | |
| "strideH": 2, | |
| "strideW": 2, | |
| "padH": 0, | |
| "padW": 0 | |
| }, | |
| "attrs": { "strides": [2, 2] }, | |
| "inputs": { | |
| "x": { "shape": [1, 96, 37, 49], "dtype": "float32", "dist": "normal", "seed": 9431, "scale": 0.2 }, | |
| "w": { "shape": [96, 96, 2, 2], "dtype": "float32", "dist": "normal", "seed": 9432, "scale": 0.1 }, | |
| "bias": { "shape": [96], "dtype": "float32", "dist": "normal", "seed": 9433, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 96, 74, 98], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * args.batch * args.outChannels * args.inH * args.inW * args.inChannels * args.kernelH * args.kernelW" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-exact-store-b2c65m80-29x53-k3x2-nobias", | |
| "preset": "edge", | |
| "provenance": { "notes": "Rectangular nonoverlapping taps with batch and channel tails." }, | |
| "attrs": { "strides": [3, 2] }, | |
| "inputs": { | |
| "x": { "shape": [2, 65, 29, 53], "dtype": "float32", "dist": "normal", "seed": 9421, "scale": 0.2 }, | |
| "w": { "shape": [65, 80, 3, 2], "dtype": "float32", "dist": "normal", "seed": 9422, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [2, 80, 87, 106], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * dim(shapes.x, 0) * dim(shapes.x, 1) * dim(shapes.x, 2) * dim(shapes.x, 3) * dim(shapes.w, 1) * dim(shapes.w, 2) * dim(shapes.w, 3)" | |
| } | |
| ] | |
| } | |
| }, | |
| { | |
| "name": "conv-transpose-f32-exact-store-b1c33m48-41x43-k2x3-bias", | |
| "preset": "edge", | |
| "provenance": { "notes": "Rectangular nonoverlapping taps with batch and channel tails." }, | |
| "attrs": { "strides": [2, 3] }, | |
| "inputs": { | |
| "x": { "shape": [1, 33, 41, 43], "dtype": "float32", "dist": "normal", "seed": 9421, "scale": 0.2 }, | |
| "w": { "shape": [33, 48, 2, 3], "dtype": "float32", "dist": "normal", "seed": 9422, "scale": 0.1 }, | |
| "bias": { "shape": [48], "dtype": "float32", "dist": "normal", "seed": 9423, "scale": 0.1 } | |
| }, | |
| "outputs": { "y": { "shape": [1, 48, 82, 129], "dtype": "float32" } }, | |
| "bench": { | |
| "metrics": [ | |
| { | |
| "type": "gflops", | |
| "value": "2 * dim(shapes.x, 0) * dim(shapes.x, 1) * dim(shapes.x, 2) * dim(shapes.x, 3) * dim(shapes.w, 1) * dim(shapes.w, 2) * dim(shapes.w, 3)" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| } | |