Download build/webgpu/test.json from webgpu-kernels/com.microsoft.MatMulNBitsMlp: direct link, hf CLI and curl.
- Browser
- Download file 81.7 kB
-
https://huggingface.co/kernels/webgpu-kernels/com.microsoft.MatMulNBitsMlp/resolve/v1/build/webgpu/test.json
- Command line
-
hf download hf://webgpu-kernels/com.microsoft.MatMulNBitsMlp@v1/build/webgpu/test.json
-
curl -L -o test.json https://huggingface.co/kernels/webgpu-kernels/com.microsoft.MatMulNBitsMlp/resolve/v1/build/webgpu/test.json
81.7 kB
| { | |
| "fixtureArrays": { | |
| "pinned_plain_gb_ub_input_aT": [0.9181, 1.1011, 1.115, 0.9522, 0.6333, 0.2043, -0.2696, -0.7143, -1.0586, -1.2453, -1.2411, -1.0421, -0.6753, -0.1947, 0.3263, 0.8068, 1.1707, 1.3587, 1.3385, 1.1098, 0.7051, 0.1852, -0.3707, -0.8762, -1.2521, -1.4384, -1.4042, -1.1526, -0.7208, -0.1744, 0.4029, 0.9218], | |
| "pinned_plain_gb_ub_input_gateBT": [52, 93, 210, 163, 160, 89, 30, 255, 204, 21, 42, 27, 184, 145, 246, 247, 100, 205, 130, 147, 208, 201, 206, 239, 252, 133, 218, 11, 232, 1, 166, 231], | |
| "pinned_plain_gb_ub_input_upBT": [248, 209, 54, 55, 164, 13, 194, 211, 16, 9, 14, 47, 60, 197, 26, 75, 40, 65, 230, 39, 212, 125, 114, 195, 64, 121, 190, 31, 108, 53, 202, 59], | |
| "pinned_norm_nogb_noub_input_normScaleT": [1.1719, 1.2817, 1.29, 1.1936, 1.0274, 0.8514, 0.7289, 0.7042, 0.7862, 0.9454, 1.1242, 1.2582, 1.2991, 1.2321, 1.0814, 0.9013] | |
| }, | |
| "cases": [ | |
| { | |
| "name": "plain_nogb_noub", | |
| "attrs": { "K": 32, "N": 8, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [3, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [3, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "plain_nogb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [3, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [3, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "plain_gb_noub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [3, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [3, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "plain_gb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [3, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [3, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "decode_norm_nogb_noub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "decode_skip_nogb_noub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "decode_skipsum_nogb_noub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu", "epsilon": 0.001 }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 }, | |
| "residualT": { "dtype": "float32", "shape": [1, 32], "tolerance": 0.000001, "relTolerance": 0.000001 } | |
| } | |
| }, | |
| { | |
| "name": "decode_norm_nogb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "decode_skip_nogb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "decode_skipsum_nogb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 }, | |
| "residualT": { "dtype": "float32", "shape": [1, 32], "tolerance": 0.000001, "relTolerance": 0.000001 } | |
| } | |
| }, | |
| { | |
| "name": "decode_norm_gb_noub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "decode_skip_gb_noub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "decode_skipsum_gb_noub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 }, | |
| "residualT": { "dtype": "float32", "shape": [1, 32], "tolerance": 0.000001, "relTolerance": 0.000001 } | |
| } | |
| }, | |
| { | |
| "name": "decode_norm_gb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "decode_skip_gb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "decode_skipsum_gb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 }, | |
| "residualT": { "dtype": "float32", "shape": [1, 32], "tolerance": 0.000001, "relTolerance": 0.000001 } | |
| } | |
| }, | |
| { | |
| "name": "prefill_norm_nogb_noub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [5, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [5, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "prefill_norm_nogb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [5, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [5, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "prefill_norm_gb_noub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [5, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [5, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "prefill_norm_gb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [5, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [5, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "prefill_skip_gb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [5, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [5, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [5, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "prefill_skipsum_gb_ub", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [5, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [5, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float32", "shape": [5, 8], "tolerance": 0.0001, "relTolerance": 0.0001 }, | |
| "residualT": { "dtype": "float32", "shape": [5, 32], "tolerance": 0.000001, "relTolerance": 0.000001 } | |
| } | |
| }, | |
| { | |
| "name": "tail_column_not_tile_aligned", | |
| "provenance": { | |
| "notes": "N is not a multiple of the column tile, so the last tile's out-of-range lanes must contribute nothing." | |
| }, | |
| "attrs": { "K": 32, "N": 5, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [2, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [5, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [5, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [5], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [5, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [5, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [5], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [2, 5], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "tail_block_partial_k", | |
| "provenance": { "notes": "K is not a multiple of block_size, so the final block is partly out of range." }, | |
| "attrs": { "K": 20, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [2, 20], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [20], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [2, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "rank3_activation", | |
| "provenance": { "notes": "Rank-3 activation: the leading axes fold into the row count." }, | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 4, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 4, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "bits2_decode", | |
| "provenance": { "notes": "2-bit codes pack four per stored byte with a default zero point of 2." }, | |
| "attrs": { "K": 32, "N": 8, "bits": 2, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 4], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 4], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "bits8_prefill", | |
| "provenance": { "notes": "8-bit codes are one byte per weight with a default zero point of 128." }, | |
| "attrs": { "K": 32, "N": 8, "bits": 8, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [3, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 16], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 16], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [3, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "block32_decode", | |
| "provenance": { | |
| "notes": "A single-row decode with K=64 and block_size=32 exercises two independently scaled 32-element blocks per output column." | |
| }, | |
| "attrs": { "K": 64, "N": 8, "bits": 4, "block_size": 32, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 16], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 16], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 }, | |
| "residualT": { "dtype": "float32", "shape": [1, 64], "tolerance": 0.000001, "relTolerance": 0.000001 } | |
| } | |
| }, | |
| { | |
| "name": "f16_decode_skipsum", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float16", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float16", | |
| "shape": [1, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float16", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float16", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float16", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float16", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float16", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float16", "shape": [1, 8], "tolerance": 0.002, "relTolerance": 0.01 }, | |
| "residualT": { "dtype": "float16", "shape": [1, 32], "tolerance": 0.002, "relTolerance": 0.002 } | |
| } | |
| }, | |
| { | |
| "name": "f16_prefill_norm", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float16", | |
| "shape": [4, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float16", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float16", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float16", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float16", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float16", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float16", "shape": [4, 8], "tolerance": 0.002, "relTolerance": 0.01 } } | |
| }, | |
| { | |
| "name": "f16_plain", | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float16", | |
| "shape": [3, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float16", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float16", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float16", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float16", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float16", "shape": [3, 8], "tolerance": 0.002, "relTolerance": 0.01 } } | |
| }, | |
| { | |
| "name": "pinned_plain_gb_ub", | |
| "provenance": { | |
| "notes": "Expected values are independently derived from the ONNX Runtime schema. With normalization omitted, both projections read A directly." | |
| }, | |
| "attrs": { "K": 16, "N": 4, "bits": 4, "block_size": 8, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [2, 16], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_plain_gb_ub_input_aT" } } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [4, 2, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_plain_gb_ub_input_gateBT" } } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [4, 2], | |
| "data": { "kind": "values", "values": [0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [4], | |
| "data": { "kind": "values", "values": [0.1782, 0.1617, -0.0315, -0.1903] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [4, 2, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_plain_gb_ub_input_upBT" } } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [4, 2], | |
| "data": { "kind": "values", "values": [0.05, 0.046, 0.042, 0.038, 0.034, 0.03, 0.026, 0.022] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [4], | |
| "data": { "kind": "values", "values": [0.0932, -0.0341, -0.1356, -0.1345] } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { | |
| "dtype": "float32", | |
| "shape": [2, 4], | |
| "data": { | |
| "kind": "values", | |
| "values": [0.2154822, -0.4471286, 0.0238219, -0.4921483, 0.272635, -0.6797003, -0.0049887, -0.738616] | |
| }, | |
| "tolerance": 0.00001, | |
| "relTolerance": 0.0001 | |
| } | |
| } | |
| }, | |
| { | |
| "name": "pinned_norm_nogb_noub", | |
| "provenance": { | |
| "notes": "Expected values are independently derived from the ONNX Runtime schema. SimplifiedLayerNormalization runs without projection biases." | |
| }, | |
| "attrs": { "K": 16, "N": 4, "bits": 4, "block_size": 8, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [2, 16], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_plain_gb_ub_input_aT" } } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [16], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_norm_nogb_noub_input_normScaleT" } } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [4, 2, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_plain_gb_ub_input_gateBT" } } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [4, 2], | |
| "data": { "kind": "values", "values": [0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [4, 2, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_plain_gb_ub_input_upBT" } } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [4, 2], | |
| "data": { "kind": "values", "values": [0.05, 0.046, 0.042, 0.038, 0.034, 0.03, 0.026, 0.022] } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { | |
| "dtype": "float32", | |
| "shape": [2, 4], | |
| "data": { | |
| "kind": "values", | |
| "values": [0.0651757, -0.5406582, 0.1351256, -0.4018507, 0.0572953, -0.6108609, 0.1088786, -0.5550907] | |
| }, | |
| "tolerance": 0.00001, | |
| "relTolerance": 0.0001 | |
| } | |
| } | |
| }, | |
| { | |
| "name": "pinned_skipsum_gb_ub", | |
| "provenance": { | |
| "notes": "Expected values are independently derived from the ONNX Runtime schema. SkipSimplifiedLayerNormalization uses both projection biases and returns the residual sum." | |
| }, | |
| "attrs": { "K": 16, "N": 4, "bits": 4, "block_size": 8, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [2, 16], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_plain_gb_ub_input_aT" } } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [2, 16], | |
| "data": { | |
| "kind": "values", | |
| "values": [0.0537, 0.2754, 0.2738, 0.0827, -0.1607, -0.2913, -0.2055, 0.0807, 0.4361, 0.6796, 0.672, 0.3892, -0.0618, -0.4922, -0.7224, -0.6678, -0.3779, -0.0076, 0.2621, 0.3158, 0.1593, -0.0878, -0.2585, -0.2289, 0.0133, 0.3593, 0.6324, 0.678, 0.4447, 0.0142, -0.4352, -0.7141] | |
| } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [16], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_norm_nogb_noub_input_normScaleT" } } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [4, 2, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_plain_gb_ub_input_gateBT" } } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [4, 2], | |
| "data": { "kind": "values", "values": [0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [4], | |
| "data": { "kind": "values", "values": [0.1782, 0.1617, -0.0315, -0.1903] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [4, 2, 4], | |
| "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/pinned_plain_gb_ub_input_upBT" } } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [4, 2], | |
| "data": { "kind": "values", "values": [0.05, 0.046, 0.042, 0.038, 0.034, 0.03, 0.026, 0.022] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [4], | |
| "data": { "kind": "values", "values": [0.0932, -0.0341, -0.1356, -0.1345] } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { | |
| "dtype": "float32", | |
| "shape": [2, 4], | |
| "data": { | |
| "kind": "values", | |
| "values": [-0.052766, -0.1362556, 0.2952684, -1.5736477, 0.0464634, -0.1608242, -0.1441075, -0.5477401] | |
| }, | |
| "tolerance": 0.00001, | |
| "relTolerance": 0.0001 | |
| }, | |
| "residualT": { | |
| "dtype": "float32", | |
| "shape": [2, 16], | |
| "data": { | |
| "kind": "values", | |
| "values": [0.9718, 1.3765, 1.3888, 1.0349, 0.4726, -0.087, -0.4751, -0.6336, -0.6225, -0.5657, -0.5691, -0.6529, -0.7371, -0.6869, -0.3961, 0.139, 0.7928, 1.3511, 1.6006, 1.4256, 0.8644, 0.0974, -0.6292, -1.1051, -1.2388, -1.0791, -0.7718, -0.4746, -0.2761, -0.1602, -0.0323, 0.2077] | |
| }, | |
| "tolerance": 0.000001, | |
| "relTolerance": 0.000001 | |
| } | |
| } | |
| }, | |
| { | |
| "name": "prefill_skip_nogb_noub", | |
| "provenance": { | |
| "notes": "Five activation rows (M=5) with skip and norm_scale supplied but both projection biases omitted checks staged SkipSimplifiedLayerNormalization without the residual-sum output, at 4-bit block_size=16 quantization." | |
| }, | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [5, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [5, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [5, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "norm_rows_past_one_tile", | |
| "provenance": { | |
| "notes": "Ten activation rows over an eight-row tile dispatch two groups. The second group has two live rows and six guarded rows clamped to the last valid input." | |
| }, | |
| "attrs": { "K": 32, "N": 8, "bits": 4, "block_size": 16, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [10, 32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [32], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 2, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [10, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "decode_multi_trip_tails", | |
| "attrs": { "K": 300, "N": 5, "bits": 4, "block_size": 32, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 300], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [300], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [5, 10, 16], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [5, 10], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [5], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [5, 10, 16], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [5, 10], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [5], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 5], "tolerance": 0.0001, "relTolerance": 0.0001 } }, | |
| "provenance": { | |
| "notes": "Single row at K past two 128-code trips of the reduction-partitioned walk, with a partial final block and N not aligned to the decode column group." | |
| } | |
| }, | |
| { | |
| "name": "decode_odd_k_skipsum", | |
| "attrs": { "K": 21, "N": 5, "bits": 4, "block_size": 32, "activation": "silu", "epsilon": 0.001 }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 21], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 21], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [21], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [5, 1, 16], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [5, 1], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [5, 1, 16], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [5, 1], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float32", "shape": [1, 5], "tolerance": 0.0001, "relTolerance": 0.0001 }, | |
| "residualT": { "dtype": "float32", "shape": [1, 21], "tolerance": 0.000001, "relTolerance": 0.000001 } | |
| }, | |
| "provenance": { | |
| "notes": "Single row with an odd K, so the last reduction pair has one live code; skip input and residual output." | |
| } | |
| }, | |
| { | |
| "name": "fused_skipsum_multi_trip_odd_k", | |
| "attrs": { "K": 301, "N": 5, "bits": 4, "block_size": 16, "activation": "silu", "epsilon": 0.001 }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 301], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 301], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [301], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [5, 19, 8], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [5, 19], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [5, 19, 8], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [5, 19], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float32", "shape": [1, 5], "tolerance": 0.0001, "relTolerance": 0.0001 }, | |
| "residualT": { "dtype": "float32", "shape": [1, 301], "tolerance": 0.000001, "relTolerance": 0.000001 } | |
| }, | |
| "provenance": { | |
| "notes": "Inline-norm fused route (blob 8, so not the vector walk): the sum of squares accumulates across three 128-code trips of the pair walk, the odd K leaves one live code in the last pair, and N is not a whole column group." | |
| } | |
| }, | |
| { | |
| "name": "bits8_decode_two_trips", | |
| "attrs": { "K": 160, "N": 8, "bits": 8, "block_size": 32, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 160], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [160], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 5, 32], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 5], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 5, 32], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 5], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.0001, "relTolerance": 0.0001 } }, | |
| "provenance": { "notes": "Single row at 8 bits, where a code pair spans two stored slots, over two trips." } | |
| }, | |
| { | |
| "name": "plain_decode_two_trips", | |
| "attrs": { "K": 200, "N": 6, "bits": 4, "block_size": 32, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 200], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [6, 7, 16], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [6, 7], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [6], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [6, 7, 16], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [6, 7], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [6], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 6], "tolerance": 0.0001, "relTolerance": 0.0001 } }, | |
| "provenance": { | |
| "notes": "Single row without normalization, so the reduction-partitioned walk reads the raw activation." | |
| } | |
| }, | |
| { | |
| "name": "block32_decode_eight_columns_n13", | |
| "provenance": { | |
| "notes": "K=64 at block 32 is two sixteen-byte vector groups per column, at most one per lane, so the decode walk covers eight columns per workgroup; N=13 leaves the second workgroup with a full first column group and a one-column second group, exercising the guards on columns 4..7." | |
| }, | |
| "attrs": { "K": 64, "N": 13, "bits": 4, "block_size": 32, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [13, 2, 16], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [13, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [13], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [13, 2, 16], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [13, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [13], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float32", "shape": [1, 13], "tolerance": 0.0001, "relTolerance": 0.0001 }, | |
| "residualT": { "dtype": "float32", "shape": [1, 64], "tolerance": 0.000001, "relTolerance": 0.000001 } | |
| } | |
| }, | |
| { | |
| "name": "block32_decode_eight_columns_n5_plain", | |
| "provenance": { | |
| "notes": "Eight-column decode walk without the norm pass (plain activations, no skip): N=5 is one workgroup whose second column group holds a single live column." | |
| }, | |
| "attrs": { "K": 64, "N": 5, "bits": 4, "block_size": 32, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 64], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [5, 2, 16], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [5, 2], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [5], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [5, 2, 16], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [5, 2], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [5], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { "yT": { "dtype": "float32", "shape": [1, 5], "tolerance": 0.0001, "relTolerance": 0.0001 } } | |
| }, | |
| { | |
| "name": "block32_decode_k2080_two_groups_per_lane", | |
| "provenance": { | |
| "notes": "K=2080 at block 32 is 65 sixteen-byte vector groups per column, more than the 64-lane decode workgroup, so the vector walk keeps both projections in every lane (no lane split) and lane 0 takes a second group; the staged norm covers 2080 activations." | |
| }, | |
| "attrs": { "K": 2080, "N": 8, "bits": 4, "block_size": 32, "activation": "silu" }, | |
| "inputs": { | |
| "aT": { | |
| "dtype": "float32", | |
| "shape": [1, 2080], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29, "scale": 0.8 } | |
| }, | |
| "skipT": { | |
| "dtype": "float32", | |
| "shape": [1, 2080], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.37, "cosStep": 0.11, "scale": 0.5 } | |
| }, | |
| "normScaleT": { | |
| "dtype": "float32", | |
| "shape": [2080], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.4, "offset": 1.0 } | |
| }, | |
| "gateBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 65, 16], | |
| "data": { "kind": "cycle", "values": [27, 180, 75, 226, 33, 150, 201, 108, 57, 246, 129, 66, 195] } | |
| }, | |
| "gateScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 65], | |
| "data": { "kind": "cycle", "values": [0.04, 0.055, 0.05, 0.065, 0.06, 0.075, 0.07] } | |
| }, | |
| "gateBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.53, "scale": 0.3 } | |
| }, | |
| "upBT": { | |
| "dtype": "uint8", | |
| "shape": [8, 65, 16], | |
| "data": { "kind": "cycle", "values": [211, 44, 137, 98, 165, 20, 233, 121, 78, 190, 15, 252, 87, 143, 61] } | |
| }, | |
| "upScalesT": { | |
| "dtype": "float32", | |
| "shape": [8, 65], | |
| "data": { "kind": "cycle", "values": [0.045, 0.03, 0.07, 0.05, 0.08, 0.035] } | |
| }, | |
| "upBiasT": { | |
| "dtype": "float32", | |
| "shape": [8], | |
| "data": { "kind": "fillFloat32", "sinStep": 0.61, "cosStep": 0.17, "scale": 0.25 } | |
| } | |
| }, | |
| "outputs": { | |
| "yT": { "dtype": "float32", "shape": [1, 8], "tolerance": 0.001, "relTolerance": 0.001 }, | |
| "residualT": { "dtype": "float32", "shape": [1, 2080], "tolerance": 0.000001, "relTolerance": 0.000001 } | |
| } | |
| } | |
| ] | |
| } | |