Spaces:
Running
Running
GitHub Actions commited on
Commit ·
060e926
1
Parent(s): 2174987
sync from abhijitramesh/webgpu-bench@2bd3af6224
Browse files- data/combined.json +76 -7
- js/dataset.js +7 -0
- 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:
|
| 11 |
-
"resultCount":
|
| 12 |
-
"passCount":
|
| 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":
|
| 20 |
-
"latestAt": "2026-04-
|
| 21 |
},
|
| 22 |
{
|
| 23 |
"name": "abhijitramesh",
|
|
@@ -34,10 +35,11 @@
|
|
| 34 |
"platform": "darwin",
|
| 35 |
"arch": "arm",
|
| 36 |
"totalMemoryGB": 8,
|
| 37 |
-
"submittedAt": "2026-04-25T21:
|
| 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:
|
| 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',
|
|
|
|
|
|
|
| 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 |
-
|
| 155 |
-
|
|
|
|
|
|
|
| 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 |
}
|