code wiki / (root) / nx_f32x4_mt_matmul.nx

nx_f32x4_mt_matmul.nx

buildroot/runtime/nx_f32x4_mt_matmul.nx

6800 B129 linesdepth 2pulls 2 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_f32x4_mt_matmul.nx -- STACK the two proven compute levers toward physics: PACKED SIMD x MULTICORE. Packed __f32x4_dot (4 f32 MACs/mulps, measured 3.97x) inside each forked worker's row band (sys_fork + sys_mmap_shared + sys_wait4). Measures the full climb up the compute wall: scalar single-thread -> packed single-thread -> packed multicore, with the gap to the derived silicon f32 peak (~1.84 TFLOP/s, 20 cores @ 2879 MHz) at each step. This is the "get to exceed" trajectory: stacking what's proven shrinks the 469x gap toward physics; what remains after = AVX2 8-wide (2x) + FMA (2x) -- the next two encoding rungs. Correctness: packed-multicore C == scalar-single-thread C, BIT-EXACT (small-int f32 -> order-independent). Sovereign: nx_cc packed SSE + raw fork/shared syscalls, no gcc/no BLAS/no OpenMP. No hw writes (Rule 26). expect_exit: 0 license_tier: ORIGINAL

dependencies 1 imports · 0 importers

nx_syscalls.nx nx_f32x4_mt_matmul.nx

imports: nx_syscalls.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main mp_puts sys_write sys_mmap_shared sys_mmap pack4 sys_now_us sys_mmap ↻ sys_clock_gettime_mono band_scalar band_packed sys_fork sys_exit sys_wait4 mp_num sys_mmap ↻ sys_write ↻

structs

none

consts

11const K_MAGIC_1842560: i64 = 1842560

functions

13func mp_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 1: main calls 1: sys_write
14func mp_num(v: i64) -> i64 { let b: *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{b[i]=t[k-1-i];i=i+1} sys_write(1,b,k); return 0 }
called by 1: main calls 2: sys_mmapsys_write
15func pack4(buf: *u8, idx: i64, bits: i64) -> i64 { buf[idx*4+0]=(bits) as u8; buf[idx*4+1]=(bits>>8) as u8; buf[idx*4+2]=(bits>>16) as u8; buf[idx*4+3]=(bits>>24) as u8; return 0 }
called by 1: main
18func band_scalar(a: *i64, b: *i64, c: *i64, M: i64, N: i64, K: i64, w: i64, nw: i64) -> i64
called by 1: main
31func band_packed(pa: *u8, pbt: *u8, c: *i64, M: i64, N: i64, K: i64, w: i64, nw: i64) -> i64
called by 1: main
45func main() -> i64