Files
foxhunt/crates
jgrusewski 82f64551e6 fix(critical): eliminate bf16 remnants from CUDA reduction kernels
Root cause of 61 test failures: bf16→f32 migration missed two sites:

1. reduction_kernels.cu: atomicCAS loops used `unsigned short` (2 bytes = bf16)
   on float* data. With f32 (4 bytes), the 2-byte CAS corrupted adjacent memory
   → CUDA_ERROR_ILLEGAL_ADDRESS. Fixed: use `unsigned int` + __float_as_uint().

2. reductions.rs: shared memory allocated at `threads * 2` (bf16 = 2 bytes)
   instead of `threads * 4` (f32 = 4 bytes) in 5 kernel launch sites.
   Kernels wrote past shared memory → undefined behavior.

Also fix evaluation engine tests for 9-level ExposureLevel mapping
(Long50 = 0.25 not 0.5, Short50 = -1.0 = Short×Full).

Result: 287/287 ml-dqn tests pass (was 226/287).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 00:42:26 +02:00
..