{ "op": "com.microsoft.MatMulBnb4", "fixtureArrays": { "bnb4_weight_cycle_b_t": [1, 35, 69, 103, 137, 171, 205, 239, 254, 220, 186, 152, 118, 84, 50, 16, 90] }, "cases": [ { "name": "nf4_scalar_small", "attrs": { "K": 16, "N": 4, "block_size": 16, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float32", "shape": [3, 16], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [32], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [4], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [3, 4], "tolerance": 0.00001 } } }, { "name": "fp4_scalar_small", "attrs": { "K": 16, "N": 4, "block_size": 16, "quant_type": 0 }, "inputs": { "aT": { "dtype": "float32", "shape": [3, 16], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [32], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [4], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [3, 4], "tolerance": 0.00001 } } }, { "name": "nf4_scalar_block_straddle", "attrs": { "K": 24, "N": 3, "block_size": 16, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float32", "shape": [2, 24], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [36], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [5], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [2, 3], "tolerance": 0.00001 } } }, { "name": "nf4_scalar_odd_k", "attrs": { "K": 33, "N": 5, "block_size": 16, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float32", "shape": [3, 33], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [83], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [11], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [3, 5], "tolerance": 0.00001 } } }, { "name": "nf4_gemv_decode", "attrs": { "K": 128, "N": 64, "block_size": 64, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float32", "shape": [1, 128], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [4096], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [128], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [1, 64], "tolerance": 0.00002 } } }, { "name": "fp4_gemv_decode", "attrs": { "K": 64, "N": 32, "block_size": 32, "quant_type": 0 }, "inputs": { "aT": { "dtype": "float32", "shape": [1, 64], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [1024], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [64], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [1, 32], "tolerance": 0.00001 } } }, { "name": "nf4_gemv_ragged_k", "attrs": { "K": 100, "N": 12, "block_size": 16, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float32", "shape": [1, 100], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [600], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [75], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [1, 12], "tolerance": 0.00001 } } }, { "name": "nf4_tiled_prefill", "attrs": { "K": 64, "N": 48, "block_size": 32, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float32", "shape": [32, 64], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [1536], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [96], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [32, 48], "tolerance": 0.00002 } } }, { "name": "fp4_tiled_prefill", "attrs": { "K": 64, "N": 48, "block_size": 32, "quant_type": 0 }, "inputs": { "aT": { "dtype": "float32", "shape": [32, 64], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [1536], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [96], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [32, 48], "tolerance": 0.00002 } } }, { "name": "nf4_sgmat_tall_aligned", "attrs": { "K": 64, "N": 64, "block_size": 32, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float32", "shape": [128, 64], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [2048], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [128], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [128, 64], "tolerance": 0.00002 } } }, { "name": "fp4_sgmat_aligned", "attrs": { "K": 64, "N": 64, "block_size": 32, "quant_type": 0 }, "inputs": { "aT": { "dtype": "float32", "shape": [64, 64], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [2048], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [128], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [64, 64], "tolerance": 0.00002 } } }, { "name": "nf4_tiled_tail", "attrs": { "K": 33, "N": 19, "block_size": 16, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float32", "shape": [20, 33], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [314], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [40], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [20, 19], "tolerance": 0.00001 } } }, { "name": "nf4_tiled_tail_bk32", "attrs": { "K": 33, "N": 19, "block_size": 16, "quant_type": 1 }, "tunables": { "PORTABLE_TILE_K": 32 }, "inputs": { "aT": { "dtype": "float32", "shape": [20, 33], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [314], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [40], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [20, 19], "tolerance": 0.00001 } } }, { "name": "fp4_tiled_tail_bk64", "attrs": { "K": 33, "N": 19, "block_size": 16, "quant_type": 0 }, "tunables": { "PORTABLE_TILE_K": 64 }, "inputs": { "aT": { "dtype": "float32", "shape": [20, 33], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [314], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float32", "shape": [40], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float32", "shape": [20, 19], "tolerance": 0.00001 } } }, { "name": "nf4_f16_scalar", "attrs": { "K": 32, "N": 8, "block_size": 16, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float16", "shape": [3, 32], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [128], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float16", "shape": [16], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float16", "shape": [3, 8], "tolerance": 0.02 } } }, { "name": "nf4_f16_gemv", "attrs": { "K": 64, "N": 16, "block_size": 32, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float16", "shape": [1, 64], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [512], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float16", "shape": [32], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float16", "shape": [1, 16], "tolerance": 0.02 } } }, { "name": "nf4_f16_tiled", "attrs": { "K": 32, "N": 16, "block_size": 32, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float16", "shape": [16, 32], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [256], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float16", "shape": [16], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float16", "shape": [16, 16], "tolerance": 0.02 } } }, { "name": "nf4_f16_tiled_longk_m32_k512_n32", "attrs": { "K": 512, "N": 32, "block_size": 64, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float16", "shape": [32, 512], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [8192], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float16", "shape": [256], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float16", "shape": [32, 32], "tolerance": 0.001, "relTolerance": 0.001 } }, "provenance": { "notes": "The other f16 fixtures all run K <= 64, where an f16 accumulator is indistinguishable from an f32 one. This one accumulates over K=512 so the tiled path's f32 accumulation is actually pinned." } }, { "name": "nf4_sgmat_widened_f16", "provenance": { "notes": "A float16 request on the aligned subgroup-matrix shape. The matrix units take float32 operands and accumulate in float32, so this path widens the activations either side of the multiply rather than using the device's float16 configuration, whose result component is also float16. It is the only case that reaches the widening passes." }, "attrs": { "K": 64, "N": 64, "block_size": 32, "quant_type": 1 }, "inputs": { "aT": { "dtype": "float16", "shape": [128, 64], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31 } }, "bT": { "dtype": "uint8", "shape": [2048], "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/bnb4_weight_cycle_b_t" } } }, "absmaxT": { "dtype": "float16", "shape": [128], "data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.07, "scale": 0.02, "offset": 0.06 } } }, "outputs": { "yT": { "dtype": "float16", "shape": [128, 64], "tolerance": 0.002, "relTolerance": 0.002 } } } ] }