40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# Step 3: device-oom-policy
|
|
|
|
## Read First
|
|
- /AGENTS.md
|
|
- /PLAN.md
|
|
- /PROGRESS.md
|
|
- /docs/HARNESS.md
|
|
- /docs/IMPLEMENTATION_PLAN.md
|
|
- /docs/ARCHITECTURE.md
|
|
- /docs/CONVERSION_POLICY.md
|
|
- /docs/TOOLCHAIN.md
|
|
- /phases/1-core-runtime-contracts/step1.md
|
|
|
|
## Task
|
|
Implement runtime device selection, CUDA fail-fast behavior, auto CPU fallback behavior, and OOM retry policy hooks.
|
|
|
|
This step should be tested with mocks and small CUDA smoke checks only where safe.
|
|
|
|
## Sprint Contract
|
|
- Done means: runtime policy enforces explicit CUDA fail-fast, auto fallback warning, and configurable OOM retry reductions.
|
|
- Hard thresholds: no silent CPU fallback for explicit CUDA; tests do not require exhausting VRAM; GTX 1070 Ti constraints remain documented.
|
|
- Files owned: `src/pdftomd/runtime.py`, tests, `docs/TOOLCHAIN.md` if behavior changes, `PROGRESS.md`, phase index.
|
|
- Dependencies: Runtime config options.
|
|
|
|
## Acceptance Criteria
|
|
```powershell
|
|
python scripts\validate_workspace.py
|
|
.\venv\python.exe -m pytest tests
|
|
```
|
|
|
|
## Verification
|
|
1. Run the acceptance commands.
|
|
2. Confirm CUDA smoke test instructions still work separately.
|
|
3. Update `PROGRESS.md` and this phase index.
|
|
|
|
## Do Not
|
|
- Do not intentionally trigger real GPU OOM in tests.
|
|
- Do not change PyTorch pins without updating `docs/TOOLCHAIN.md`.
|
|
- Do not hide runtime warnings.
|