Skip to content

Develop#320

Merged
LeoBuron merged 3 commits into
mainfrom
develop
Jul 9, 2026
Merged

Develop#320
LeoBuron merged 3 commits into
mainfrom
develop

Conversation

@LeoBuron

@LeoBuron LeoBuron commented Jul 9, 2026

Copy link
Copy Markdown
Member

No description provided.

LeoBuron and others added 3 commits July 8, 2026 19:31
…ateless factory, plain-SGD arm deleted (#308)

- sgdStepM: momentumFactor==0 runs one stateless update op per parameter and
  never reads optim->states (may be NULL)
- sgdMCreateOptim: allocates no momentum-state buffers at momentumFactor==0
  (optim->states == NULL); freeOptimSgdM handles the no-states case; the ten
  duplicated per-layer state-building blocks DRYed into one uniform post-loop
- delete unreachable sgdStep + SGD enum value (verified unserialized); its
  three direct test callers (#279 dead-zone fixtures) ported byte-identically

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…GD update ops, FLOAT32 default, fail-fast otherwise (#310)

- sgdMCreateOptim gains a by-value arithmetic_t updateMath (7th param, mirrors
  the layer-side per-op knobs), stored on sgd_t and fed into all three update
  opSpecs (previously hardcoded {ARITH_FLOAT32, HALF_AWAY})
- anything but ARITH_FLOAT32 fails fast at creation (sgdInit) AND step time
  (sgdStepM entry; the update kernels raw-cast float*) — both death-tested
- mechanical sweep: 48 test + 9 example call sites, zero numeric movement;
  7-arg _Static_assert signature contract updated
- rounding ownership documented at the #282 seam (prologue = knob, inert for
  FLOAT32; OUT_WRITE epilogue = target qConfig, the #279 SR escape)
- FEATURES.md optimizer section corrected; stale pre-#284 comments swept;
  mem_instrument guards states==NULL; momentumFactor creation-fixed doc note

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…le-epoch probes

first/last train loss are per-EPOCH means; with EPOCHS=1 they are the
same number by construction, so the check always warned — bit the CI
c-stack-watermark probe, which runs EPOCHS=1 and printed a misleading
'SYM@8 too coarse to descend' on every run (the 50-epoch sweep shows
sym8 converging indistinguishably from float). Now prints CONVERGENCE
SKIP for single-epoch runs; smoke-verified (EPOCHS=1 -> SKIP line).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant