File size: 3,916 Bytes
e394010 8f90598 e394010 8f90598 e394010 | 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 | {
"tunableSpace": { "WORKGROUP_SIZE": [64, 128, 256] },
"cases": [
{
"name": "expand-f32-1m",
"preset": "smoke",
"vars": { "dtype": "float32", "count": 1048576 },
"inputs": {
"input": { "shape": [1, 1024], "dtype": "float32", "dist": "normal", "seed": 860, "scale": 1 },
"shape": { "shape": [2], "dtype": "uint32", "data": { "kind": "values", "values": [1024, 1024] } }
},
"outputs": { "output": { "shape": [1024, 1024], "dtype": "float32" } },
"bench": {
"primary": true,
"metrics": [{ "type": "bandwidth", "value": "args.count * dtypeBytes(args.dtype) * 2" }]
}
},
{
"name": "expand-u32-bool-like-1m",
"preset": "edge",
"vars": { "dtype": "uint32", "count": 1048576 },
"inputs": {
"input": { "shape": [1, 1024], "dtype": "uint32", "dist": "linearMod", "mod": 2 },
"shape": { "shape": [2], "dtype": "uint32", "data": { "kind": "values", "values": [1024, 1024] } }
},
"outputs": { "output": { "shape": [1024, 1024], "dtype": "uint32" } },
"bench": { "metrics": [{ "type": "bandwidth", "value": "args.count * dtypeBytes(args.dtype) * 2" }] }
},
{
"name": "expand-f32-unaligned-row-1m",
"provenance": {
"notes": "A 1025-wide row: the output last extent is not a multiple of four, so one four-lane group per row crosses the row boundary. The vec4 arm resolves that group per lane and keeps the single-offset path for the rest, rather than sending the whole tensor to the scalar route."
},
"preset": "stress",
"vars": { "dtype": "float32", "count": 1049600 },
"inputs": {
"input": { "shape": [1, 1025], "dtype": "float32", "dist": "normal", "seed": 42, "scale": 1 },
"shape": { "shape": [2], "dtype": "uint32", "data": { "kind": "values", "values": [1024, 1025] } }
},
"outputs": { "output": { "shape": [1024, 1025], "dtype": "float32" } },
"bench": { "metrics": [{ "type": "bandwidth", "value": "args.count * dtypeBytes(args.dtype) * 2" }] }
},
{
"name": "expand-f32-mask-8x1x1x197-to-8x8x197x197-vit-pathology",
"preset": "stress",
"provenance": {
"notes": "Key-mask broadcast [B,1,1,S] -> [B,H,S,S] at ViT-B/16 token count: broadcast_vec4 needs the output last extent % 4 == 0, and 197 fails it, so the 2.5M-element broadcast runs the scalar broadcast route. Control: expand-f32-mask-8x1x1x200-to-8x8x200x200-control."
},
"vars": { "dtype": "float32" },
"inputs": {
"input": { "shape": [8, 1, 1, 197], "dtype": "float32", "dist": "normal", "seed": 43, "scale": 1 },
"shape": { "shape": [4], "dtype": "uint32", "data": { "kind": "values", "values": [8, 8, 197, 197] } }
},
"outputs": { "output": { "shape": [8, 8, 197, 197], "dtype": "float32", "dist": "empty" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "(numel(shapes.input) + numel(shapes.output)) * dtypeBytes(args.dtype)" }
]
}
},
{
"name": "expand-f32-mask-8x1x1x200-to-8x8x200x200-control",
"preset": "stress",
"provenance": {
"notes": "Nearest multiple-of-4 token count for expand-f32-mask-8x1x1x197-to-8x8x197x197-vit-pathology (3% more bytes) on the broadcast_vec4 route."
},
"vars": { "dtype": "float32" },
"inputs": {
"input": { "shape": [8, 1, 1, 200], "dtype": "float32", "dist": "normal", "seed": 44, "scale": 1 },
"shape": { "shape": [4], "dtype": "uint32", "data": { "kind": "values", "values": [8, 8, 200, 200] } }
},
"outputs": { "output": { "shape": [8, 8, 200, 200], "dtype": "float32", "dist": "empty" } },
"bench": {
"metrics": [
{ "type": "bandwidth", "value": "(numel(shapes.input) + numel(shapes.output)) * dtypeBytes(args.dtype)" }
]
}
}
]
}
|