Files
foxhunt/docs
jgrusewski 4da6b34d78 test(sp5): Task A4 — add grad_cosine_sim_update unit test
Code-quality review caught that pearl_4_adam_hparams_kernel had direct
GPU tests but the auxiliary grad_cosine_sim_kernel had none. Tests 7
and 8 launched the hparams kernel with pre-baked cosine inputs,
never exercising the per-group reduction (dot + 2× L2 norm sums) or
the writeback (grad_curr → grad_prev for next step's comparison).
The writeback is load-bearing for cross-step cosine evolution — if
broken, every subsequent step's cosine_sim is computed against a stale
or mis-aligned previous gradient.

Adds Test 9 `grad_cosine_sim_per_group_dot_norm_and_writeback` with
8 analytically-known synthetic group cases:
  group 0: curr=prev=e1               → cos=+1, |c|=1
  group 1: curr=e1, prev=e2           → cos= 0 (orthogonal)
  group 2: curr=e1, prev=-e1          → cos=-1 (antiparallel; raw)
  group 3: curr=prev=(3,4,0,0)        → cos=+1, |c|=5
  group 4: curr=0, prev=e1            → cos= 0, |c|=0 (cold-start curr)
  group 5: curr=e1, prev=0            → cos= 0, |c|=1 (Pearl A sentinel)
  group 6,7: same as group 0

NO CPU oracle — expected values are unit-vector cosines from the
kernel formula. Writeback verified by reading grad_prev_buf after
the kernel runs and asserting bit-identity with grad_curr_buf for
all 32 elements.

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