Xenova's picture
Xenova HF Staff
sync 6fdf6301e2bb
c22712e verified
Raw History Blame
20.5 kB
{
"tunableSpace": { "WORKGROUP_SIZE": [128, 256] },
"cases": [
{
"name": "flux-vae-mid-1x64x64x512-g32-f16",
"preset": "smoke",
"provenance": { "note": "Flux.2 VAE decoder mid/up-block group norm, NHWC, SiLU" },
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 2097152, "channels": 512 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1, "epsilon": 0.000001 },
"inputs": {
"X": { "dtype": "float16", "shape": [1, 64, 64, 512], "dist": "normal", "seed": 100, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [512], "dist": "uniform", "seed": 101, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [512], "dist": "normal", "seed": 102, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [1, 64, 64, 512], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
],
"primary": true
}
},
{
"name": "flux-vae-mid-1x64x64x512-g32-f32",
"preset": "smoke",
"provenance": { "note": "Flux.2 VAE decoder mid/up-block group norm at float32" },
"vars": { "dtype": "float32", "weightDtype": "float32", "count": 2097152, "channels": 512 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1, "epsilon": 0.000001 },
"inputs": {
"X": { "dtype": "float32", "shape": [1, 64, 64, 512], "dist": "normal", "seed": 110, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [512], "dist": "uniform", "seed": 111, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [512], "dist": "normal", "seed": 112, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float32", "shape": [1, 64, 64, 512], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "sd15-unet-2x64x64x320-g32-f16",
"preset": "smoke",
"provenance": {
"note": "Stable-Diffusion-1.5 UNet resnet at the classifier-free-guidance batch; 10 channels per group"
},
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 2621440, "channels": 320 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1 },
"inputs": {
"X": { "dtype": "float16", "shape": [2, 64, 64, 320], "dist": "normal", "seed": 120, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [320], "dist": "uniform", "seed": 121, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [320], "dist": "normal", "seed": 122, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [2, 64, 64, 320], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "sd15-unet-2x32x32x640-g32-f16",
"preset": "smoke",
"provenance": { "note": "Stable-Diffusion-1.5 UNet mid-resolution resnet; 20 channels per group" },
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 1310720, "channels": 640 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1 },
"inputs": {
"X": { "dtype": "float16", "shape": [2, 32, 32, 640], "dist": "normal", "seed": 130, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [640], "dist": "uniform", "seed": 131, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [640], "dist": "normal", "seed": 132, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [2, 32, 32, 640], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "sd15-unet-2x8x8x1280-g32-f16",
"preset": "smoke",
"provenance": {
"note": "Stable-Diffusion-1.5 UNet lowest-resolution resnet; the few-element, low-parallelism corner"
},
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 163840, "channels": 1280 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1 },
"inputs": {
"X": { "dtype": "float16", "shape": [2, 8, 8, 1280], "dist": "normal", "seed": 140, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [1280], "dist": "uniform", "seed": 141, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [1280], "dist": "normal", "seed": 142, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [2, 8, 8, 1280], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "odd-cpg-1x64x64x96-g32-f32",
"preset": "smoke",
"provenance": {
"note": "Three channels per group: the odd channels-per-group case the CUDA kernel refuses outright"
},
"vars": { "dtype": "float32", "weightDtype": "float32", "count": 393216, "channels": 96 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1 },
"inputs": {
"X": { "dtype": "float32", "shape": [1, 64, 64, 96], "dist": "normal", "seed": 150, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [96], "dist": "uniform", "seed": 151, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [96], "dist": "normal", "seed": 152, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float32", "shape": [1, 64, 64, 96], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "nchw-4x64x128x128-g32-f32",
"preset": "smoke",
"provenance": {
"note": "Channels-first at the shape ai.onnx.GroupNormalization benches, for a direct comparison"
},
"vars": { "dtype": "float32", "weightDtype": "float32", "count": 4194304, "channels": 64 },
"attrs": { "groups": 32, "activation": 0, "channels_last": 0 },
"inputs": {
"X": { "dtype": "float32", "shape": [4, 64, 128, 128], "dist": "normal", "seed": 160, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [64], "dist": "uniform", "seed": 161, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [64], "dist": "normal", "seed": 162, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float32", "shape": [4, 64, 128, 128], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "nchw-2x320x64x64-g32-f16",
"preset": "smoke",
"provenance": { "note": "Channels-first Stable-Diffusion-1.5 resnet width with the fused SiLU" },
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 2621440, "channels": 320 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 0 },
"inputs": {
"X": { "dtype": "float16", "shape": [2, 320, 64, 64], "dist": "normal", "seed": 170, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [320], "dist": "uniform", "seed": 171, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [320], "dist": "normal", "seed": 172, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [2, 320, 64, 64], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "micro-2x2x2x128-g32-f16",
"preset": "smoke",
"provenance": {
"note": "ORT: onnxruntime/test/contrib_ops/group_norm_op_test.cc GroupNormTest.GroupNorm_128 geometry"
},
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 1024, "channels": 128 },
"attrs": { "groups": 32, "activation": 0, "channels_last": 1 },
"inputs": {
"X": { "dtype": "float16", "shape": [2, 2, 2, 128], "dist": "normal", "seed": 180, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [128], "dist": "uniform", "seed": 181, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [128], "dist": "normal", "seed": 182, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [2, 2, 2, 128], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "flux-vae-up-1x128x128x512-g32-f16",
"preset": "scale",
"provenance": { "note": "Flux.2 VAE decoder after the first 2x upsample" },
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 8388608, "channels": 512 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1, "epsilon": 0.000001 },
"inputs": {
"X": { "dtype": "float16", "shape": [1, 128, 128, 512], "dist": "normal", "seed": 200, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [512], "dist": "uniform", "seed": 201, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [512], "dist": "normal", "seed": 202, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [1, 128, 128, 512], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "flux-vae-up-1x256x256x256-g32-f16",
"preset": "scale",
"provenance": { "note": "Flux.2 VAE decoder after the second 2x upsample" },
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 16777216, "channels": 256 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1, "epsilon": 0.000001 },
"inputs": {
"X": { "dtype": "float16", "shape": [1, 256, 256, 256], "dist": "normal", "seed": 210, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [256], "dist": "uniform", "seed": 211, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [256], "dist": "normal", "seed": 212, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [1, 256, 256, 256], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "flux-vae-convout-1x512x512x128-g32-f16",
"preset": "model",
"provenance": { "note": "Flux.2 VAE conv_norm_out: the largest single group-norm dispatch in the decoder" },
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 33554432, "channels": 128 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1, "epsilon": 0.000001 },
"inputs": {
"X": { "dtype": "float16", "shape": [1, 512, 512, 128], "dist": "normal", "seed": 220, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [128], "dist": "uniform", "seed": 221, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [128], "dist": "normal", "seed": 222, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [1, 512, 512, 128], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "nchw-1x512x64x64-g32-f16",
"preset": "smoke",
"provenance": {
"note": "Channels-first at the Flux.2 VAE mid-block width: 32 groups, the fewest reduction outputs this op sees"
},
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 2097152, "channels": 512 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 0 },
"inputs": {
"X": { "dtype": "float16", "shape": [1, 512, 64, 64], "dist": "normal", "seed": 300, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [512], "dist": "uniform", "seed": 301, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [512], "dist": "normal", "seed": 302, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [1, 512, 64, 64], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "nchw-8x64x64x64-g32-f32",
"preset": "smoke",
"provenance": { "note": "Channels-first with the batch axis carrying the parallelism: 256 reduction outputs" },
"vars": { "dtype": "float32", "weightDtype": "float32", "count": 2097152, "channels": 64 },
"attrs": { "groups": 32, "activation": 0, "channels_last": 0 },
"inputs": {
"X": { "dtype": "float32", "shape": [8, 64, 64, 64], "dist": "normal", "seed": 310, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [64], "dist": "uniform", "seed": 311, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [64], "dist": "normal", "seed": 312, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float32", "shape": [8, 64, 64, 64], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "nchw-2x320x128x128-g32-f16",
"preset": "scale",
"provenance": { "note": "Channels-first Stable-Diffusion resnet at a working set past cache" },
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 10485760, "channels": 320 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 0 },
"inputs": {
"X": { "dtype": "float16", "shape": [2, 320, 128, 128], "dist": "normal", "seed": 320, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [320], "dist": "uniform", "seed": 321, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [320], "dist": "normal", "seed": 322, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [2, 320, 128, 128], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "nhwc-even-groups-2x64x64x320-g32-f32",
"preset": "smoke",
"provenance": {
"note": "Even channel-group widths spanning one, multiple, and capacity-limited channel rows per workgroup, including float32 activations. Same distributions as the authored large NHWC case."
},
"vars": { "dtype": "float32", "weightDtype": "float32", "count": 2621440, "channels": 320 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1 },
"inputs": {
"X": { "dtype": "float32", "shape": [2, 64, 64, 320], "dist": "normal", "seed": 120, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [320], "dist": "uniform", "seed": 121, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [320], "dist": "normal", "seed": 122, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float32", "shape": [2, 64, 64, 320], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "nhwc-even-groups-2x64x64x64-g32-f16",
"preset": "smoke",
"provenance": {
"note": "Even channel-group widths spanning one, multiple, and capacity-limited channel rows per workgroup, including float32 activations. Same distributions as the authored large NHWC case."
},
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 524288, "channels": 64 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1 },
"inputs": {
"X": { "dtype": "float16", "shape": [2, 64, 64, 64], "dist": "normal", "seed": 120, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [64], "dist": "uniform", "seed": 121, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [64], "dist": "normal", "seed": 122, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [2, 64, 64, 64], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "nhwc-even-groups-2x64x64x192-g32-f16",
"preset": "smoke",
"provenance": {
"note": "Even channel-group widths spanning one, multiple, and capacity-limited channel rows per workgroup, including float32 activations. Same distributions as the authored large NHWC case."
},
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 1572864, "channels": 192 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1 },
"inputs": {
"X": { "dtype": "float16", "shape": [2, 64, 64, 192], "dist": "normal", "seed": 120, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [192], "dist": "uniform", "seed": 121, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [192], "dist": "normal", "seed": 122, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [2, 64, 64, 192], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
},
{
"name": "nhwc-even-groups-2x64x64x448-g32-f16",
"preset": "smoke",
"provenance": {
"note": "Even channel-group widths spanning one, multiple, and capacity-limited channel rows per workgroup, including float32 activations. Same distributions as the authored large NHWC case."
},
"vars": { "dtype": "float16", "weightDtype": "float32", "count": 3670016, "channels": 448 },
"attrs": { "groups": 32, "activation": 1, "channels_last": 1 },
"inputs": {
"X": { "dtype": "float16", "shape": [2, 64, 64, 448], "dist": "normal", "seed": 120, "scale": 0.5 },
"gamma": { "dtype": "float32", "shape": [448], "dist": "uniform", "seed": 121, "scale": 0.25, "offset": 1 },
"beta": { "dtype": "float32", "shape": [448], "dist": "normal", "seed": 122, "scale": 0.1 }
},
"outputs": { "Y": { "dtype": "float16", "shape": [2, 64, 64, 448], "dist": "empty" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.count * 2 * dtypeBytes(args.dtype) + args.channels * 2 * dtypeBytes(args.weightDtype)"
}
]
}
}
]
}