nx_q5q8_ab.nx
buildroot/runtime/nx_q5q8_ab.nx
about
nx_q5q8_ab.nx -- the memory-bound-era re-test: does reading FEWER BYTES
(Q5_0 @ 0.69 B/weight, +__q5_unpack32 SSE unpack) now BEAT Q8_0 @ 1.06
B/weight (no unpack), on the COLD forward-representative access pattern
under the FUTEX pool? Earlier (yield-storm pool + software elementwise)
Q5_0 lost 2x -> repacked to Q8_0. Now the matmul is memory-bound, so
fewer bytes SHOULD win if the SSE unpack stays hidden. Same process,
same load, COLD (NB distinct buffers each read once). license_tier:
ORIGINAL expect_exit: 0
dependencies 8 imports · 0 importers
imports: nx_syscalls.nxnx_tier.nxnx_le.nxnx_f32.nxnx_f32_cvt.nxnx_thread_pool.nxnx_f32_lazy_weight.nxnx_fmt.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 18 | const MK: i64 = 896 |
| 19 | const NG: i64 = 4864 |
| 20 | const Q8B: i64 = 34 |
| 21 | const Q5B: i64 = 22 |
| 22 | const NB: i64 = 40 |
functions
| 24 | func qa_nl() -> i64 { fmt_puts("\n" as *u8); return 0 } |
| 25 | func qa_lcg(s: i64) -> i64 { var v: i64 = s * 1103515245 + 12345; v = v & 2147483647; return v } |
| 27 | func q8_weight(seed: i64) -> *NxF32LazyWeight |
| 46 | func q5_weight(seed: i64) -> *NxF32LazyWeight |
| 67 | func qa_rep(tag: *u8, us: i64, bpw: i64) -> i64 |
| 80 | func main() -> i64 |