code wiki / _hdl_build / nx_compare_growth_bench_new_20260910.nx

nx_compare_growth_bench_new_20260910.nx source

↩ module page · 39 lines · 1833 B

1import "nx_compare_growth_lib.nx" 2import "nx_gate_verdict.nx" 3const CGB_REPETITIONS: i64=3 // This fixture's declared workload; not production scheduling policy. 4func cgb_now() -> i64 { 5 let t: *i64=sys_mmap(16) as *i64 6 let rc: i64=sys_clock_gettime_mono(t) 7 let value: i64=t[0]*1000000+t[1]/1000; sys_munmap(t as *u8,16) 8 if rc<0 { return 0-1 }; return value 9} 10func cgb_run(path: *u8,nodes: i64,edges: i64,ctr: *i64) -> i64 { 11 var n: i64=0; let raw: *u8=sys_read_file(path,&n) 12 gv_check("fixture read",n>0,ctr) 13 if n<=0 { return 0 } 14 var i: i64=0 15 while i<CGB_REPETITIONS { 16 let start: i64=cgb_now() 17 let m: *CgModel=cg_parse(raw,n) 18 let end: i64=cgb_now() 19 gv_check("clock monotonic valid",(start>=0) & (end>=start),ctr) 20 gv_check("model allocated",(m as i64)>0,ctr) 21 if (m as i64)>0 { 22 gv_check("valid graph",m.error==0,ctr); gv_check("expected node count",m.exercises==nodes,ctr) 23 gv_puts("BENCH|"); gv_puts(path); gv_puts("\n"); gv_kv("input_bytes",n) 24 gv_kv("nodes",nodes); gv_kv("edges_fixture",edges); gv_kv("elapsed_us",end-start); gv_kv("iteration",i) 25 cg_free(m) 26 } 27 i=i+1 28 } 29 sys_free_file(raw,n); return 0 30} 31func main() -> i64 { 32 let ctr: *i64=gv_ctr(); gv_head("GROWTH-GRAPH-BENCH") 33 cgb_run("/tmp/cg-bench-beach-chain-20260910.plan" as *u8,68,67,ctr) 34 cgb_run("/tmp/cg-bench-max-chain-20260910.plan" as *u8,82,81,ctr) 35 cgb_run("/tmp/cg-bench-max-branch-20260910.plan" as *u8,82,81,ctr) 36 cgb_run("/tmp/cg-bench-max-dense-20260910.plan" as *u8,82,3321,ctr) 37 cgb_run("/tmp/cg-bench-scaled-chain-20260910.plan" as *u8,328,327,ctr) 38 return gv_verdict("GROWTH-GRAPH-BENCH",ctr,"parser timing on declared synthetic graph shapes; no end-to-end workflow speedup claim") 39}