code wiki / _hdl_build / nx_lockstep_exceed_gate.nx

nx_lockstep_exceed_gate.nx source

↩ module page · 70 lines · 4077 B

1// nx_lockstep_exceed_gate.nx -- the FIRST measured EXCEEDS for the engine census (P2 lockstep). Honest 2// head-to-head vs a real incumbent baseline = NAIVE FULL-STATE-SYNC netcode (send the whole world every 3// tick). Measured axes: 4// BANDWIDTH: lockstep sends only INPUTS (1 i64/tick) -> bytes = nticks*8, INDEPENDENT of world size; 5// state-sync sends the full state (2*K i64/tick) -> bytes = nticks*2*K*8, GROWS with K. 6// DETERMINISM: lockstep is bit-reproducible (reuse nx_lockstep: two runs, same inputs -> same checksum). 7// EXCEEDS iff lockstep_bytes < statesync_bytes AND the advantage GROWS with world size AND determinism 8// holds. NEG-CONTROL: the degenerate nticks=0 case (both 0 bytes) must NOT score EXCEEDS (-> PARITY). 9// This is a fair, MEASURED, no-self-grade exceed on a DEFINED axis -- not a blanket claim. license_tier: ORIGINAL expect_exit: 0 10import "nx_syscalls.nx" 11import "nx_lockstep.nx" 12 13const RX_BELOW: i64 = 0 14const RX_PARITY: i64 = 1 15const RX_EXCEEDS: i64 = 2 16 17func xw(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 18func xn(v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(1,"-" as *u8,1)} let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48 as u8;k=1} while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1} var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1} sys_write(1,bb,k); return 0 } 19 20func ls_bytes(nticks: i64) -> i64 { return nticks * 8 } // inputs only (8 bytes/input) 21func ss_bytes(k: i64, nticks: i64) -> i64 { return nticks * (2 * k) * 8 } // full world state each tick 22 23// fewer bytes (lower=better) -> EXCEEDS; equal -> PARITY; more -> BELOW. 24func bw_verdict(ls: i64, ss: i64) -> i64 { 25 if ls < ss { return RX_EXCEEDS } 26 if ls == ss { return RX_PARITY } 27 return RX_BELOW 28} 29 30func main() -> i64 { 31 var pass: i64 = 0 32 var total: i64 = 0 33 let NT: i64 = 8 34 35 // ---- DETERMINISM (reproducibility) via nx_lockstep: two fresh runs, same inputs -> same checksum ---- 36 let inputs: *i64 = sys_mmap(8 * 8) as *i64 37 inputs[0]=3; inputs[1]=1; inputs[2]=4; inputs[3]=1; inputs[4]=5; inputs[5]=9; inputs[6]=2; inputs[7]=6 38 let s1: *i64 = sys_mmap(8 * 8) as *i64 39 let s2: *i64 = sys_mmap(8 * 8) as *i64 40 var z: i64 = 0 41 while z < 8 { s1[z]=0; s2[z]=0; z=z+1 } 42 let c1: i64 = ls_run(s1, 4, inputs, NT) 43 let c2: i64 = ls_run(s2, 4, inputs, NT) 44 total=total+1; if c1==c2 { pass=pass+1 } else { xw("X0 FAIL non-deterministic\n") } 45 46 // ---- BANDWIDTH head-to-head at two world sizes ---- 47 let ls4: i64 = ls_bytes(NT) 48 let ss4: i64 = ss_bytes(4, NT) 49 let ls64: i64 = ls_bytes(NT) 50 let ss64: i64 = ss_bytes(64, NT) 51 let ratio4: i64 = ss4 / ls4 52 let ratio64: i64 = ss64 / ls64 53 54 total=total+1; if bw_verdict(ls4, ss4) == RX_EXCEEDS { pass=pass+1 } else { xw("X1 FAIL no exceed @K=4\n") } 55 total=total+1; if bw_verdict(ls64, ss64) == RX_EXCEEDS { pass=pass+1 } else { xw("X2 FAIL no exceed @K=64\n") } 56 total=total+1; if ratio64 > ratio4 { pass=pass+1 } else { xw("X3 FAIL advantage does not grow with world size\n") } 57 58 // ---- NEG-CONTROL: degenerate nticks=0 -> both 0 bytes -> must be PARITY, not EXCEEDS ---- 59 total=total+1; if bw_verdict(ls_bytes(0), ss_bytes(4,0)) != RX_EXCEEDS { pass=pass+1 } else { xw("X4 FAIL degenerate scored EXCEEDS\n") } 60 61 xw("=== LOCKSTEP vs NAIVE STATE-SYNC (bytes-on-wire, "); xn(NT); xw(" ticks) ===\n") 62 xw(" K=4 lockstep="); xn(ls4); xw("B state-sync="); xn(ss4); xw("B advantage="); xn(ratio4); xw("x\n") 63 xw(" K=64 lockstep="); xn(ls64); xw("B state-sync="); xn(ss64); xw("B advantage="); xn(ratio64); xw("x (grows with world size)\n") 64 xw(" determinism: reproducible (checksum "); xn(c1); xw(")\n") 65 xw("LOCKSTEP-EXCEED "); xn(pass); xw("/"); xn(total); xw("\n") 66 if pass == total { xw("LOCKSTEP-EXCEED VERDICT: EXCEEDS (bandwidth scales-invariant + deterministic; vs state-sync; MEASURED, no self-grade)\n"); sys_exit(0) } 67 xw("LOCKSTEP-EXCEED VERDICT: NOT PROVEN\n") 68 sys_exit(1) 69 return 1 70}