Xenova's picture
Xenova HF Staff
sync 2e7068faf55e
410baf2 verified
Raw
History Blame
16 kB
{
"op": "ai.onnx.ConvTranspose",
"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": "authored for performance coverage",
"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": "authored for performance coverage",
"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": "authored for variant coverage",
"notes": "Adding channel bias excludes nchw2d_grouped_stride_phase and selects nchw2d_grouped_bias; the paired no-bias case isolates this optional-input route boundary."
},
"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"
}
]
}
}
]
}