Files
foxhunt/crates
jgrusewski 19b008e1cb fix(dqn): SP1 Phase C — preserve NaN diagnostics + correct F0 paper-review
Quality-review follow-ups to commit 97f1d25f5:

1. CRITICAL: preserve regression sentinel for slots 24, 25, 26, 32.
   The post-clamps in apply_iqn_trunk_gradient + launch_cublas_backward_to
   ran BEFORE run_nan_checks_post_backward, silently zeroing the buffers
   the diagnostic was supposed to observe. Fix: inline check_nan_f32 calls
   IMMEDIATELY BEFORE each launch_clamp_finite_f32 — same pattern as the
   existing slot 35 check at line 6949. Now the diagnostic fires on NaN
   entry; the clamp then sanitizes (preventing propagation but preserving
   the flag — flags are sticky/OR'd in dqn_nan_check_f32, never cleared).

2. CRITICAL: correct F0 paper-review line reference + reasoning. The
   commit body cited "5.0 norm-clip at line 16747" — that's a memset, not
   a clip. Real norm-clip lives at lines 16827-16868. Also tightened the
   L2-vs-per-element reasoning: L2 norm <= 5.0 worst-case bounds per-element
   |x| <= 5.0 (single-element edge), still several orders of magnitude
   below the 1e6 max_abs guard.

3. Inline comment at line 6951 mislabeled the clamp target as 'slot 27
   input' — actually clamps the slot 35 buffer (bw_d_h_s2 post-DtoD). Fixed.

4. Articulated pre-clamp rationale: defense-in-depth regression protection
   for input buffers (slots 24, 25, 35) against future pathologies that
   could create extreme-but-finite inputs. The F1 ep2 NaN was outputs
   overflowing finite inputs, but the same fix template covers both
   failure modes per feedback_no_partial_refactor.

5. Renamed clamp_finite_f32_kernel -> dqn_clamp_finite_f32_kernel for
   consistency with sibling utility kernels (dqn_nan_check_f32,
   dqn_zero_kernel, dqn_grad_norm_kernel).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 01:27:23 +02:00
..