mirror of
https://github.com/elder-plinius/OBLITERATUS.git
synced 2026-08-29 22:20:36 +02:00
feat: publish GPU model lifecycle events
This commit is contained in:
@@ -50,9 +50,38 @@ the requested devices and VRAM before OBLITERATUS initializes CUDA, maintain the
|
||||
lease for the entire process, and release it after CUDA allocations terminate.
|
||||
|
||||
Schedulers that drain another inference service commonly distinguish `acquire`
|
||||
from `ready`. OBLITERATUS does not yet emit a portable post-model-load readiness
|
||||
signal. Such deployments must not mark a lease ready immediately after process
|
||||
start; add and test an application readiness hook first.
|
||||
from `ready`. Set `OBLITERATUS_GPU_LIFECYCLE_DIR` to an existing runtime
|
||||
directory writable by the OBLITERATUS service account to enable the local
|
||||
lifecycle protocol. When it is unset, publication is a no-op and conservative
|
||||
wrappers should retain their lease for the full process lifetime.
|
||||
|
||||
The application atomically replaces `current.json` and appends ordered JSON
|
||||
objects to `events.jsonl`. Schema version 1 publishes `loading`, `resize`,
|
||||
`ready`, `heartbeat`, and `release`, with run/model identity, a monotonic
|
||||
sequence, process ID, timestamp, and measured allocator bytes. Readiness occurs
|
||||
after model allocation, never at UI startup. Set
|
||||
`OBLITERATUS_GPU_HEARTBEAT_SECONDS` to change the default 15-second heartbeat.
|
||||
|
||||
A minimal systemd setup lets the supervisor create the local boundary without
|
||||
giving the application scheduling authority:
|
||||
|
||||
```ini
|
||||
[Service]
|
||||
User=obliteratus
|
||||
Group=obliteratus-gpu
|
||||
RuntimeDirectory=obliteratus-gpu-lifecycle
|
||||
RuntimeDirectoryMode=0770
|
||||
Environment=OBLITERATUS_GPU_LIFECYCLE_DIR=/run/obliteratus-gpu-lifecycle
|
||||
Environment=OBLITERATUS_GPU_HEARTBEAT_SECONDS=15
|
||||
ExecStart=/srv/obliteratus/current/.venv/bin/obliteratus ui --host 127.0.0.1
|
||||
```
|
||||
|
||||
The host supervisor should acquire capacity before starting this unit, consume
|
||||
the runtime files as untrusted structured data, deduplicate by `event_id`, and
|
||||
release or resize its reservation only after the corresponding application
|
||||
event. It should treat a stale heartbeat or process exit as a failed lease and
|
||||
must not pass its control socket, administrative API, or scheduling permissions
|
||||
to the application account.
|
||||
|
||||
The requested VRAM must include weights, activation collection, verification,
|
||||
checkpoint snapshots, CUDA context, and a safety margin. Multi-GPU sharding is
|
||||
|
||||
Reference in New Issue
Block a user