Xenova's picture
Xenova HF Staff
sync 2e7068faf55e
f18314a verified
Raw
History Blame
11.8 kB
{
"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" }] }
}
]
}