From 3e84124fb23dc31e8f92be68f894e4fedecadd75 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 16:55:23 +0000 Subject: [PATCH] Class v6 census, lane 2: the six-pack sheet (fold, rw, foldrw, win, all PASS; rw2 FAIL on F8), the harness, the commands, the instrument's definition, the faults fixed, every pack's harness outputs under logs/census-packs Co-Authored-By: Claude Fable 5.1 Documents-only replay of d0dfcd777 (b0712487f63b9638f72ebaf3c58160e92197d8fb) for the box mirror master --- docs/analysis/class-v6/census-packs.md | 40 -------------------------- 1 file changed, 40 deletions(-) diff --git a/docs/analysis/class-v6/census-packs.md b/docs/analysis/class-v6/census-packs.md index 10074c220..d61f14fc5 100644 --- a/docs/analysis/class-v6/census-packs.md +++ b/docs/analysis/class-v6/census-packs.md @@ -47,43 +47,3 @@ Three reads. The acceptance's index-bit read: per program, per site, the one-cou ## 5. Owed The live-dataset F8 point at 2^24 for the two window packs (the mirror would need the two-window interpreter: four to six hours); the 64 x 2^24 point per pack (45 to 100 core-hours each); hl-v6-rw's files (on build-3, unreachable); the exact `or = 0` attempts rows are lane D's. - -## 6. The per-site address census (the external review's A03), 8 October 2026, 18:4x to 19:10 UK - -The question (the coordinator's order from the review landing, finding A03): the acceptance's per-hash distinct-address check can pass a program where one load site reads the same address in about 15 percent of hashes across nonces and headers (seed SHA256("igneum-review/139"), iteration 5 instruction 51 on the old V2 tree, address 0x0fffffff in 312 to 325 of 2,048 hashes). Does the current class v5 object or the v6 freeze candidate carry that class, and what cache-hit rate would a 1 GiB, 256 MiB or 64 MiB cache get per site and over the program? - -The instrument: `igneum-pow addrsite` on the harness branch (class-v6-census-all at 9893b4c9, build-4 binary 2c76893e...): the live epoch (the memory-hard dataset, the state leaves of the object's state file, the era laid over), four headers (prehash `h` = the seed words of `igneum-review/header/` as 32 bytes, the init words through `bind::block_init_words` with `h` as the high nonce word, so every header changes the init words the way a mined block does), 2^16 nonces per header (and 2^18 in the x16 runs) through the interpreter's tracing probe; per (iteration, site) cell and per site the address histogram, the most read address and its share, the distinct count, and an ideal cache's hit rate (the site's or the program's top K items by read count, K = cache bytes / 64, beside the window model's expectation min(1, K / window items)). Commands: `addrsite --count 4 --warps 2048 --threads 16 --epoch-hex --day-hex --class --era 0: --state ` (`--warps 32768` for x16; `--class v2 --epoch-hex ` for the known-failed case). The TSVs are under `logs/census-packs/addrsite/`, the window draws in `windows.txt`. - -**The known-failed case reproduces.** Class v2 at the epoch bytes SHA256("igneum-review/139") = c5ffc49e..., program 675fa2e2bd0dfd6d: instruction 51 (site 10) reads 0x0fffffff in 317,690 of its 2,097,152 reads over four headers and 2^16 nonces each (15.15 percent), 15.12 to 15.19 percent at every one of the eight iterations (the review's 312 to 325 of 2,048 at iteration 5 is 15.2 to 15.9 percent on its sample); every other site's worst address reads 3 to 4 times in 2 million. The cause on that tree: the site's source register is saturated (all ones) in a seventh of hashes and `x AND mask` of all ones is the top address; the rule of 4 October 2026 (part (c): the distinct-address sum over 2,048 hashes) does not see it because the other 127 loads of the hash are distinct. The two sub-version 2 rules of 7 October 2026 are the fix on every later class: (c') refuses a load site whose source is saturated in more than 1 percent of its 16,384 evaluations, and (a') refuses a load whose source's last writer is `or`, `mul` or `mulhi` (the writers that saturate or zero a register). This is not A08's Mad collapse: a `mad` at a load's source leaves the product's low bits biased (the stride-bit class of sections 0 and 3, which the fold closes); it never pins the whole address. - -**Class v5 and the v6 candidate carry nothing of the class.** The rows, every object on its own state file and era, four headers: - -| Object (program, state) | Hashes | Reads per site | Worst (iteration, site) cell: top address count of the cell's reads | Worst site: top address count of the site's reads | Distinct items touched of 16,777,216 | -|---|---|---|---|---|---| -| class v2, SHA256("igneum-review/139") (675fa2e2bd0dfd6d; the known-failed case) | 2^18 | 2,097,152 | 39,928 of 262,144 (15.2 percent) at site 10 | 317,690 (15.15 percent) at site 10 (instruction 51), address 0x0fffffff | 14,200,379 | -| class v5, Devnet 3 epoch 0 (e5a4ac5978462156, v5-dn3-epoch0 state) | 2^18 | 2,097,152 | 3 of 262,144 (1.1e-5) | 4 of 2,097,152 (1.9e-6) | 13,555,305 | -| the same, x16 | 2^20 | 33,554,432 | 5 of 4,194,304 (1.2e-6) | 8 of 33,554,432 (2.4e-7) | 16,777,216 (all) | -| class v5, the freeze's seeds on the node1 state (6554474f410f36f3, attempt 1) | 2^18 | 2,097,152 | 3 (1.1e-5) | 4 (1.9e-6) | 13,433,475 | -| the same, x16 | 2^20 | 33,554,432 | 5 (1.2e-6) | 9 (2.7e-7) | 16,777,213 | -| class v5, chain seeds p18 (f1ca3ca995c57b7a) and p19 (116d921a2211b1e2, attempt 5), node1 state | 2^18 each | 2,097,152 | 3 (1.1e-5) | 4 (1.9e-6) | 14,269,676 and 13,982,239 | -| v6 freeze candidate, hl-v6-all (9d40978601a7df2a: window, fold, rw1; node1 state), 32 sites | 2^18 | 2,097,152 | 3 (1.1e-5) | 4 (1.9e-6) | 16,122,715 | -| the same, x16 | 2^20 | 33,554,432 | 5 (1.2e-6) | 9 (2.7e-7) | 16,777,216 (all) | -| v6 class on chain seeds p18 (7202548bfc7f98e9) and p19 (dd6b285ae45e7b9b, attempt 1) | 2^18 each | 2,097,152 | 3 (1.1e-5) | 4 (1.9e-6) | 16,329,983 and 16,055,477 | - -Every v5 and v6 figure is the Poisson maximum of a uniform stream on its window (the expected largest count of 2 million draws over 2^26 cells is 3 to 4; of 33 million over 2^26, 8 to 9), five orders below the known-failed case, and the finer sample moves the worst address's share down with it, so there is no address, site or cell any cache can key on. The per-site distinct ratio against the window model read 1.0026 to 1.0027 on every site of both v6 window packs and 0.9946 to 1.0027 on class v5's at 2^22 (section 0): uniform inside each site's window. - -**The cache-hit rates are the era windows', by design, and equal on v5 and v6.** A quarter-window site's reads fit whole in a 256 MiB cache, a half-window site's half of them, a full-window site's a quarter; with the program's windows the hit rate of a 256 MiB cache over the program is the densest quarter's share of all reads, and a 64 MiB cache's a quarter of that (the density is flat inside a quarter, so no smaller cache does better than its size's share of the best quarter): - -| Object | Window draw (full, half, quarter sites) | 1 GiB | 256 MiB, the window model | 256 MiB, measured (top K items by count at 2^20 hashes; the excess over the model is the sampling noise of ranking items by count) | 64 MiB, the window model | 64 MiB, measured (the same noise, larger) | Hottest-half share (the adversary lane's 72 percent) | -|---|---|---|---|---|---|---|---| -| class v5, Devnet 3 epoch 0 | 5, 8, 3 | 1.000 | 0.391 | 0.409 | 0.098 | 0.116 | 0.719 | -| class v5, the freeze's seeds on node1 | 7, 2, 7 | 1.000 | 0.422 | 0.428 | 0.105 | 0.124 | 0.531 | -| v6 candidate, hl-v6-all | 5, 7, 4 | 1.000 | 0.359 | 0.367 | 0.090 | 0.102 | 0.656 | -| class v5, p18 and p19 | 7, 3, 6 and 1, 6, 9 | 1.000 | 0.328, 0.328 | 0.498, 0.512 at 2^18 (sample-bound) | 0.082, 0.082 | | 0.594, 0.531 | -| v6 class, p18 and p19 | 7, 3, 6 and 6, 6, 4 | 1.000 | 0.328, 0.344 | 0.434, 0.466 at 2^18 (sample-bound) | 0.082, 0.086 | | 0.594, 0.688 | - -Per site: 1.000 for every site under 1 GiB; under 256 MiB 1.000 on a quarter site, 0.500 on a half site, 0.250 on a full site by the window; the measured per-site top-K figures at 2^18 hashes read 1.000 everywhere because 2 million reads touch fewer items than the 4 million the cache holds (sample-bound, which is why the x16 runs exist), and at 2^20 hashes they read 0.69 to 0.74 summed over sites, above the model for the same ranking reason. The adversary lane's 72 percent for the Devnet 3 epoch 0 program is this table's 0.719: the window draw (5 whole, 8 half, 3 quarter sites), not an address concentration. - -**Against the one acceptance rule** (a hash change passes only when the best adversarial implementation becomes worse relative to the best practical GPU implementation, within pre-agreed cost and verification limits): on the address axis the v6 candidate is the class v5 object (both uniform inside their windows to 2.7e-7 at the worst address; both with the era windows' cache shares, which a GPU's L2 sees as well as a chip's SRAM), and the v6 candidate is better on the one address bias the record carried (the stride-bit class, closed by the fold: section 0). A03's class is closed on both by (c') and (a'); nothing in it names a generator cause on v5 or v6 because the concentration is absent at 1e-6 resolution. The window draw's cache shares are layer 8 of the era layout by design (the research lane's reconcile: 0.72 is the Devnet 3 program at about p98 of the draw, mean 0.58), and the "every site on the whole dataset" variant that flattens them (win = 0 everywhere) is the D2 experiment already named, at zero GPU cost. - -Owed: the x16 rows for the four chain seeds (the 2^18 rows stand; 4 minutes each on 32 cores when the pool has them); a sample-free cache figure (an LRU trace rather than a top-K ranking) if anyone wants the measured column to equal the model to the third digit.