Repository navigation
GKX 2.4.0
GKX 2.4.0
Requires solvax>=0.26.0. Nothing a documented workflow uses is removed.
Undocumented lazy gkx.<name> compatibility aliases were removed with their
modules.
Correctness
- One resolution default everywhere.
gkx run,gkx scanandgkx.run_linear_casenow use the same (Nl, Nm) fallback as the Python API: (12, 24) linear, (4, 8) nonlinear. Previously they kept the pre-2.2.0 (24, 12), which is Hermite-starved: Cyclone γ −4.4% from the golden instead of +0.4% (#286). - Collision tables check their basis. A tabulated collision operator must run on its exact
(Nl, Nm), for example (2, 4), not just the sameNl*Nm; the transposed (4, 2) had put γ 45% low. The Krylov-eigen and CFL-controlled paths now refuse a non-default operator instead of silently using the diagonal term (#290). - Stale off-stride rows in nonlinear streamed diagnostics are fixed (#291). The Cyclone absorber-rate reference is migrated (#272).
Performance and derivatives
- Opt-in
[grid] ky_layout = "half". It stores only ky ≥ 0: an RK3 step takes 0.54–0.60× the full layout's time, and the nonlinear RHS 0.49–0.63×. The default stays"full", and 8 of 8 identity checks against 2.3.0 are bitwise (#282). - Faster window gradients. The adjoint heat-flux window gradient is 1.27–1.47× faster on an RTX A4000 at unchanged values. The inner per-step recompute is dropped under a 4 GiB memory budget (#279, #297).
- Sparse-direct growth rate.
eigensolver="sparse-direct"uses SOLVAX 0.26's traced sparse factorization. At 3,072 unknowns its gradient matches a dense eigensolve to 3e-13, and the compiled SOLVAX route takes 4–5.5 s, against 117–193 s for the dense and matrix-free routes (#295, SOLVAX #121). - Sharding. Sharded runs accept ky extents the device count does not divide (#287), and
state_shardingruns on XLA:CPU and GPU (#292).
Leaner package
| 2.3.0 | 2.4.0 | |
|---|---|---|
| Source | 187 files, 93,344 lines | 160 files, 79,446 lines |
| Tests | 81 files, 94,057 lines | 74 files, 84,139 lines |
tools/ Python |
96 files | 0 (developer commands under scripts/: 57 files, 42,502 lines) |
- 27 source modules that no user path reached were removed, with bitwise-identical CPU results (#296).
- Examples are reorganized into a numbered gallery with one smoke test (#281).
- The docs are current, and the verification matrix is generated from the evidence ledger (#283). The README is rewritten (#285).
Research records
The GKX performance profile and literature surveys (#284) and the sparse-direct benchmark report (#280) are recorded in plan/research/.