From 0c4613466659fa6291442f9a8edefe584dc9262c Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Wed, 30 Sep 2026 20:57:30 -0400 Subject: STATE-CURRENT: real-release rc=0 chain reached; execution backend is the frontier - the per-push 8 s stall was pump bookkeeping (release-seen keyed on the unchanged tracker-semaphore VA; rewind replays returning to the CE grace path) - fixed; real-release init now completes in ~1 min - the content rescue now parses the real method encoding, so NON_INC-headed pushes validate and their releases land - the queued launch's module image reaches the emulated vidmem; execution on real hardware (docs/03-architecture/08 backend) is the next project --- STATE-CURRENT.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/STATE-CURRENT.md b/STATE-CURRENT.md index 3aae1ef..ee6cb5a 100644 --- a/STATE-CURRENT.md +++ b/STATE-CURRENT.md @@ -30,7 +30,7 @@ meant to execute on the physical GPU. | CUDA userspace: `cuInit`, `cuDeviceGetCount`, `cuDeviceGet` | ✅ | | `cuCtxCreate` returns | ✅ (the whole smoke test now completes) | | `cuMemAlloc` + `cuMemcpy` roundtrip (`ALL OK` in the smoke test) | ✅ payload roundtrip verified 64/64 in the guest | -| Full `nvidia-smi` output / kernel launch | 🟡 the static runtime now initializes (`rc=0`) and queues a kernel launch; execution awaits the backend | +| Full `nvidia-smi` output / kernel launch | 🟡 the static runtime now initializes end-to-end with **real releases** (`cudaGetDeviceCount`/`cudaSetDevice`/3×`cudaMalloc`/2×`cudaMemcpyHtoD`/`kernel launch`/`cudaGetLastError` all `rc=0`) and queues a kernel launch; execution awaits the backend | | CUDA kernel execution (`vectorAdd`) | ❌ not started (forwarding layer absent) | | Graphics (3D), video | ❌ | | Faults, multi-version, Windows, migration, multi-tenancy, performance | ❌ | @@ -78,12 +78,18 @@ chain succeeds. clock-domain probe inside libcuda (two device attributes) whose three legacy clock controls were answered with zeros; they are now populated with exactly the fields the helper checks. -- **Caveat**: the rc=0 init chain above was obtained in fast-release mode; - under real releases the runtime-init path still needs the pin/translation - work (the smoke-test baseline is already correct under real releases). -- Active work: (1) real-release delivery for the runtime init (pin/translation - work); (2) decode the queued compute-channel pushes into real submissions on - the physical GPU (the execution backend); then the synchronize/DtoH verify. +- **Real-release mode now reaches the same rc=0 chain**: the earlier + per-push 8 s stall was two pump bookkeeping bugs (release detection keyed on + an unchanged semaphore VA; rewind replays re-entering the CE grace path) - + both fixed, and the runtime init completes in ~1 min with real releases. + The content rescue also learned the real method encoding (NON_INC/IMMD/ + ONE_INC/END_PB headers). +- Active work: (1) rerun the driver-API smoke test (cdt2) on the current + module to confirm no regression, and confirm the two known gaps (GMMU walks + for runtime VAs, staging-VA resolution) are non-blocking; (2) the execution + backend: decode the queued compute-channel pushes into real submissions on + the physical GPU; then the synchronize/DtoH verify. The host is headless, + so a controlled device-ownership bring-up is feasible. Work resumed with no-watcher, real-release runtime cycles: a new commit delivers the UVM tracking releases without host-side pins, and one real-release, no-watcher run has reached `cudaGetDeviceCount` success; the -- cgit v1.2.3