| { |
| "op": "com.microsoft.SkipLayerNormalization", |
| "cases": [ |
| { |
| "name": "skip-layernorm-f32-256x128", |
| "preset": "smoke", |
| "vars": { "rows": 256, "hidden": 128 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [256, 128], "dtype": "float32", "dist": "normal", "seed": 213, "scale": 0.2 }, |
| "skipT": { "shape": [256, 128], "dtype": "float32", "dist": "normal", "seed": 214, "scale": 0.2 }, |
| "gammaT": { "shape": [128], "dtype": "float32", "dist": "uniform", "seed": 215, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [128], "dtype": "float32", "dist": "normal", "seed": 216, "scale": 0.1 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [256, 128], "dtype": "float32" }, |
| "residualT": { "shape": [256, 128], "dtype": "float32" } |
| }, |
| "bench": { |
| "primary": true, |
| "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 2 * args.hidden)" }] |
| } |
| }, |
| { |
| "name": "skip-layernorm-f32-no-beta-output-256x128", |
| "preset": "smoke", |
| "vars": { "rows": 256, "hidden": 128 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [256, 128], "dtype": "float32", "dist": "normal", "seed": 219, "scale": 0.2 }, |
| "skipT": { "shape": [256, 128], "dtype": "float32", "dist": "normal", "seed": 220, "scale": 0.2 }, |
| "gammaT": { "shape": [128], "dtype": "float32", "dist": "uniform", "seed": 221, "scale": 0.1, "offset": 1 } |
| }, |
| "outputs": { "outputT": { "shape": [256, 128], "dtype": "float32" } }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (3 * args.rows * args.hidden + args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-bias-256x128", |
| "preset": "smoke", |
| "vars": { "rows": 256, "hidden": 128 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [256, 128], "dtype": "float32", "dist": "normal", "seed": 214, "scale": 0.2 }, |
| "skipT": { "shape": [256, 128], "dtype": "float32", "dist": "normal", "seed": 215, "scale": 0.2 }, |
| "gammaT": { "shape": [128], "dtype": "float32", "dist": "uniform", "seed": 216, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [128], "dtype": "float32", "dist": "normal", "seed": 217, "scale": 0.1 }, |
| "biasT": { "shape": [128], "dtype": "float32", "dist": "normal", "seed": 218, "scale": 0.05 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [256, 128], "dtype": "float32" }, |
| "residualT": { "shape": [256, 128], "dtype": "float32" } |
| }, |
| "bench": { |
| "primary": true, |
| "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 3 * args.hidden)" }] |
| } |
| }, |
| { |
| "name": "skip-layernorm-f32-4096x768", |
| "preset": "model", |
| "vars": { "rows": 4096, "hidden": 768 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [4096, 768], "dtype": "float32", "dist": "normal", "seed": 313, "scale": 0.2 }, |
| "skipT": { "shape": [4096, 768], "dtype": "float32", "dist": "normal", "seed": 314, "scale": 0.2 }, |
| "gammaT": { "shape": [768], "dtype": "float32", "dist": "uniform", "seed": 315, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [768], "dtype": "float32", "dist": "normal", "seed": 316, "scale": 0.1 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [4096, 768], "dtype": "float32" }, |
| "residualT": { "shape": [4096, 768], "dtype": "float32" } |
| }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 2 * args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-no-beta-output-4096x768", |
| "preset": "model", |
| "vars": { "rows": 4096, "hidden": 768 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [4096, 768], "dtype": "float32", "dist": "normal", "seed": 319, "scale": 0.2 }, |
| "skipT": { "shape": [4096, 768], "dtype": "float32", "dist": "normal", "seed": 320, "scale": 0.2 }, |
| "gammaT": { "shape": [768], "dtype": "float32", "dist": "uniform", "seed": 321, "scale": 0.1, "offset": 1 } |
| }, |
| "outputs": { "outputT": { "shape": [4096, 768], "dtype": "float32" } }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (3 * args.rows * args.hidden + args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-bias-4096x768", |
| "preset": "model", |
| "vars": { "rows": 4096, "hidden": 768 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [4096, 768], "dtype": "float32", "dist": "normal", "seed": 314, "scale": 0.2 }, |
| "skipT": { "shape": [4096, 768], "dtype": "float32", "dist": "normal", "seed": 315, "scale": 0.2 }, |
| "gammaT": { "shape": [768], "dtype": "float32", "dist": "uniform", "seed": 316, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [768], "dtype": "float32", "dist": "normal", "seed": 317, "scale": 0.1 }, |
| "biasT": { "shape": [768], "dtype": "float32", "dist": "normal", "seed": 318, "scale": 0.05 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [4096, 768], "dtype": "float32" }, |
| "residualT": { "shape": [4096, 768], "dtype": "float32" } |
| }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 3 * args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-bias-output-only-4096x768", |
| "preset": "model", |
| "provenance": { |
| "notes": "Ordinary inference shape with bias present and all three optional outputs omitted. It uses six storage buffers and writes only the primary output, isolating the output-only path from the full-output sibling at the same geometry." |
| }, |
| "vars": { "rows": 4096, "hidden": 768 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [4096, 768], "dtype": "float32", "dist": "normal", "seed": 314, "scale": 0.2 }, |
| "skipT": { "shape": [4096, 768], "dtype": "float32", "dist": "normal", "seed": 315, "scale": 0.2 }, |
| "gammaT": { "shape": [768], "dtype": "float32", "dist": "uniform", "seed": 316, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [768], "dtype": "float32", "dist": "normal", "seed": 317, "scale": 0.1 }, |
| "biasT": { "shape": [768], "dtype": "float32", "dist": "normal", "seed": 318, "scale": 0.05 } |
| }, |
| "outputs": { "outputT": { "shape": [4096, 768], "dtype": "float32" } }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (3 * args.rows * args.hidden + 3 * args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-4096x770-hidden770-unaligned", |
| "preset": "model", |
| "vars": { "rows": 4096, "hidden": 770 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [4096, 770], "dtype": "float32", "dist": "normal", "seed": 413, "scale": 0.2 }, |
| "skipT": { "shape": [4096, 770], "dtype": "float32", "dist": "normal", "seed": 414, "scale": 0.2 }, |
| "gammaT": { "shape": [770], "dtype": "float32", "dist": "uniform", "seed": 415, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [770], "dtype": "float32", "dist": "normal", "seed": 416, "scale": 0.1 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [4096, 770], "dtype": "float32" }, |
| "residualT": { "shape": [4096, 770], "dtype": "float32" } |
| }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 2 * args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-4096x768-hidden768-aligned-sibling", |
| "preset": "model", |
| "vars": { "rows": 4096, "hidden": 768 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [4096, 768], "dtype": "float32", "dist": "normal", "seed": 413, "scale": 0.2 }, |
| "skipT": { "shape": [4096, 768], "dtype": "float32", "dist": "normal", "seed": 414, "scale": 0.2 }, |
| "gammaT": { "shape": [768], "dtype": "float32", "dist": "uniform", "seed": 415, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [768], "dtype": "float32", "dist": "normal", "seed": 416, "scale": 0.1 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [4096, 768], "dtype": "float32" }, |
| "residualT": { "shape": [4096, 768], "dtype": "float32" } |
| }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 2 * args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-rows1-hidden4096-decode", |
| "preset": "model", |
| "vars": { "rows": 1, "hidden": 4096 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [1, 4096], "dtype": "float32", "dist": "normal", "seed": 513, "scale": 0.2 }, |
| "skipT": { "shape": [1, 4096], "dtype": "float32", "dist": "normal", "seed": 514, "scale": 0.2 }, |
| "gammaT": { "shape": [4096], "dtype": "float32", "dist": "uniform", "seed": 515, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [4096], "dtype": "float32", "dist": "normal", "seed": 516, "scale": 0.1 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [1, 4096], "dtype": "float32" }, |
| "residualT": { "shape": [1, 4096], "dtype": "float32" } |
| }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 2 * args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-rows4096-hidden4096-prefill-sibling", |
| "preset": "model", |
| "vars": { "rows": 4096, "hidden": 4096 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [4096, 4096], "dtype": "float32", "dist": "normal", "seed": 513, "scale": 0.2 }, |
| "skipT": { "shape": [4096, 4096], "dtype": "float32", "dist": "normal", "seed": 514, "scale": 0.2 }, |
| "gammaT": { "shape": [4096], "dtype": "float32", "dist": "uniform", "seed": 515, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [4096], "dtype": "float32", "dist": "normal", "seed": 516, "scale": 0.1 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [4096, 4096], "dtype": "float32" }, |
| "residualT": { "shape": [4096, 4096], "dtype": "float32" } |
| }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 2 * args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-4096x4095-hidden4095-unaligned-largewidth", |
| "preset": "model", |
| "vars": { "rows": 4096, "hidden": 4095 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [4096, 4095], "dtype": "float32", "dist": "normal", "seed": 613, "scale": 0.2 }, |
| "skipT": { "shape": [4096, 4095], "dtype": "float32", "dist": "normal", "seed": 614, "scale": 0.2 }, |
| "gammaT": { "shape": [4095], "dtype": "float32", "dist": "uniform", "seed": 615, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [4095], "dtype": "float32", "dist": "normal", "seed": 616, "scale": 0.1 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [4096, 4095], "dtype": "float32" }, |
| "residualT": { "shape": [4096, 4095], "dtype": "float32" } |
| }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 2 * args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-bias-8192x1025-unaligned-twopass-fallback", |
| "preset": "stress", |
| "vars": { "rows": 8192, "hidden": 1025 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [8192, 1025], "dtype": "float32", "dist": "normal", "seed": 713, "scale": 0.2 }, |
| "skipT": { "shape": [8192, 1025], "dtype": "float32", "dist": "normal", "seed": 714, "scale": 0.2 }, |
| "gammaT": { "shape": [1025], "dtype": "float32", "dist": "uniform", "seed": 715, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [1025], "dtype": "float32", "dist": "normal", "seed": 716, "scale": 0.1 }, |
| "biasT": { "shape": [1025], "dtype": "float32", "dist": "normal", "seed": 717, "scale": 0.05 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [8192, 1025], "dtype": "float32" }, |
| "residualT": { "shape": [8192, 1025], "dtype": "float32" } |
| }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 3 * args.hidden)" }] } |
| }, |
| { |
| "name": "skip-layernorm-f32-bias-65535x1-wg1-lowoccupancy-fallback", |
| "preset": "edge", |
| "vars": { "rows": 65535, "hidden": 1 }, |
| "attrs": { "epsilon": 0.00001 }, |
| "inputs": { |
| "inputT": { "shape": [65535, 1], "dtype": "float32", "dist": "normal", "seed": 813, "scale": 0.2 }, |
| "skipT": { "shape": [65535, 1], "dtype": "float32", "dist": "normal", "seed": 814, "scale": 0.2 }, |
| "gammaT": { "shape": [1], "dtype": "float32", "dist": "uniform", "seed": 815, "scale": 0.1, "offset": 1 }, |
| "betaT": { "shape": [1], "dtype": "float32", "dist": "normal", "seed": 816, "scale": 0.1 }, |
| "biasT": { "shape": [1], "dtype": "float32", "dist": "normal", "seed": 817, "scale": 0.05 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [65535, 1], "dtype": "float32" }, |
| "residualT": { "shape": [65535, 1], "dtype": "float32" } |
| }, |
| "bench": { "metrics": [{ "type": "bandwidth", "value": "4 * (4 * args.rows * args.hidden + 3 * args.hidden)" }] } |
| } |
| ] |
| } |
|
|