File size: 1,328 Bytes
c6b42bb
 
 
bb1c552
 
c6b42bb
 
 
 
a59346c
736d0dd
c6b42bb
17135b7
c6b42bb
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Phase 4 GPU session bootstrap. The session logic lives in kernels/phase4_session.py at a pinned
# revision; this file only fixes what save_notebook cannot pass -- environment -- and then hands over.
# Edit QUOTA_LEFT_HOURS (from a live get_accelerator_quota read) before submitting; everything else the
# launcher already defaults correctly (12,300 tok/s from D-018, 6.9 h ceiling, 8 GB disk floor, and
# it passes --no-grad-ckpt with a 127-step push cadence).
import hashlib, os, runpy, subprocess, sys

os.chdir("/kaggle/working")
sys.path.insert(0, "/kaggle/working")
REV = "c237b478076f68da43dabd3403daa5639286899e"
LAUNCHER_SHA = "5fb14bc3597d999a21772a66b6f409f01f722019dc78da313feddb2f9c769c48"
os.environ["OUNCE100M_REV"] = REV
os.environ["QUOTA_LEFT_HOURS"] = "7.0"       # live read 2026-09-21T08:29Z: 82,755.0 s of 108,000 used

url = f"https://huggingface.co/Cion-lab/ounce100m-code/resolve/{REV}/kernels/phase4_session.py"
rc = subprocess.run(["curl", "-sfL", url, "-o", "phase4_session.py"]).returncode
assert rc == 0, "could not fetch the launcher"
got = hashlib.sha256(open("phase4_session.py", "rb").read()).hexdigest()
assert got == LAUNCHER_SHA, f"launcher sha {got[:16]} != {LAUNCHER_SHA[:16]}"
print("BOOTSTRAP_OK", REV[:12], got[:12], flush=True)
runpy.run_path("phase4_session.py", run_name="__main__")