{ "op": "com.microsoft.SparseAttention", "fixtureArrays": { "block_column_indices_t_pattern": [0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 2, 3, 4, 5, 6, 7, 8, 9, 0, 3, 4, 5, 6, 7, 8, 9, 10, 0, 4, 5, 6, 7, 8, 9, 10, 11, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 4, 6, 7, 8, 9, 10, 11, 12, 13, 0, 4, 7, 8, 9, 10, 11, 12, 13, 14, 0, 4, 8, 9, 10, 11, 12, 13, 14, 15, 0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 9, 3, 4, 5, 6, 7, 8, 9, 10, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3, 5, 6, 7, 8, 9, 10, 11, 12, 3, 6, 7, 8, 9, 10, 11, 12, 13, 3, 7, 8, 9, 10, 11, 12, 13, 14, 3, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, 0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 4, 5, 6, 7, 8, 9, 10, 11, 2, 5, 6, 7, 8, 9, 10, 11, 12, 2, 6, 7, 8, 9, 10, 11, 12, 13, 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2, 6, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, 0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 3, 4, 5, 6, 7, 8, 9, 10, 1, 4, 5, 6, 7, 8, 9, 10, 11, 1, 5, 6, 7, 8, 9, 10, 11, 12, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 5, 7, 8, 9, 10, 11, 12, 13, 14, 1, 5, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1], "sparse-prompt-b1-s1024-h32kv8-d128-blk64_input_blockRowIndicesT": [0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 54, 63, 72, 82, 92, 102, 112, 0, 1, 3, 6, 10, 15, 21, 28, 36, 44, 52, 60, 69, 78, 87, 96, 106, 0, 1, 3, 6, 10, 15, 21, 28, 36, 44, 52, 61, 70, 79, 88, 98, 108, 0, 1, 3, 6, 10, 15, 21, 28, 36, 44, 53, 62, 71, 80, 90, 100, 110] }, "tunableSpace": { "WORKGROUP_SIZE": [32, 64, 128, 256], "APPEND_WORKGROUP_SIZE": [64, 128, 256] }, "cases": [ { "name": "sparse-prompt-b1-s1024-h32kv8-d128-blk64", "preset": "smoke", "vars": { "dtype": "float32", "batch": 1, "seq": 1024, "heads": 32, "kvHeads": 8, "headDim": 128, "qkPairs": 13254656, "attendedKeys": 1024, "dtypeBytes": 4 }, "attrs": { "num_heads": 32, "kv_num_heads": 8, "sparse_block_size": 64 }, "inputs": { "queryT": { "shape": [1, 1024, 4096], "dtype": "float32", "dist": "normal", "seed": 9300, "scale": 1 }, "keyT": { "shape": [1, 1024, 1024], "dtype": "float32", "dist": "normal", "seed": 9301, "scale": 1 }, "valueT": { "shape": [1, 1024, 1024], "dtype": "float32", "dist": "normal", "seed": 9302, "scale": 1 }, "pastKeyT": { "shape": [1, 8, 1024, 128], "dtype": "float32", "dist": "normal", "seed": 9303, "scale": 1 }, "pastValueT": { "shape": [1, 8, 1024, 128], "dtype": "float32", "dist": "normal", "seed": 9304, "scale": 1 }, "blockRowIndicesT": { "shape": [4, 17], "dtype": "int32", "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/sparse-prompt-b1-s1024-h32kv8-d128-blk64_input_blockRowIndicesT" } } }, "blockColIndicesT": { "shape": [4, 112], "dtype": "int32", "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/block_column_indices_t_pattern" } } }, "totalSequenceLengthT": { "shape": [1], "dtype": "int32", "data": { "kind": "values", "values": [1024] } }, "keyTotalSequenceLengthsT": { "shape": [1], "dtype": "int32", "dist": "constant", "value": 1024 } }, "outputs": { "outputT": { "shape": [1, 1024, 4096], "dtype": "float32" } }, "bench": { "metrics": [{ "type": "gflops", "value": "4 * args.qkPairs * args.headDim" }] } }, { "name": "sparse-decode-b8-past1023-h32kv8-d128-blk64", "preset": "smoke", "vars": { "dtype": "float32", "batch": 8, "seq": 1, "heads": 32, "kvHeads": 8, "headDim": 128, "qkPairs": 163840, "attendedKeys": 640, "dtypeBytes": 4 }, "attrs": { "num_heads": 32, "kv_num_heads": 8, "sparse_block_size": 64 }, "inputs": { "queryT": { "shape": [8, 1, 4096], "dtype": "float32", "dist": "normal", "seed": 9310, "scale": 1 }, "keyT": { "shape": [8, 1, 1024], "dtype": "float32", "dist": "normal", "seed": 9311, "scale": 1 }, "valueT": { "shape": [8, 1, 1024], "dtype": "float32", "dist": "normal", "seed": 9312, "scale": 1 }, "pastKeyT": { "shape": [8, 8, 1024, 128], "dtype": "float32", "dist": "normal", "seed": 9313, "scale": 1 }, "pastValueT": { "shape": [8, 8, 1024, 128], "dtype": "float32", "dist": "normal", "seed": 9314, "scale": 1 }, "blockRowIndicesT": { "shape": [4, 17], "dtype": "int32", "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/sparse-prompt-b1-s1024-h32kv8-d128-blk64_input_blockRowIndicesT" } } }, "blockColIndicesT": { "shape": [4, 112], "dtype": "int32", "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/block_column_indices_t_pattern" } } }, "totalSequenceLengthT": { "shape": [1], "dtype": "int32", "data": { "kind": "values", "values": [1024] } }, "keyTotalSequenceLengthsT": { "shape": [8], "dtype": "int32", "dist": "constant", "value": 1024 } }, "outputs": { "outputT": { "shape": [8, 1, 4096], "dtype": "float32" } }, "bench": { "metrics": [ { "type": "bandwidth", "value": "2 * args.batch * args.kvHeads * args.attendedKeys * args.headDim * args.dtypeBytes" } ] } }, { "name": "sparse-decode-f16-b8-past1023", "preset": "model", "vars": { "dtype": "float16", "batch": 8, "seq": 1, "heads": 32, "kvHeads": 8, "headDim": 128, "qkPairs": 163840, "attendedKeys": 640, "dtypeBytes": 2 }, "attrs": { "num_heads": 32, "kv_num_heads": 8, "sparse_block_size": 64 }, "inputs": { "queryT": { "shape": [8, 1, 4096], "dtype": "float16", "dist": "normal", "seed": 9320, "scale": 1 }, "keyT": { "shape": [8, 1, 1024], "dtype": "float16", "dist": "normal", "seed": 9321, "scale": 1 }, "valueT": { "shape": [8, 1, 1024], "dtype": "float16", "dist": "normal", "seed": 9322, "scale": 1 }, "pastKeyT": { "shape": [8, 8, 1024, 128], "dtype": "float16", "dist": "normal", "seed": 9323, "scale": 1 }, "pastValueT": { "shape": [8, 8, 1024, 128], "dtype": "float16", "dist": "normal", "seed": 9324, "scale": 1 }, "blockRowIndicesT": { "shape": [4, 17], "dtype": "int32", "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/sparse-prompt-b1-s1024-h32kv8-d128-blk64_input_blockRowIndicesT" } } }, "blockColIndicesT": { "shape": [4, 112], "dtype": "int32", "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/block_column_indices_t_pattern" } } }, "totalSequenceLengthT": { "shape": [1], "dtype": "int32", "data": { "kind": "values", "values": [1024] } }, "keyTotalSequenceLengthsT": { "shape": [8], "dtype": "int32", "dist": "constant", "value": 1024 } }, "outputs": { "outputT": { "shape": [8, 1, 4096], "dtype": "float16" } }, "bench": { "metrics": [ { "type": "bandwidth", "value": "2 * args.batch * args.kvHeads * args.attendedKeys * args.headDim * args.dtypeBytes" } ] } }, { "name": "sparse-decode-packed-rotary-b8-past1023", "preset": "model", "vars": { "dtype": "float32", "batch": 8, "seq": 1, "heads": 32, "kvHeads": 8, "headDim": 128, "qkPairs": 163840, "attendedKeys": 640, "dtypeBytes": 4 }, "attrs": { "num_heads": 32, "kv_num_heads": 8, "sparse_block_size": 64, "do_rotary": 1 }, "inputs": { "queryT": { "shape": [8, 1, 6144], "dtype": "float32", "dist": "normal", "seed": 9330, "scale": 1 }, "pastKeyT": { "shape": [8, 8, 1024, 128], "dtype": "float32", "dist": "normal", "seed": 9333, "scale": 1 }, "pastValueT": { "shape": [8, 8, 1024, 128], "dtype": "float32", "dist": "normal", "seed": 9334, "scale": 1 }, "blockRowIndicesT": { "shape": [4, 17], "dtype": "int32", "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/sparse-prompt-b1-s1024-h32kv8-d128-blk64_input_blockRowIndicesT" } } }, "blockColIndicesT": { "shape": [4, 112], "dtype": "int32", "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/block_column_indices_t_pattern" } } }, "totalSequenceLengthT": { "shape": [1], "dtype": "int32", "data": { "kind": "values", "values": [1024] } }, "keyTotalSequenceLengthsT": { "shape": [8], "dtype": "int32", "dist": "constant", "value": 1024 }, "cosCacheT": { "shape": [1024, 64], "dtype": "float32", "dist": "normal", "seed": 9335, "scale": 1 }, "sinCacheT": { "shape": [1024, 64], "dtype": "float32", "dist": "normal", "seed": 9336, "scale": 1 } }, "outputs": { "outputT": { "shape": [8, 1, 4096], "dtype": "float32" } }, "bench": { "metrics": [ { "type": "bandwidth", "value": "2 * args.batch * args.kvHeads * args.attendedKeys * args.headDim * args.dtypeBytes" } ] } }, { "name": "sparse-chunked-b2-s128-past896", "preset": "model", "vars": { "dtype": "float32", "batch": 2, "seq": 128, "heads": 32, "kvHeads": 8, "headDim": 128, "qkPairs": 4919296, "attendedKeys": 704, "dtypeBytes": 4 }, "attrs": { "num_heads": 32, "kv_num_heads": 8, "sparse_block_size": 64 }, "inputs": { "queryT": { "shape": [2, 128, 4096], "dtype": "float32", "dist": "normal", "seed": 9340, "scale": 1 }, "keyT": { "shape": [2, 128, 1024], "dtype": "float32", "dist": "normal", "seed": 9341, "scale": 1 }, "valueT": { "shape": [2, 128, 1024], "dtype": "float32", "dist": "normal", "seed": 9342, "scale": 1 }, "pastKeyT": { "shape": [2, 8, 1024, 128], "dtype": "float32", "dist": "normal", "seed": 9343, "scale": 1 }, "pastValueT": { "shape": [2, 8, 1024, 128], "dtype": "float32", "dist": "normal", "seed": 9344, "scale": 1 }, "blockRowIndicesT": { "shape": [4, 17], "dtype": "int32", "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/sparse-prompt-b1-s1024-h32kv8-d128-blk64_input_blockRowIndicesT" } } }, "blockColIndicesT": { "shape": [4, 112], "dtype": "int32", "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/block_column_indices_t_pattern" } } }, "totalSequenceLengthT": { "shape": [1], "dtype": "int32", "data": { "kind": "values", "values": [1024] } }, "keyTotalSequenceLengthsT": { "shape": [2], "dtype": "int32", "dist": "constant", "value": 1024 } }, "outputs": { "outputT": { "shape": [2, 128, 4096], "dtype": "float32" } }, "bench": { "metrics": [{ "type": "gflops", "value": "4 * args.qkPairs * args.headDim" }] } } ] }