Plan 1 Task 1. Creates the five audit docs plus config/metric-bands.toml
that track Invariants 2, 7, 8 per the DQN v2 spec, and extends the
pre-commit hook with two checks:
- component-adding commits must touch an audit doc (Invariant 7)
- added code may not contain TODO/FIXME/XXX/HACK/TBD/unimplemented!/
todo! markers (Invariant 9)
Tests: manually verified by staging a TODO-marked file; commit
rejected with the correct error message.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.1 KiB
1.1 KiB
DQN GPU Hot-Path Audit
Invariant 3 enforcement. Every cross-boundary call (DtoH, HtoD, memcpy between host and device) in the DQN code path is classified below. No hot-path memcpy DtoH/HtoD is allowed — zero tolerance. Pinned + device-mapped memory is the ONLY permitted mechanism for per-step host-visible data.
Hot path definition: every function called from fused_training.rs::step_fused or its descendants that executes once per training step (178 times per epoch at batch size 8192), including kernel invocations inside the captured CUDA graph (adam_grad_child, forward_child, aux_grad_child) and host-side orchestration between them.
Classification:
OK-pinned— uses the zero-copy pinned + device-mapped pattern (allowed).MIGRATE— usesmemcpybut should be pinned. Fix during spec impl.COLD-PATH— acceptable placement (checkpoint save/load, fold transition, epoch-boundary validation), annotated with reason.
| File:line | Call signature | Path class | Annotation | Status |
|---|---|---|---|---|
| (populated during A.6 audit) |