code wiki / (root) / nx_f32_linear_simd.nx

nx_f32_linear_simd.nx

buildroot/runtime/nx_f32_linear_simd.nx

4393 B130 linesdepth 5pulls 11 transitivereach 0 importersview sourcekind tooltopic f32
docsdependenciesstructsconstsfunctions

about

nx_f32_linear_simd.nx -- SIMD f32 linear (__f32x8_dot) for the SANA-DiT projections, vs scalar: verify+speed. The DiT block's compute bulk is dbl_linear: out[t,o] = Σ_i inp[t,i]*W[o,i]. With packed 4-byte f32, each output is a chunked __f32x8_dot over the in-dim -> ~10x. Verified bit-close vs the i64-f32 scalar linear + timed. This is the f32-SIMD accelerator for the SANA-DiT block's Q/K/V/O/FFN projections. license_tier: ORIGINAL

dependencies 8 imports · 0 importers

nx_syscalls.nx nx_tier.nx nx_le.nx nx_strconv.nx nx_f32.nx nx_f32_div.nx nx_f32_cvt.nx nx_clock.nx nx_f32_linear_simd.nx

imports: nx_syscalls.nxnx_tier.nxnx_le.nxnx_strconv.nxnx_f32.nxnx_f32_div.nxnx_f32_cvt.nxnx_clock.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_i32_to_f32 nx_f32_div nx_f32_classify nx_f32_exp_field nx_f32_mant_field nx_f32_sign nx_f32_mant_field ↻ nx_f32_exp_field ↻ nx_le_write_u32 dbl_linear_simd nx_f32_add nx_f32_classify ↻ nx_f32_sign ↻ nx_f32_mant_field ↻ nx_f32_exp_field ↻ dbl_linear_scalar nx_f32_add ↻ nx_f32_mul nx_f32_classify ↻ nx_f32_sign ↻ nx_f32_mant_field ↻ nx_f32_exp_field ↻ nx_f32_mul ↻ nx_f32_sub nx_f32_add ↻ nx_f32_neg nx_clock_monotonic_ns sys_mmap ↻ sys_clock_gettime_mono sys_openat_wr ls_emit sys_mmap ↻ nx_strconv_format_i64 sys_write sys_close

structs

none

consts

none

functions

17func dbl_linear_simd(inp_p: *u8, W_p: *u8, out: *i64, n: i64, id: i64, od: i64) -> i64
called by 1: main calls 1: nx_f32_add
39func dbl_linear_scalar(inp: *i64, W: *i64, out: *i64, n: i64, id: i64, od: i64) -> i64
called by 1: main calls 2: nx_f32_addnx_f32_mul
55func ls_emit(fd: i64, key: *u8, kl: i64, v: i64) -> i64
69func main() -> i64