code wiki / (root) / nx_natmm_bench.nx

nx_natmm_bench.nx

buildroot/runtime/nx_natmm_bench.nx

1934 B47 linesdepth 10pulls 29 transitivereach 0 importersview sourcekind bench
docsdependenciesstructsconstsfunctions

about

nx_natmm_bench.nx -- ISOLATED native Q8 matmul: serial (_st) vs fork-join (_pteam). No LLM, no load, no block ops -- just the kernel, looped, so external best-of-3 timing is clean. MODE 0=serial, 1=pteam. NG=n (outputs), MK=k (hidden). Answers: does native fork-join speed up the memory-bound Q8 matmul, isolated? license_tier: ORIGINAL expect_exit: 0

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_f32.nx nx_f32_lazy_weight.nx nx_natmm_bench.nx

imports: nx_syscalls.nxnx_f32.nxnx_f32_lazy_weight.nx

imported by: nobody (leaf or entry point)

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

main sys_mmap nx_f32_lazy_weight_new_q8_ sys_mmap ↻ sys_write _lw_q8_0_matmul_st _q8st_apk sys_mmap ↻ _fq4m_pack_a _lw_q8_0_dot nx_f16_to_f32 nx_le_read_u16 _lw_q8_0_matmul_pteam _q8_pteam nx_pteam_new nx_hw_worker_count nx_hw_cpu_count sys_mmap ↻ sys_munmap sys_mmap ↻ sys_thread_create nx_thread_spawn sys_mmap ↻ _q8st_apk ↻ _fq4m_pack_a ↻ _q8mt_ctxs sys_mmap ↻ nx_pteam_run nx_atom_faa_i64 _pt_wake sys_futex_wake _pt_all_done nx_atom_load_i64 nx_atom_store_i64 nx_atom_load_i64 ↻ _pt_wait sys_futex_wait sys_exit

structs

none

consts

10const NX_MM_MODE: i64 = 1 // 0 = serial (_st) ; 1 = fork-join (_pteam)
11const NX_MM_ITER: i64 = 30
12const NX_MM_NG: i64 = 151936 // n = vocab (lm_head) -- the biggest matmul
13const NX_MM_MK: i64 = 896 // k = hidden

functions

15func main() -> i64