| { |
| "op": "com.microsoft.CausalConvWithState", |
| "tunableSpace": { "workgroupSize": [64, 128, 256] }, |
| "cases": [ |
| { |
| "name": "causal-conv-f32-b2c32t256k4", |
| "preset": "smoke", |
| "vars": { "batch": 2, "channels": 32, "length": 256, "kernel": 4 }, |
| "attrs": { "activation": "none" }, |
| "inputs": { |
| "inputT": { "shape": [2, 32, 256], "dtype": "float32", "dist": "normal", "seed": 205, "scale": 0.2 }, |
| "weightT": { "shape": [32, 1, 4], "dtype": "float32", "dist": "normal", "seed": 206, "scale": 0.1 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [2, 32, 256], "dtype": "float32" }, |
| "presentStateT": { "shape": [2, 32, 3], "dtype": "float32" } |
| }, |
| "bench": { |
| "primary": true, |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 1)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-f32-state-bias-silu-b2c32t256k4", |
| "preset": "smoke", |
| "vars": { "batch": 2, "channels": 32, "length": 256, "kernel": 4 }, |
| "attrs": { "activation": "silu" }, |
| "inputs": { |
| "inputT": { "shape": [2, 32, 256], "dtype": "float32", "dist": "normal", "seed": 206, "scale": 0.2 }, |
| "weightT": { "shape": [32, 1, 4], "dtype": "float32", "dist": "normal", "seed": 207, "scale": 0.1 }, |
| "biasT": { "shape": [32], "dtype": "float32", "dist": "normal", "seed": 208, "scale": 0.05 }, |
| "pastStateT": { "shape": [2, 32, 3], "dtype": "float32", "dist": "normal", "seed": 209, "scale": 0.2 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [2, 32, 256], "dtype": "float32" }, |
| "presentStateT": { "shape": [2, 32, 3], "dtype": "float32" } |
| }, |
| "bench": { |
| "primary": true, |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 1)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.biasT) + numel(shapes.pastStateT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-f32-large-kernel-prefill-b2c1024t512k128", |
| "preset": "stress", |
| "tunableSpace": { "tiledWorkgroupSize": [64, 128, 256] }, |
| "vars": { "batch": 2, "channels": 1024, "length": 512, "kernel": 128 }, |
| "attrs": { "activation": "none" }, |
| "inputs": { |
| "inputT": { "shape": [2, 1024, 512], "dtype": "float32", "dist": "normal", "seed": 301, "scale": 0.2 }, |
| "weightT": { "shape": [1024, 1, 128], "dtype": "float32", "dist": "normal", "seed": 302, "scale": 0.05 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [2, 1024, 512], "dtype": "float32", "dist": "empty" }, |
| "presentStateT": { "shape": [2, 1024, 127], "dtype": "float32", "dist": "empty" } |
| }, |
| "bench": { |
| "primary": true, |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 1)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-f32-large-kernel127-prefill-b2c1024t512-alignment-pathology", |
| "preset": "stress", |
| "provenance": { |
| "notes": "A realistic odd-width causal kernel adjacent to the K=128 tiled control. K=127 is valid but fails the tiled kernel's K % 4 contract and falls back to the scalar zero-state implementation." |
| }, |
| "vars": { "batch": 2, "channels": 1024, "length": 512, "kernel": 127 }, |
| "attrs": { "activation": "none" }, |
| "inputs": { |
| "inputT": { "shape": [2, 1024, 512], "dtype": "float32", "dist": "normal", "seed": 310, "scale": 0.2 }, |
| "weightT": { "shape": [1024, 1, 127], "dtype": "float32", "dist": "normal", "seed": 311, "scale": 0.05 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [2, 1024, 512], "dtype": "float32", "dist": "empty" }, |
| "presentStateT": { "shape": [2, 1024, 126], "dtype": "float32", "dist": "empty" } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 1)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-f32-bias-large-kernel-prefill-b2c1024t512k128-pathology", |
| "preset": "stress", |
| "tunableSpace": { "tiledWorkgroupSize": [64, 128, 256] }, |
| "provenance": { |
| "notes": "Regression lock for the historical large-kernel bias cliff: this common per-channel bias path previously excluded the tiled specialization and selected the scalar kernel." |
| }, |
| "vars": { "batch": 2, "channels": 1024, "length": 512, "kernel": 128 }, |
| "attrs": { "activation": "silu" }, |
| "inputs": { |
| "inputT": { "shape": [2, 1024, 512], "dtype": "float32", "dist": "normal", "seed": 307, "scale": 0.2 }, |
| "weightT": { "shape": [1024, 1, 128], "dtype": "float32", "dist": "normal", "seed": 308, "scale": 0.05 }, |
| "biasT": { "shape": [1024], "dtype": "float32", "dist": "normal", "seed": 309, "scale": 0.05 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [2, 1024, 512], "dtype": "float32", "dist": "empty" }, |
| "presentStateT": { "shape": [2, 1024, 127], "dtype": "float32", "dist": "empty" } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 1)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.biasT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-f32-state-large-kernel-prefill-b2c1024t512k128-pathology", |
| "preset": "stress", |
| "tunableSpace": { "tiledWorkgroupSize": [64, 128, 256] }, |
| "provenance": { |
| "notes": "Regression lock for the historical continuation cliff: valid carry state previously excluded the tiled specialization even without bias or activation." |
| }, |
| "vars": { "batch": 2, "channels": 1024, "length": 512, "kernel": 128 }, |
| "attrs": { "activation": "none" }, |
| "inputs": { |
| "inputT": { "shape": [2, 1024, 512], "dtype": "float32", "dist": "normal", "seed": 312, "scale": 0.2 }, |
| "weightT": { "shape": [1024, 1, 128], "dtype": "float32", "dist": "normal", "seed": 313, "scale": 0.05 }, |
| "pastStateT": { "shape": [2, 1024, 127], "dtype": "float32", "dist": "normal", "seed": 314, "scale": 0.2 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [2, 1024, 512], "dtype": "float32", "dist": "empty" }, |
| "presentStateT": { "shape": [2, 1024, 127], "dtype": "float32", "dist": "empty" } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 1)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.pastStateT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-f32-state-bias-large-kernel-prefill-b2c1024t512k128-pathology", |
| "preset": "stress", |
| "tunableSpace": { "tiledWorkgroupSize": [64, 128, 256] }, |
| "provenance": { |
| "notes": "A realistic chunked continuation and regression lock: valid carry state plus bias previously excluded the tiled specialization and selected the scalar state+bias implementation." |
| }, |
| "vars": { "batch": 2, "channels": 1024, "length": 512, "kernel": 128 }, |
| "attrs": { "activation": "silu" }, |
| "inputs": { |
| "inputT": { "shape": [2, 1024, 512], "dtype": "float32", "dist": "normal", "seed": 303, "scale": 0.2 }, |
| "weightT": { "shape": [1024, 1, 128], "dtype": "float32", "dist": "normal", "seed": 304, "scale": 0.05 }, |
| "biasT": { "shape": [1024], "dtype": "float32", "dist": "normal", "seed": 305, "scale": 0.05 }, |
| "pastStateT": { "shape": [2, 1024, 127], "dtype": "float32", "dist": "normal", "seed": 306, "scale": 0.2 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [2, 1024, 512], "dtype": "float32", "dist": "empty" }, |
| "presentStateT": { "shape": [2, 1024, 127], "dtype": "float32", "dist": "empty" } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 1)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.biasT) + numel(shapes.pastStateT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-f32-huge-numel-fold-b2c4096t4096k4", |
| "preset": "stress", |
| "vars": { "batch": 2, "channels": 4096, "length": 4096, "kernel": 4 }, |
| "attrs": { "activation": "none" }, |
| "inputs": { |
| "inputT": { "shape": [2, 4096, 4096], "dtype": "float32", "dist": "normal", "seed": 311, "scale": 0.2 }, |
| "weightT": { "shape": [4096, 1, 4], "dtype": "float32", "dist": "normal", "seed": 312, "scale": 0.1 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [2, 4096, 4096], "dtype": "float32", "dist": "empty" }, |
| "presentStateT": { "shape": [2, 4096, 3], "dtype": "float32", "dist": "empty" } |
| }, |
| "bench": { |
| "primary": true, |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 1)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "nemo-conv-decode-9728", |
| "preset": "smoke", |
| "attrs": { "activation": "silu" }, |
| "inputs": { |
| "inputT": { "dtype": "float32", "shape": [1, 9728, 1] }, |
| "weightT": { "dtype": "float32", "shape": [9728, 1, 4] }, |
| "biasT": { "dtype": "float32", "shape": [9728] }, |
| "pastStateT": { "dtype": "float32", "shape": [1, 9728, 3] } |
| }, |
| "outputs": { |
| "outputT": { "dtype": "float32", "shape": [1, 9728, 1] }, |
| "presentStateT": { "dtype": "float32", "shape": [1, 9728, 3] } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 1)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.biasT) + numel(shapes.pastStateT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-qwen3next-decode-b1-c8192-t1-k4", |
| "preset": "model", |
| "provenance": { |
| "notes": "Qwen3-Next class defaults (linear_conv_kernel_dim 4) over the concatenated q/k/v channels of the linear-attention branch (2*16*128 + 32*128 = 8192) at a decode step." |
| }, |
| "vars": { "batch": 1, "channels": 8192, "length": 1, "kernel": 4 }, |
| "attrs": { "activation": "silu" }, |
| "inputs": { |
| "inputT": { "shape": [1, 8192, 1], "dtype": "float32", "dist": "normal", "seed": 8700, "scale": 0.5 }, |
| "weightT": { "shape": [8192, 1, 4], "dtype": "float32", "dist": "normal", "seed": 8701, "scale": 0.3 }, |
| "biasT": { "shape": [8192], "dtype": "float32", "dist": "normal", "seed": 8702, "scale": 0.1 }, |
| "pastStateT": { "shape": [1, 8192, 3], "dtype": "float32", "dist": "normal", "seed": 8703, "scale": 0.2 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [1, 8192, 1], "dtype": "float32" }, |
| "presentStateT": { "shape": [1, 8192, 3], "dtype": "float32" } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 2)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.biasT) + numel(shapes.pastStateT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-qwen3next-prefill-b1-c8192-t2048-k4", |
| "preset": "model", |
| "provenance": { "notes": "Qwen3-Next class defaults over a 2048-token prefill chunk." }, |
| "vars": { "batch": 1, "channels": 8192, "length": 2048, "kernel": 4 }, |
| "attrs": { "activation": "silu" }, |
| "inputs": { |
| "inputT": { "shape": [1, 8192, 2048], "dtype": "float32", "dist": "normal", "seed": 8800, "scale": 0.5 }, |
| "weightT": { "shape": [8192, 1, 4], "dtype": "float32", "dist": "normal", "seed": 8801, "scale": 0.3 }, |
| "biasT": { "shape": [8192], "dtype": "float32", "dist": "normal", "seed": 8802, "scale": 0.1 }, |
| "pastStateT": { "shape": [1, 8192, 3], "dtype": "float32", "dist": "normal", "seed": 8803, "scale": 0.2 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [1, 8192, 2048], "dtype": "float32" }, |
| "presentStateT": { "shape": [1, 8192, 3], "dtype": "float32" } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 2)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.biasT) + numel(shapes.pastStateT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-mamba2-decode-b1-c10240-t1-k4", |
| "preset": "model", |
| "provenance": { |
| "notes": "Mamba2 class defaults (hidden_size 4096, expand 2, n_groups 8, state_size 128, conv_kernel 4): the mixer conv spans 2*4096 + 2*8*128 = 10240 channels." |
| }, |
| "vars": { "batch": 1, "channels": 10240, "length": 1, "kernel": 4 }, |
| "attrs": { "activation": "silu" }, |
| "inputs": { |
| "inputT": { "shape": [1, 10240, 1], "dtype": "float32", "dist": "normal", "seed": 8900, "scale": 0.5 }, |
| "weightT": { "shape": [10240, 1, 4], "dtype": "float32", "dist": "normal", "seed": 8901, "scale": 0.3 }, |
| "biasT": { "shape": [10240], "dtype": "float32", "dist": "normal", "seed": 8902, "scale": 0.1 }, |
| "pastStateT": { "shape": [1, 10240, 3], "dtype": "float32", "dist": "normal", "seed": 8903, "scale": 0.2 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [1, 10240, 1], "dtype": "float32" }, |
| "presentStateT": { "shape": [1, 10240, 3], "dtype": "float32" } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 2)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.biasT) + numel(shapes.pastStateT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-mamba2-prefill-b1-c10240-t2048-k4", |
| "preset": "model", |
| "provenance": { "notes": "Mamba2 class defaults over a 2048-token prefill chunk." }, |
| "vars": { "batch": 1, "channels": 10240, "length": 2048, "kernel": 4 }, |
| "attrs": { "activation": "silu" }, |
| "inputs": { |
| "inputT": { "shape": [1, 10240, 2048], "dtype": "float32", "dist": "normal", "seed": 9000, "scale": 0.5 }, |
| "weightT": { "shape": [10240, 1, 4], "dtype": "float32", "dist": "normal", "seed": 9001, "scale": 0.3 }, |
| "biasT": { "shape": [10240], "dtype": "float32", "dist": "normal", "seed": 9002, "scale": 0.1 }, |
| "pastStateT": { "shape": [1, 10240, 3], "dtype": "float32", "dist": "normal", "seed": 9003, "scale": 0.2 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [1, 10240, 2048], "dtype": "float32" }, |
| "presentStateT": { "shape": [1, 10240, 3], "dtype": "float32" } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 2)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.biasT) + numel(shapes.pastStateT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-lfm2-decode-b1-c2560-t1-k3", |
| "preset": "model", |
| "provenance": { |
| "notes": "LFM2 class defaults (hidden_size 2560, conv_L_cache 3): the short-conv block at a decode step, a kernel one tap narrower than the Mamba family." |
| }, |
| "vars": { "batch": 1, "channels": 2560, "length": 1, "kernel": 3 }, |
| "attrs": { "activation": "silu" }, |
| "inputs": { |
| "inputT": { "shape": [1, 2560, 1], "dtype": "float32", "dist": "normal", "seed": 9100, "scale": 0.5 }, |
| "weightT": { "shape": [2560, 1, 3], "dtype": "float32", "dist": "normal", "seed": 9101, "scale": 0.3 }, |
| "biasT": { "shape": [2560], "dtype": "float32", "dist": "normal", "seed": 9102, "scale": 0.1 }, |
| "pastStateT": { "shape": [1, 2560, 2], "dtype": "float32", "dist": "normal", "seed": 9103, "scale": 0.2 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [1, 2560, 1], "dtype": "float32" }, |
| "presentStateT": { "shape": [1, 2560, 2], "dtype": "float32" } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 2)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.biasT) + numel(shapes.pastStateT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| }, |
| { |
| "name": "causal-conv-lfm2-prefill-b1-c2560-t2048-k3", |
| "preset": "model", |
| "provenance": { "notes": "LFM2 class defaults over a 2048-token prefill chunk." }, |
| "vars": { "batch": 1, "channels": 2560, "length": 2048, "kernel": 3 }, |
| "attrs": { "activation": "silu" }, |
| "inputs": { |
| "inputT": { "shape": [1, 2560, 2048], "dtype": "float32", "dist": "normal", "seed": 9200, "scale": 0.5 }, |
| "weightT": { "shape": [2560, 1, 3], "dtype": "float32", "dist": "normal", "seed": 9201, "scale": 0.3 }, |
| "biasT": { "shape": [2560], "dtype": "float32", "dist": "normal", "seed": 9202, "scale": 0.1 }, |
| "pastStateT": { "shape": [1, 2560, 2], "dtype": "float32", "dist": "normal", "seed": 9203, "scale": 0.2 } |
| }, |
| "outputs": { |
| "outputT": { "shape": [1, 2560, 2048], "dtype": "float32" }, |
| "presentStateT": { "shape": [1, 2560, 2], "dtype": "float32" } |
| }, |
| "bench": { |
| "metrics": [ |
| { "type": "gflops", "value": "2 * numel(shapes.outputT) * dim(shapes.weightT, 2)" }, |
| { |
| "type": "bandwidth", |
| "value": "(numel(shapes.inputT) + numel(shapes.weightT) + numel(shapes.biasT) + numel(shapes.pastStateT) + numel(shapes.outputT) + numel(shapes.presentStateT)) * 4" |
| } |
| ] |
| } |
| } |
| ] |
| } |
|
|