GitHub Actions commited on
Commit
060e926
·
1 Parent(s): 2174987

sync from abhijitramesh/webgpu-bench@2bd3af6224

Browse files
Files changed (3) hide show
  1. data/combined.json +76 -7
  2. js/dataset.js +7 -0
  3. js/tables.js +12 -4
data/combined.json CHANGED
@@ -7,17 +7,18 @@
7
  "platform": "darwin",
8
  "arch": "arm",
9
  "totalMemoryGB": 4,
10
- "submittedAt": "2026-04-25T21:06:46.755Z",
11
- "resultCount": 6,
12
- "passCount": 6,
13
  "llamaCppCommit": null,
 
14
  "submitters": [
15
  {
16
  "name": "abhijitramesh",
17
  "hubId": "5fe0b7319126717e4c356efb",
18
  "avatarUrl": "https://cdn-avatars.huggingface.co/v1/production/uploads/5fe0b7319126717e4c356efb/iAaiUJpDmv1nBN3_ZNGVU.jpeg",
19
- "count": 2,
20
- "latestAt": "2026-04-25T19:43:30.850Z"
21
  },
22
  {
23
  "name": "abhijitramesh",
@@ -34,10 +35,11 @@
34
  "platform": "darwin",
35
  "arch": "arm",
36
  "totalMemoryGB": 8,
37
- "submittedAt": "2026-04-25T21:06:46.755Z",
38
  "resultCount": 2,
39
  "passCount": 2,
40
  "llamaCppCommit": null,
 
41
  "submitters": [
42
  {
43
  "name": "abhijitramesh",
@@ -58,7 +60,7 @@
58
  "browsers": [
59
  "chromium-147"
60
  ],
61
- "generatedAt": "2026-04-25T21:06:46.804Z"
62
  },
63
  "results": [
64
  {
@@ -84,7 +86,11 @@
84
  "t_eval_ms": 3125.7,
85
  "consistency_rate": 0.9688,
86
  "consistency_first_disagree": 43,
 
 
87
  "llamaCppCommit": null,
 
 
88
  "submittedBy": null,
89
  "iterations": 5
90
  },
@@ -111,7 +117,11 @@
111
  "t_eval_ms": 2820.9,
112
  "consistency_rate": 1,
113
  "consistency_first_disagree": -1,
 
 
114
  "llamaCppCommit": null,
 
 
115
  "submittedBy": null,
116
  "iterations": 5
117
  },
@@ -138,7 +148,11 @@
138
  "t_eval_ms": 3016.4,
139
  "consistency_rate": 0.9922,
140
  "consistency_first_disagree": 109,
 
 
141
  "llamaCppCommit": null,
 
 
142
  "submittedBy": null,
143
  "iterations": 5
144
  },
@@ -165,7 +179,11 @@
165
  "t_eval_ms": 4552.3,
166
  "consistency_rate": 0.9922,
167
  "consistency_first_disagree": 33,
 
 
168
  "llamaCppCommit": null,
 
 
169
  "submittedBy": {
170
  "name": "abhijitramesh",
171
  "hubId": null,
@@ -196,7 +214,11 @@
196
  "t_eval_ms": 1194.8,
197
  "consistency_rate": 0.9688,
198
  "consistency_first_disagree": 23,
 
 
199
  "llamaCppCommit": null,
 
 
200
  "submittedBy": {
201
  "name": "abhijitramesh",
202
  "hubId": "5fe0b7319126717e4c356efb",
@@ -227,7 +249,46 @@
227
  "t_eval_ms": 1194.8,
228
  "consistency_rate": 0.9688,
229
  "consistency_first_disagree": 23,
 
 
230
  "llamaCppCommit": null,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
231
  "submittedBy": {
232
  "name": "abhijitramesh",
233
  "hubId": "5fe0b7319126717e4c356efb",
@@ -258,7 +319,11 @@
258
  "t_eval_ms": 2188.4,
259
  "consistency_rate": 0.9922,
260
  "consistency_first_disagree": 100,
 
 
261
  "llamaCppCommit": null,
 
 
262
  "submittedBy": null,
263
  "iterations": 5
264
  },
@@ -285,7 +350,11 @@
285
  "t_eval_ms": 67368.9,
286
  "consistency_rate": 1,
287
  "consistency_first_disagree": -1,
 
 
288
  "llamaCppCommit": null,
 
 
289
  "submittedBy": {
290
  "name": "abhijitramesh",
291
  "hubId": "5fe0b7319126717e4c356efb",
 
7
  "platform": "darwin",
8
  "arch": "arm",
9
  "totalMemoryGB": 4,
10
+ "submittedAt": "2026-04-25T21:31:12.111Z",
11
+ "resultCount": 7,
12
+ "passCount": 7,
13
  "llamaCppCommit": null,
14
+ "llamaCppDescribe": null,
15
  "submitters": [
16
  {
17
  "name": "abhijitramesh",
18
  "hubId": "5fe0b7319126717e4c356efb",
19
  "avatarUrl": "https://cdn-avatars.huggingface.co/v1/production/uploads/5fe0b7319126717e4c356efb/iAaiUJpDmv1nBN3_ZNGVU.jpeg",
20
+ "count": 3,
21
+ "latestAt": "2026-04-25T21:15:00.076Z"
22
  },
23
  {
24
  "name": "abhijitramesh",
 
35
  "platform": "darwin",
36
  "arch": "arm",
37
  "totalMemoryGB": 8,
38
+ "submittedAt": "2026-04-25T21:31:12.111Z",
39
  "resultCount": 2,
40
  "passCount": 2,
41
  "llamaCppCommit": null,
42
+ "llamaCppDescribe": null,
43
  "submitters": [
44
  {
45
  "name": "abhijitramesh",
 
60
  "browsers": [
61
  "chromium-147"
62
  ],
63
+ "generatedAt": "2026-04-25T21:31:12.161Z"
64
  },
65
  "results": [
66
  {
 
86
  "t_eval_ms": 3125.7,
87
  "consistency_rate": 0.9688,
88
  "consistency_first_disagree": 43,
89
+ "cpu_baseline_prefill_tok_s": 3.93,
90
+ "cpu_baseline_decode_tok_s": 3.55,
91
  "llamaCppCommit": null,
92
+ "llamaCppDescribe": null,
93
+ "dawnTag": null,
94
  "submittedBy": null,
95
  "iterations": 5
96
  },
 
117
  "t_eval_ms": 2820.9,
118
  "consistency_rate": 1,
119
  "consistency_first_disagree": -1,
120
+ "cpu_baseline_prefill_tok_s": 9.84,
121
+ "cpu_baseline_decode_tok_s": 6.95,
122
  "llamaCppCommit": null,
123
+ "llamaCppDescribe": null,
124
+ "dawnTag": null,
125
  "submittedBy": null,
126
  "iterations": 5
127
  },
 
148
  "t_eval_ms": 3016.4,
149
  "consistency_rate": 0.9922,
150
  "consistency_first_disagree": 109,
151
+ "cpu_baseline_prefill_tok_s": 8.98,
152
+ "cpu_baseline_decode_tok_s": 6.61,
153
  "llamaCppCommit": null,
154
+ "llamaCppDescribe": null,
155
+ "dawnTag": null,
156
  "submittedBy": null,
157
  "iterations": 5
158
  },
 
179
  "t_eval_ms": 4552.3,
180
  "consistency_rate": 0.9922,
181
  "consistency_first_disagree": 33,
182
+ "cpu_baseline_prefill_tok_s": 2.6,
183
+ "cpu_baseline_decode_tok_s": 2.21,
184
  "llamaCppCommit": null,
185
+ "llamaCppDescribe": null,
186
+ "dawnTag": null,
187
  "submittedBy": {
188
  "name": "abhijitramesh",
189
  "hubId": null,
 
214
  "t_eval_ms": 1194.8,
215
  "consistency_rate": 0.9688,
216
  "consistency_first_disagree": 23,
217
+ "cpu_baseline_prefill_tok_s": 23.36,
218
+ "cpu_baseline_decode_tok_s": 11.69,
219
  "llamaCppCommit": null,
220
+ "llamaCppDescribe": null,
221
+ "dawnTag": null,
222
  "submittedBy": {
223
  "name": "abhijitramesh",
224
  "hubId": "5fe0b7319126717e4c356efb",
 
249
  "t_eval_ms": 1194.8,
250
  "consistency_rate": 0.9688,
251
  "consistency_first_disagree": 23,
252
+ "cpu_baseline_prefill_tok_s": 23.36,
253
+ "cpu_baseline_decode_tok_s": 11.69,
254
  "llamaCppCommit": null,
255
+ "llamaCppDescribe": null,
256
+ "dawnTag": null,
257
+ "submittedBy": {
258
+ "name": "abhijitramesh",
259
+ "hubId": "5fe0b7319126717e4c356efb",
260
+ "avatarUrl": "https://cdn-avatars.huggingface.co/v1/production/uploads/5fe0b7319126717e4c356efb/iAaiUJpDmv1nBN3_ZNGVU.jpeg"
261
+ },
262
+ "iterations": 5
263
+ },
264
+ {
265
+ "machineSlug": "apple-metal-3-4gb-darwin",
266
+ "timestamp": "2026-04-25T21:15:00.076Z",
267
+ "browser": "chromium-147",
268
+ "model": "Qwen3-0.6B",
269
+ "repo": "unsloth/Qwen3-0.6B-GGUF",
270
+ "variant": "Q4_1",
271
+ "filename": "Qwen3-0.6B-Q4_1.gguf",
272
+ "sizeMB": 390.14,
273
+ "status": "done",
274
+ "error": null,
275
+ "buildType": "jspi",
276
+ "webgpuAvailable": true,
277
+ "nGpuLayers": 999,
278
+ "wallTimeMs": 77587.89999997616,
279
+ "prefill_tok_s": 157.43,
280
+ "decode_tok_s": 73.45,
281
+ "n_p_eval": 30,
282
+ "t_p_eval_ms": 221.3,
283
+ "n_eval": 127,
284
+ "t_eval_ms": 1728.4,
285
+ "consistency_rate": 0.9688,
286
+ "consistency_first_disagree": 32,
287
+ "cpu_baseline_prefill_tok_s": 6.21,
288
+ "cpu_baseline_decode_tok_s": 5.23,
289
+ "llamaCppCommit": null,
290
+ "llamaCppDescribe": null,
291
+ "dawnTag": null,
292
  "submittedBy": {
293
  "name": "abhijitramesh",
294
  "hubId": "5fe0b7319126717e4c356efb",
 
319
  "t_eval_ms": 2188.4,
320
  "consistency_rate": 0.9922,
321
  "consistency_first_disagree": 100,
322
+ "cpu_baseline_prefill_tok_s": 3.04,
323
+ "cpu_baseline_decode_tok_s": 2.62,
324
  "llamaCppCommit": null,
325
+ "llamaCppDescribe": null,
326
+ "dawnTag": null,
327
  "submittedBy": null,
328
  "iterations": 5
329
  },
 
350
  "t_eval_ms": 67368.9,
351
  "consistency_rate": 1,
352
  "consistency_first_disagree": -1,
353
+ "cpu_baseline_prefill_tok_s": 3.14,
354
+ "cpu_baseline_decode_tok_s": 2.24,
355
  "llamaCppCommit": null,
356
+ "llamaCppDescribe": null,
357
+ "dawnTag": null,
358
  "submittedBy": {
359
  "name": "abhijitramesh",
360
  "hubId": "5fe0b7319126717e4c356efb",
js/dataset.js CHANGED
@@ -96,6 +96,7 @@ export async function fetchRecentRuns(datasetRepo, sinceISO) {
96
  resultCount: 0,
97
  passCount: 0,
98
  llamaCppCommit: r.llamaCppCommit ?? null,
 
99
  });
100
  }
101
  }
@@ -131,7 +132,13 @@ function flattenForDashboard(r, slug) {
131
  t_eval_ms: r.metrics?.t_eval_ms ?? null,
132
  consistency_rate: r.consistency?.agreement_rate ?? null,
133
  consistency_first_disagree: r.consistency?.first_disagreement ?? null,
 
 
 
 
134
  llamaCppCommit: r.llamaCppCommit ?? null,
 
 
135
  submittedBy: r.submittedBy ?? null,
136
  iterations: r.metrics?.iterations ?? null,
137
  };
 
96
  resultCount: 0,
97
  passCount: 0,
98
  llamaCppCommit: r.llamaCppCommit ?? null,
99
+ llamaCppDescribe: r.llamaCppDescribe ?? null,
100
  });
101
  }
102
  }
 
132
  t_eval_ms: r.metrics?.t_eval_ms ?? null,
133
  consistency_rate: r.consistency?.agreement_rate ?? null,
134
  consistency_first_disagree: r.consistency?.first_disagreement ?? null,
135
+ // Keep these in sync with scripts/build-site.js — the dashboard merges
136
+ // baseline (combined.json) and live (here) records into one table.
137
+ cpu_baseline_prefill_tok_s: r.cpu_baseline?.prefill_tok_s ?? null,
138
+ cpu_baseline_decode_tok_s: r.cpu_baseline?.decode_tok_s ?? null,
139
  llamaCppCommit: r.llamaCppCommit ?? null,
140
+ llamaCppDescribe: r.llamaCppDescribe ?? null,
141
+ dawnTag: r.dawnTag ?? null,
142
  submittedBy: r.submittedBy ?? null,
143
  iterations: r.metrics?.iterations ?? null,
144
  };
js/tables.js CHANGED
@@ -4,7 +4,9 @@ let lastResults = [];
4
  let sortState = { key: null, dir: 'asc' };
5
 
6
  const NUM_KEYS = new Set([
7
- 'sizeMB', 'decode_tok_s', 'prefill_tok_s', 'n_eval', 't_eval_ms',
 
 
8
  'n_p_eval', 't_p_eval_ms', 'wallTimeMs', 'consistency_rate', 'nGpuLayers',
9
  ]);
10
 
@@ -75,6 +77,8 @@ export function renderResultsTable(results) {
75
  { key: 'webgpuAvailable', label: 'WebGPU', priority: 3 },
76
  { key: 'decode_tok_s', label: 'Decode tok/s', priority: 1 },
77
  { key: 'prefill_tok_s', label: 'Prefill tok/s', priority: 3 },
 
 
78
  { key: 'n_eval', label: 'n_eval', priority: 3 },
79
  { key: 't_eval_ms', label: 't_eval (ms)', priority: 3 },
80
  { key: 'n_p_eval', label: 'n_p_eval', priority: 3 },
@@ -127,6 +131,8 @@ export function renderResultsTable(results) {
127
  break;
128
  case 'decode_tok_s':
129
  case 'prefill_tok_s':
 
 
130
  html += `<span class="mono">${formatTokS(r[col.key])}</span>`;
131
  break;
132
  case 't_eval_ms':
@@ -151,8 +157,10 @@ export function renderResultsTable(results) {
151
  break;
152
  case 'llamaCppCommit':
153
  if (r.llamaCppCommit) {
154
- const short = r.llamaCppCommit.slice(0, 10);
155
- html += `<a class="mono" href="https://github.com/ggml-org/llama.cpp/commit/${r.llamaCppCommit}" target="_blank" rel="noopener">${short}</a>`;
 
 
156
  } else {
157
  html += '<span class="text-muted">\u2014</span>';
158
  }
@@ -259,7 +267,7 @@ export function renderMachineInfo(machines) {
259
  <div class="spec-row"><span class="spec-label">Results</span><span class="spec-value">${m.resultCount}</span></div>
260
  <div class="spec-row"><span class="spec-label">Passed</span><span class="spec-value text-success">${m.passCount}</span></div>
261
  <div class="spec-row"><span class="spec-label">Failed</span><span class="spec-value text-error">${failCount}</span></div>
262
- ${m.llamaCppCommit ? `<div class="spec-row"><span class="spec-label">llama.cpp</span><span class="spec-value"><a href="https://github.com/ggml-org/llama.cpp/commit/${m.llamaCppCommit}" target="_blank" rel="noopener">${m.llamaCppCommit.slice(0, 10)}</a></span></div>` : ''}
263
  </div>
264
  </div>`;
265
  }
 
4
  let sortState = { key: null, dir: 'asc' };
5
 
6
  const NUM_KEYS = new Set([
7
+ 'sizeMB', 'decode_tok_s', 'prefill_tok_s',
8
+ 'cpu_baseline_decode_tok_s', 'cpu_baseline_prefill_tok_s',
9
+ 'n_eval', 't_eval_ms',
10
  'n_p_eval', 't_p_eval_ms', 'wallTimeMs', 'consistency_rate', 'nGpuLayers',
11
  ]);
12
 
 
77
  { key: 'webgpuAvailable', label: 'WebGPU', priority: 3 },
78
  { key: 'decode_tok_s', label: 'Decode tok/s', priority: 1 },
79
  { key: 'prefill_tok_s', label: 'Prefill tok/s', priority: 3 },
80
+ { key: 'cpu_baseline_decode_tok_s', label: 'CPU decode tok/s', priority: 2 },
81
+ { key: 'cpu_baseline_prefill_tok_s', label: 'CPU prefill tok/s', priority: 3 },
82
  { key: 'n_eval', label: 'n_eval', priority: 3 },
83
  { key: 't_eval_ms', label: 't_eval (ms)', priority: 3 },
84
  { key: 'n_p_eval', label: 'n_p_eval', priority: 3 },
 
131
  break;
132
  case 'decode_tok_s':
133
  case 'prefill_tok_s':
134
+ case 'cpu_baseline_decode_tok_s':
135
+ case 'cpu_baseline_prefill_tok_s':
136
  html += `<span class="mono">${formatTokS(r[col.key])}</span>`;
137
  break;
138
  case 't_eval_ms':
 
157
  break;
158
  case 'llamaCppCommit':
159
  if (r.llamaCppCommit) {
160
+ // Prefer the human-readable git describe when present (e.g.
161
+ // "b8708-12-gd12cc3d1c"); fall back to a short commit hash.
162
+ const label = r.llamaCppDescribe || r.llamaCppCommit.slice(0, 10);
163
+ html += `<a class="mono" href="https://github.com/ggml-org/llama.cpp/commit/${r.llamaCppCommit}" target="_blank" rel="noopener">${escapeHtml(label)}</a>`;
164
  } else {
165
  html += '<span class="text-muted">\u2014</span>';
166
  }
 
267
  <div class="spec-row"><span class="spec-label">Results</span><span class="spec-value">${m.resultCount}</span></div>
268
  <div class="spec-row"><span class="spec-label">Passed</span><span class="spec-value text-success">${m.passCount}</span></div>
269
  <div class="spec-row"><span class="spec-label">Failed</span><span class="spec-value text-error">${failCount}</span></div>
270
+ ${m.llamaCppCommit ? `<div class="spec-row"><span class="spec-label">llama.cpp</span><span class="spec-value"><a href="https://github.com/ggml-org/llama.cpp/commit/${m.llamaCppCommit}" target="_blank" rel="noopener">${escapeHtml(m.llamaCppDescribe || m.llamaCppCommit.slice(0, 10))}</a></span></div>` : ''}
271
  </div>
272
  </div>`;
273
  }