File size: 11,808 Bytes
f18314a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 | {
"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" }] }
}
]
}
|