File size: 7,567 Bytes
8bfadd9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
{
  "op": "ai.onnx.LogSoftmax",
  "tunableSpace": { "WORKGROUP_SIZE": [64, 128, 256] },
  "cases": [
    {
      "name": "attention_scores",
      "inputs": { "x": { "dtype": "float32", "shape": [32, 128] } },
      "outputs": { "y": { "dtype": "float32", "shape": [32, 128] } }
    },
    {
      "name": "logsoftmax-f32-1024x2048",
      "preset": "smoke",
      "vars": { "dtype": "float32", "rows": 1024, "cols": 2048 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [1024, 2048], "dtype": "float32", "dist": "normal", "seed": 211, "scale": 2 } },
      "outputs": { "y": { "shape": [1024, 2048], "dtype": "float32" } },
      "bench": {
        "primary": true,
        "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype) * 2" }]
      }
    },
    {
      "name": "logsoftmax-f32-16384x512",
      "preset": "stress",
      "vars": { "dtype": "float32", "rows": 16384, "cols": 512 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [16384, 512], "dtype": "float32", "dist": "normal", "seed": 212, "scale": 2 } },
      "outputs": { "y": { "shape": [16384, 512], "dtype": "float32" } },
      "bench": { "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype) * 2" }] }
    },
    {
      "name": "logsoftmax-logits-1x262144",
      "preset": "model",
      "vars": { "dtype": "float32", "rows": 1, "cols": 262144 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [1, 262144], "dtype": "float32", "dist": "normal", "seed": 213, "scale": 4 } },
      "outputs": { "y": { "shape": [1, 262144], "dtype": "float32" } },
      "bench": { "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype) * 2" }] }
    },
    {
      "name": "logsoftmax-f32-strided-axis1-64x1024x64",
      "preset": "stress",
      "vars": { "dtype": "float32", "rows": 64, "mid": 1024, "inner": 64 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [64, 1024, 64], "dtype": "float32", "dist": "normal", "seed": 311, "scale": 2 } },
      "outputs": { "y": { "shape": [64, 1024, 64], "dtype": "float32" } },
      "bench": {
        "metrics": [{ "type": "bandwidth", "value": "args.rows * args.mid * args.inner * dtypeBytes(args.dtype) * 2" }]
      }
    },
    {
      "name": "logsoftmax-f16-1024x2048-axis1",
      "preset": "stress",
      "vars": { "dtype": "float16", "rows": 1024, "cols": 2048 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [1024, 2048], "dtype": "float16", "dist": "normal", "seed": 312, "scale": 2 } },
      "outputs": { "y": { "shape": [1024, 2048], "dtype": "float16" } },
      "bench": { "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype) * 2" }] }
    },
    {
      "name": "logsoftmax-f32-align-cliff-1024x2046",
      "preset": "stress",
      "vars": { "dtype": "float32", "rows": 1024, "cols": 2046 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [1024, 2046], "dtype": "float32", "dist": "normal", "seed": 313, "scale": 2 } },
      "outputs": { "y": { "shape": [1024, 2046], "dtype": "float32" } },
      "bench": { "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype) * 2" }] }
    },
    {
      "name": "logsoftmax-f32-tallwide-70000x2048",
      "preset": "model",
      "vars": { "dtype": "float32", "rows": 70000, "cols": 2048 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [70000, 2048], "dtype": "float32", "dist": "normal", "seed": 314, "scale": 2 } },
      "outputs": { "y": { "shape": [70000, 2048], "dtype": "float32" } },
      "bench": { "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype) * 2" }] }
    },
    {
      "name": "logsoftmax-f32-nosg-3pass-occupancy-131072x32",
      "preset": "stress",
      "vars": { "dtype": "float32", "rows": 131072, "cols": 32 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [131072, 32], "dtype": "float32", "dist": "normal", "seed": 411, "scale": 2 } },
      "outputs": { "y": { "shape": [131072, 32], "dtype": "float32" } },
      "bench": { "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype) * 2" }] }
    },
    {
      "name": "logsoftmax-f32-strided-axis1-64x2048x130-packed4-control",
      "preset": "stress",
      "provenance": {
        "source": "strided-axis selector crossover",
        "notes": "Below-crossover control for the large-inner tail pathology. At 8,320 independent strided rows the cooperative packed-4 reducer still beats the serial-lane capacity path."
      },
      "vars": { "dtype": "float32", "outer": 64, "axisDim": 2048, "inner": 130 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [64, 2048, 130], "dtype": "float32", "dist": "normal", "seed": 414, "scale": 2 } },
      "outputs": { "y": { "shape": [64, 2048, 130], "dtype": "float32", "dist": "empty" } },
      "bench": {
        "metrics": [
          { "type": "bandwidth", "value": "args.outer * args.axisDim * args.inner * dtypeBytes(args.dtype) * 2" }
        ]
      }
    },
    {
      "name": "logsoftmax-f32-strided-axis1-96x2048x130-crossover",
      "preset": "stress",
      "provenance": {
        "source": "strided-axis selector crossover",
        "notes": "Above-crossover probe for the large-inner tail pathology. At 12,480 independent strided rows the serial-lane capacity path overtakes the cooperative packed-4 reducer."
      },
      "vars": { "dtype": "float32", "outer": 96, "axisDim": 2048, "inner": 130 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [96, 2048, 130], "dtype": "float32", "dist": "normal", "seed": 413, "scale": 2 } },
      "outputs": { "y": { "shape": [96, 2048, 130], "dtype": "float32", "dist": "empty" } },
      "bench": {
        "metrics": [
          { "type": "bandwidth", "value": "args.outer * args.axisDim * args.inner * dtypeBytes(args.dtype) * 2" }
        ]
      }
    },
    {
      "name": "logsoftmax-f32-strided-axis1-120x2048x130-large-inner",
      "preset": "stress",
      "provenance": {
        "source": "authored for variant coverage",
        "notes": "Inner=130 exercises the two-element tail of the scalar-aligned packed-4 online reducer while sharing one workgroup across four adjacent rows."
      },
      "vars": { "dtype": "float32", "outer": 120, "axisDim": 2048, "inner": 130 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [120, 2048, 130], "dtype": "float32", "dist": "normal", "seed": 412, "scale": 2 } },
      "outputs": { "y": { "shape": [120, 2048, 130], "dtype": "float32", "dist": "empty" } },
      "bench": {
        "metrics": [
          { "type": "bandwidth", "value": "args.outer * args.axisDim * args.inner * dtypeBytes(args.dtype) * 2" }
        ]
      }
    },
    {
      "name": "logsoftmax-f32-8192x512-midwidth",
      "provenance": {
        "notes": "Covers the 512-column midpoint between the 128- and 2048-column cases and probes the width term in online_wg_vec4's selector."
      },
      "preset": "smoke",
      "vars": { "dtype": "float32", "rows": 8192, "cols": 512 },
      "attrs": { "axis": 1 },
      "inputs": { "x": { "shape": [8192, 512], "dtype": "float32", "dist": "normal", "seed": 215, "scale": 2 } },
      "outputs": { "y": { "shape": [8192, 512], "dtype": "float32" } },
      "bench": { "metrics": [{ "type": "bandwidth", "value": "args.rows * args.cols * dtypeBytes(args.dtype) * 2" }] }
    }
  ]
}