{ "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)" } ] } } ] }