Pixal3D PR-2: make the artpipe VRAM admission gate tunable #835

Open
opened 2026-07-25 00:53:37 +00:00 by spikerj · 1 comment
Owner

Part of #833.

dispatcher.py hardcodes _VRAM_OVERHEAD_FACTOR = 1.4 and _VRAM_MAX_UTILIZATION = 0.85. At those values 18000 × 1.4 = 25200 exceeds the 4090's total 24,576 MB — Pixal3D can never be admitted on the :9100 path even at 100% utilization. The overhead factor has to move, not just the ceiling.

Proposal: move both constants to config.py with env overrides (ARTPIPE_VRAM_OVERHEAD_FACTOR, ARTPIPE_VRAM_MAX_UTILIZATION), defaults unchanged, and set 1.15 / 0.95 on the 4090 only. That admits Pixal3D (18000 × 1.15 = 20700 < 24576 × 0.95 = 23347) without changing admission behaviour on the Macs or SERVER.

Scope note: this gate governs only the workstation :9100 path (Blender addon + batch orchestrator). Production sizing is ArtPipe:StageSettings:modeling:VramMB against the GpuCoordinator lease — see PR-5.

Part of #833. `dispatcher.py` hardcodes `_VRAM_OVERHEAD_FACTOR = 1.4` and `_VRAM_MAX_UTILIZATION = 0.85`. At those values `18000 × 1.4 = 25200` exceeds the 4090's **total** 24,576 MB — Pixal3D can never be admitted on the `:9100` path even at 100% utilization. The overhead factor has to move, not just the ceiling. Proposal: move both constants to `config.py` with env overrides (`ARTPIPE_VRAM_OVERHEAD_FACTOR`, `ARTPIPE_VRAM_MAX_UTILIZATION`), **defaults unchanged**, and set `1.15` / `0.95` on the 4090 only. That admits Pixal3D (`18000 × 1.15 = 20700 < 24576 × 0.95 = 23347`) without changing admission behaviour on the Macs or SERVER. Scope note: this gate governs only the workstation `:9100` path (Blender addon + batch orchestrator). Production sizing is `ArtPipe:StageSettings:modeling:VramMB` against the GpuCoordinator lease — see PR-5.
Author
Owner

Core change merged in spikersoft-artpipe PR #34 (main, commit 80bd21e) — ARTPIPE_VRAM_OVERHEAD_FACTOR / ARTPIPE_VRAM_MAX_UTILIZATION in config.py, defaults unchanged, range-clamped with fallback on unparseable input.

One follow-up still open in PR #35: a subprocess test pinning the deployed env var names end-to-end. The tests that merged call _env_float directly and compare import-time constants, so neither would catch a typo in the name a stack file actually sets — the Jaeger:EndPoint failure mode (#307/#575/#597). It missed the #34 merge window by a few minutes.

Keeping this open until #35 lands and the 4090 confirms an 18000 job is admitted with the overrides exported.

Core change merged in spikersoft-artpipe PR #34 (`main`, commit `80bd21e`) — `ARTPIPE_VRAM_OVERHEAD_FACTOR` / `ARTPIPE_VRAM_MAX_UTILIZATION` in `config.py`, defaults unchanged, range-clamped with fallback on unparseable input. One follow-up still open in PR #35: a subprocess test pinning the deployed env var **names** end-to-end. The tests that merged call `_env_float` directly and compare import-time constants, so neither would catch a typo in the name a stack file actually sets — the `Jaeger:EndPoint` failure mode (#307/#575/#597). It missed the #34 merge window by a few minutes. Keeping this open until #35 lands and the 4090 confirms an 18000 job is admitted with the overrides exported.
Sign in to join this conversation.