Xenova's picture
Xenova HF Staff
sync 2e7068faf55e
62b03c9 verified
Raw
History Blame
14.6 kB
{
"op": "com.microsoft.GatherBlockQuantized",
"tunableSpace": { "workgroupSize": [64, 128, 256] },
"cases": [
{
"name": "gather-block-q8-4096x1024-idx1024",
"preset": "smoke",
"vars": { "rows": 4096, "cols": 1024, "indexCount": 1024, "bits": 8, "blockSize": 32 },
"attrs": { "bits": 8, "block_size": 32 },
"inputs": {
"dataT": { "shape": [4096, 1024], "dtype": "uint8", "dist": "randint", "seed": 205, "min": 0, "max": 255 },
"indicesT": { "shape": [1024], "dtype": "uint32", "dist": "linearMod", "seed": 205, "step": 37, "mod": 4096 },
"scalesT": {
"shape": [4096, 32],
"dtype": "float32",
"dist": "uniform",
"seed": 206,
"offset": 0.04,
"scale": 0.01,
"signed": false
}
},
"outputs": { "outputT": { "shape": [1024, 1024], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q4-512x128-idx512",
"preset": "smoke",
"vars": { "rows": 512, "cols": 128, "indexCount": 512, "bits": 4, "blockSize": 32 },
"attrs": { "bits": 4, "block_size": 32 },
"inputs": {
"dataT": { "shape": [512, 64], "dtype": "uint8", "dist": "q4pair", "seed": 207 },
"indicesT": { "shape": [512], "dtype": "uint32", "dist": "linearMod", "seed": 207, "step": 17, "mod": 512 },
"scalesT": {
"shape": [512, 4],
"dtype": "float32",
"dist": "uniform",
"seed": 208,
"offset": 0.04,
"scale": 0.01,
"signed": false
}
},
"outputs": { "outputT": { "shape": [512, 128], "dtype": "float32" } },
"bench": {
"primary": true,
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q4-zero-512x128-idx512",
"preset": "smoke",
"vars": { "rows": 512, "cols": 128, "indexCount": 512, "bits": 4, "blockSize": 32 },
"attrs": { "bits": 4, "block_size": 32 },
"inputs": {
"dataT": { "shape": [512, 64], "dtype": "uint8", "dist": "q4pair", "seed": 208 },
"indicesT": { "shape": [512], "dtype": "uint32", "dist": "linearMod", "seed": 208, "step": 17, "mod": 512 },
"scalesT": {
"shape": [512, 4],
"dtype": "float32",
"dist": "uniform",
"seed": 209,
"offset": 0.04,
"scale": 0.01,
"signed": false
},
"zeroPointsT": { "shape": [512, 2], "dtype": "uint8", "dist": "q4pair", "seed": 210 }
},
"outputs": { "outputT": { "shape": [512, 128], "dtype": "float32" } },
"bench": {
"primary": true,
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + dim(shapes.zeroPointsT, 1) + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q4-4096x1024-idx1024",
"preset": "smoke",
"vars": { "rows": 4096, "cols": 1024, "indexCount": 1024, "bits": 4, "blockSize": 32 },
"attrs": { "bits": 4, "block_size": 32 },
"inputs": {
"dataT": { "shape": [4096, 512], "dtype": "uint8", "dist": "q4pair", "seed": 211 },
"indicesT": { "shape": [1024], "dtype": "uint32", "dist": "linearMod", "seed": 211, "step": 37, "mod": 4096 },
"scalesT": {
"shape": [4096, 32],
"dtype": "float32",
"dist": "uniform",
"seed": 212,
"offset": 0.04,
"scale": 0.01,
"signed": false
}
},
"outputs": { "outputT": { "shape": [1024, 1024], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q4-zero-4096x1024-idx1024",
"preset": "smoke",
"vars": { "rows": 4096, "cols": 1024, "indexCount": 1024, "bits": 4, "blockSize": 32 },
"attrs": { "bits": 4, "block_size": 32 },
"inputs": {
"dataT": { "shape": [4096, 512], "dtype": "uint8", "dist": "q4pair", "seed": 212 },
"indicesT": { "shape": [1024], "dtype": "uint32", "dist": "linearMod", "seed": 212, "step": 37, "mod": 4096 },
"scalesT": {
"shape": [4096, 32],
"dtype": "float32",
"dist": "uniform",
"seed": 213,
"offset": 0.04,
"scale": 0.01,
"signed": false
},
"zeroPointsT": { "shape": [4096, 16], "dtype": "uint8", "dist": "q4pair", "seed": 214 }
},
"outputs": { "outputT": { "shape": [1024, 1024], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + dim(shapes.zeroPointsT, 1) + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q8-alignment-cliff-cols1023-scalar-fallback",
"preset": "smoke",
"vars": { "rows": 4096, "cols": 1023, "indexCount": 1024, "bits": 8, "blockSize": 32 },
"attrs": { "bits": 8, "block_size": 32 },
"inputs": {
"dataT": { "shape": [4096, 1023], "dtype": "uint8", "dist": "randint", "seed": 215, "min": 0, "max": 255 },
"indicesT": { "shape": [1024], "dtype": "uint32", "dist": "linearMod", "seed": 215, "step": 37, "mod": 4096 },
"scalesT": {
"shape": [4096, 32],
"dtype": "float32",
"dist": "uniform",
"seed": 216,
"offset": 0.04,
"scale": 0.01,
"signed": false
}
},
"outputs": { "outputT": { "shape": [1024, 1023], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q8-alignment-healthy-cols1024-vec4",
"preset": "smoke",
"vars": { "rows": 4096, "cols": 1024, "indexCount": 1024, "bits": 8, "blockSize": 32 },
"attrs": { "bits": 8, "block_size": 32 },
"inputs": {
"dataT": { "shape": [4096, 1024], "dtype": "uint8", "dist": "randint", "seed": 215, "min": 0, "max": 255 },
"indicesT": { "shape": [1024], "dtype": "uint32", "dist": "linearMod", "seed": 215, "step": 37, "mod": 4096 },
"scalesT": {
"shape": [4096, 32],
"dtype": "float32",
"dist": "uniform",
"seed": 216,
"offset": 0.04,
"scale": 0.01,
"signed": false
}
},
"outputs": { "outputT": { "shape": [1024, 1024], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q8-dispatch-cliff-vocab-idx8192-cols4096-2dfold",
"preset": "stress",
"provenance": {
"notes": "Stress-only dispatch/capacity case: widened uint8 GPU storage brings the declared footprint to 392 MiB."
},
"vars": { "rows": 16384, "cols": 4096, "indexCount": 8192, "bits": 8, "blockSize": 32 },
"attrs": { "bits": 8, "block_size": 32 },
"inputs": {
"dataT": { "shape": [16384, 4096], "dtype": "uint8", "dist": "randint", "seed": 217, "min": 0, "max": 255 },
"indicesT": { "shape": [8192], "dtype": "uint32", "dist": "linearMod", "seed": 217, "step": 37, "mod": 16384 },
"scalesT": {
"shape": [16384, 128],
"dtype": "float32",
"dist": "uniform",
"seed": 218,
"offset": 0.04,
"scale": 0.01,
"signed": false
}
},
"outputs": { "outputT": { "shape": [8192, 4096], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q8-dispatch-healthy-idx1024-cols4096-1d",
"preset": "stress",
"provenance": {
"notes": "Stress-only capacity sibling: widened uint8 GPU storage brings the declared footprint to 280 MiB."
},
"vars": { "rows": 16384, "cols": 4096, "indexCount": 1024, "bits": 8, "blockSize": 32 },
"attrs": { "bits": 8, "block_size": 32 },
"inputs": {
"dataT": { "shape": [16384, 4096], "dtype": "uint8", "dist": "randint", "seed": 217, "min": 0, "max": 255 },
"indicesT": { "shape": [1024], "dtype": "uint32", "dist": "linearMod", "seed": 217, "step": 37, "mod": 16384 },
"scalesT": {
"shape": [16384, 128],
"dtype": "float32",
"dist": "uniform",
"seed": 218,
"offset": 0.04,
"scale": 0.01,
"signed": false
}
},
"outputs": { "outputT": { "shape": [1024, 4096], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q4-llama-v32000-h4096-idx1",
"preset": "model",
"provenance": {
"notes": "Llama class defaults (vocab_size 32000, hidden_size 4096) with a 4-bit block-quantized embedding table, gathering the single token of a decode step."
},
"vars": { "rows": 32000, "cols": 4096, "indexCount": 1, "bits": 4, "blockSize": 128 },
"attrs": { "bits": 4, "block_size": 128 },
"inputs": {
"dataT": { "shape": [32000, 2048], "dtype": "uint8", "dist": "uniform", "seed": 6200, "min": 0, "max": 255 },
"indicesT": { "shape": [1], "dtype": "uint32", "dist": "randint", "seed": 6201, "min": 0, "max": 31999 },
"scalesT": {
"shape": [32000, 32],
"dtype": "float32",
"dist": "uniform",
"seed": 6202,
"min": 0.005,
"max": 0.05
}
},
"outputs": { "outputT": { "shape": [1, 4096], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q4-llama-v32000-h4096-idx512",
"preset": "model",
"provenance": { "notes": "Llama class defaults gathering a 512-token prefill chunk." },
"vars": { "rows": 32000, "cols": 4096, "indexCount": 512, "bits": 4, "blockSize": 128 },
"attrs": { "bits": 4, "block_size": 128 },
"inputs": {
"dataT": { "shape": [32000, 2048], "dtype": "uint8", "dist": "uniform", "seed": 6300, "min": 0, "max": 255 },
"indicesT": { "shape": [512], "dtype": "uint32", "dist": "randint", "seed": 6301, "min": 0, "max": 31999 },
"scalesT": {
"shape": [32000, 32],
"dtype": "float32",
"dist": "uniform",
"seed": 6302,
"min": 0.005,
"max": 0.05
}
},
"outputs": { "outputT": { "shape": [512, 4096], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q4-qwen3-v151936-h2048-idx512",
"preset": "model",
"provenance": {
"notes": "Qwen3-MoE class defaults (vocab_size 151936, hidden_size 2048) -- the large-vocabulary case, where the gather is scattered over a much taller table."
},
"vars": { "rows": 151936, "cols": 2048, "indexCount": 512, "bits": 4, "blockSize": 128 },
"attrs": { "bits": 4, "block_size": 128 },
"inputs": {
"dataT": { "shape": [151936, 1024], "dtype": "uint8", "dist": "uniform", "seed": 6400, "min": 0, "max": 255 },
"indicesT": { "shape": [512], "dtype": "uint32", "dist": "randint", "seed": 6401, "min": 0, "max": 151935 },
"scalesT": {
"shape": [151936, 16],
"dtype": "float32",
"dist": "uniform",
"seed": 6402,
"min": 0.005,
"max": 0.05
}
},
"outputs": { "outputT": { "shape": [512, 2048], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
},
{
"name": "gather-block-q8-whisper-v51865-h384-idx448",
"preset": "model",
"provenance": {
"notes": "Whisper class defaults (vocab_size 51865, d_model 384, max_target_positions 448) with an 8-bit table, gathering a full decoder context."
},
"vars": { "rows": 51865, "cols": 384, "indexCount": 448, "bits": 8, "blockSize": 32 },
"attrs": { "bits": 8, "block_size": 32 },
"inputs": {
"dataT": { "shape": [51865, 384], "dtype": "uint8", "dist": "uniform", "seed": 6500, "min": 0, "max": 255 },
"indicesT": { "shape": [448], "dtype": "uint32", "dist": "randint", "seed": 6501, "min": 0, "max": 51864 },
"scalesT": {
"shape": [51865, 12],
"dtype": "float32",
"dist": "uniform",
"seed": 6502,
"min": 0.005,
"max": 0.05
}
},
"outputs": { "outputT": { "shape": [448, 384], "dtype": "float32" } },
"bench": {
"metrics": [
{
"type": "bandwidth",
"value": "args.indexCount * (args.cols * args.bits / 8 + dim(shapes.scalesT, 1) * 4 + args.cols * 4 + 4)"
}
]
}
}
]
}