Spaces:
Running
Running
GitHub Actions commited on
Commit ·
e261d14
1
Parent(s): adbad62
sync from abhijitramesh/webgpu-bench@e5c33f18bc
Browse files- build/asyncify/build-info.json +1 -1
- build/jspi/build-info.json +1 -1
- js/run/controller.js +16 -1
build/asyncify/build-info.json
CHANGED
|
@@ -2,5 +2,5 @@
|
|
| 2 |
"llamaCppCommit": "f22c8021d213567942a3d0134692e70f02f28f3a",
|
| 3 |
"llamaCppDescribe": "b8981-3-gf22c8021d",
|
| 4 |
"dawnTag": "v20260317.182325",
|
| 5 |
-
"builtAt": "2026-05-
|
| 6 |
}
|
|
|
|
| 2 |
"llamaCppCommit": "f22c8021d213567942a3d0134692e70f02f28f3a",
|
| 3 |
"llamaCppDescribe": "b8981-3-gf22c8021d",
|
| 4 |
"dawnTag": "v20260317.182325",
|
| 5 |
+
"builtAt": "2026-05-07T20:52:31Z"
|
| 6 |
}
|
build/jspi/build-info.json
CHANGED
|
@@ -2,5 +2,5 @@
|
|
| 2 |
"llamaCppCommit": "f22c8021d213567942a3d0134692e70f02f28f3a",
|
| 3 |
"llamaCppDescribe": "b8981-3-gf22c8021d",
|
| 4 |
"dawnTag": "v20260317.182325",
|
| 5 |
-
"builtAt": "2026-05-
|
| 6 |
}
|
|
|
|
| 2 |
"llamaCppCommit": "f22c8021d213567942a3d0134692e70f02f28f3a",
|
| 3 |
"llamaCppDescribe": "b8981-3-gf22c8021d",
|
| 4 |
"dawnTag": "v20260317.182325",
|
| 5 |
+
"builtAt": "2026-05-07T20:49:44Z"
|
| 6 |
}
|
js/run/controller.js
CHANGED
|
@@ -1282,6 +1282,7 @@ async function onRunClick({ studyMode = false } = {}) {
|
|
| 1282 |
'Mobile device — sequential downloads (no parallel prefetch), ' +
|
| 1283 |
'forced eviction after each variant, ' +
|
| 1284 |
`${(MOBILE_YIELD_BETWEEN_RUNS_MS / 1000).toFixed(1)} s cooldown between runs ` +
|
|
|
|
| 1285 |
'so iOS can release WebGPU buffers before the next load.',
|
| 1286 |
);
|
| 1287 |
if (state.budget?.source) {
|
|
@@ -1370,8 +1371,22 @@ async function onRunClick({ studyMode = false } = {}) {
|
|
| 1370 |
const depthsToRun = (studyMode && baseDepth > 0) ? [0, baseDepth] : [baseDepth];
|
| 1371 |
|
| 1372 |
let sharedCpu = null;
|
| 1373 |
-
for (
|
| 1374 |
if (state.aborted) break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1375 |
const start = performance.now();
|
| 1376 |
const variantResult = await runVariantWithIterations(v, row, {
|
| 1377 |
nDepth,
|
|
|
|
| 1282 |
'Mobile device — sequential downloads (no parallel prefetch), ' +
|
| 1283 |
'forced eviction after each variant, ' +
|
| 1284 |
`${(MOBILE_YIELD_BETWEEN_RUNS_MS / 1000).toFixed(1)} s cooldown between runs ` +
|
| 1285 |
+
'(and between depth passes in study mode) ' +
|
| 1286 |
'so iOS can release WebGPU buffers before the next load.',
|
| 1287 |
);
|
| 1288 |
if (state.budget?.source) {
|
|
|
|
| 1371 |
const depthsToRun = (studyMode && baseDepth > 0) ? [0, baseDepth] : [baseDepth];
|
| 1372 |
|
| 1373 |
let sharedCpu = null;
|
| 1374 |
+
for (let di = 0; di < depthsToRun.length; di++) {
|
| 1375 |
if (state.aborted) break;
|
| 1376 |
+
// Inter-depth cooldown — mirrors the inter-variant sleep below. In
|
| 1377 |
+
// study mode each variant spawns a fresh worker for d=0 and another
|
| 1378 |
+
// for d=N back-to-back; without a gap, the second worker requests a
|
| 1379 |
+
// GPUDevice and a larger KV cache while iOS Metal is still draining
|
| 1380 |
+
// the just-terminated first worker. On long study queues this is
|
| 1381 |
+
// the seam where cumulative pressure tips the tab into Jetsam,
|
| 1382 |
+
// typically on the last (largest) variant.
|
| 1383 |
+
if (di > 0) {
|
| 1384 |
+
const cooldownMs = isMobileDevice() ? MOBILE_YIELD_BETWEEN_RUNS_MS : YIELD_BETWEEN_RUNS_MS;
|
| 1385 |
+
row.setStatus('cooldown', `${(cooldownMs / 1000).toFixed(1)}s before d=${depthsToRun[di]}`);
|
| 1386 |
+
await sleep(cooldownMs);
|
| 1387 |
+
if (state.aborted) break;
|
| 1388 |
+
}
|
| 1389 |
+
const nDepth = depthsToRun[di];
|
| 1390 |
const start = performance.now();
|
| 1391 |
const variantResult = await runVariantWithIterations(v, row, {
|
| 1392 |
nDepth,
|