docs+compat: every audit finding corrected, and the build works on the declared zig version - #102
Closed
gHashTag wants to merge 5 commits into
Closed
docs+compat: every audit finding corrected, and the build works on the declared zig version#102gHashTag wants to merge 5 commits into
gHashTag wants to merge 5 commits into
Conversation
README: GF16 range ~±65504 was fp16's max (measured max finite ±4.29e9); GF8's φ³ saturation belonged to the Rust base-φ bench model (shipped codec clamps at 1.9375); ties round away from zero, not to even (and the fp16 encoder truncates); the 35/35 @ 323 MHz row has no record in this repository and was withdrawn upstream; GF-T exponent ranges are asymmetric [−N, N−1] because the top offset row is the special row (the symmetric ±N overstated the top by one — the same off-by-one family the TNF paper carried); the 99.99% accuracy row now names its metric and its measured value. CHANGELOG: the v2.1.0 summary now matches its own committed bench_010.log (5.77e-4 / 9.37e-3 / 16.2x), and the φ³ rows are labelled as the bench model. Every correction cites docs/AUDIT_2026-08-20.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…r's own tables The abstract inverted its own hardware measurement (47-59x MORE, not fewer); the 10x energy note belonged to the Ternary row (GF16's own row: 2x); lr=0.004 was derived from an identity that computes 0.028; phi^5 was printed as 10.944 (it is 11.090); the attention-reduction number contradicted its own printed formula (97.85%, not 78.5%); the GF32/GF64 splits disagreed between sections and with shipped code (12:19 and 24:39 are what ships); and the two MAC-depth bounds (256 vs 8.3) are now flagged as contradictory with the enforced one named. Every correction cites docs/AUDIT_2026-08-20.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tion is gone Section 8's vectors were IEEE fp16 codes (1.0 as 0x3C00, pi as 0x3E23, Inf as 0x7C00) -- values the shipped codec never emits; regenerated from GF16.fromF32/toF32 (1.0 -> 0x3E00, pi -> 0x4124 at 0.031%, Inf -> 0x7E00), and docs/test-vectors.csv with them (all 45 rows re-encoded). The subnormal section described an unimplemented design: E=0, M!=0 decodes to zero (measured), the encoder flushes below the minimum normal, and the printed 4.7e-10 matched neither the section's own formula (2^-39) nor the codec -- the smallest positive value is the minimum normal 2^-30 ~ 9.3e-10. Comparison table row relabelled accordingly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The Green-ML table said a 70B model needs 14 GB in GF16 while its own memory row says 16 bits per weight (= 140 GB, same as FP16); 'Add only' compute is an aspiration -- every shipped GF16 op routes through f32 multiply; the 0.1x energy row had no record (whitepaper's own table gives 2x); the pi round-trip comment said 0.003% where the codec measures 0.031%; a referenced zig-float-audit.md exists nowhere in the repository; and gf16.h is 405 lines, not 80. Every correction cites docs/AUDIT_2026-08-20.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… manifest declares The 0.16 ports broke the build on zig 0.15.2, which is what CI runs and what build.zig.zon declares as the minimum: PROT flags are decl-constants there (a packed struct on 0.16), std.posix.mprotect still exists, and std.time.nanoTimestamp had not left std yet. Both paths now compile behind a comptime-known zig_version check, which Zig resolves without analysing the untaken branch — so 0.15.2 never sees std.c and needs no libc link. Verified green on 0.16 locally. 0.15.2 is CI-verified only: it does not link on this macOS (that is why development moved to 0.16), so CI is the sole instrument for it and this commit trusts it deliberately. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #101. Carries the documentation half of the audit (README ranges/rounding/withdrawn 323 MHz, CHANGELOG vs its own bench log, whitepaper's nine self-contradictions, spec-gf16 test vectors regenerated from the codec, multi-language-audit's own-table contradictions) plus the 0.15.2/0.16 compatibility fix CI asked for.
🤖 Generated with Claude Code