code wiki / _hdl_build / nx_mla_import_probe.nx
nx_mla_import_probe.nx source
↩ module page · 34 lines · 1339 B
1// nx_mla_import_probe.nx -- rule-2 probe: does importing the MLA organ (-> llm -> gguf/threadpool graph)
2// into an _hdl_build organ compile + run? Trivial MLA forward; exit 0 iff output is finite. Throwaway.
3import "nx_nofloat_mla.nx"
4import "nx_syscalls.nx"
5
6func main() -> i64 {
7 let T: i64 = 2
8 let D: i64 = 4
9 let LC: i64 = 2
10 let Q: i64 = 65536
11 let x: *i64 = sys_mmap(64*8) as *i64
12 let Wdkv: *i64 = sys_mmap(64*8) as *i64
13 let Wuk: *i64 = sys_mmap(64*8) as *i64
14 let Wuv: *i64 = sys_mmap(64*8) as *i64
15 let Wq: *i64 = sys_mmap(64*8) as *i64
16 let Wo: *i64 = sys_mmap(64*8) as *i64
17 let out: *i64 = sys_mmap(64*8) as *i64
18 let scr: *i64 = sys_mmap(512*8) as *i64
19 let c: *i64 = sys_mmap(64*8) as *i64
20 var i: i64 = 0
21 while i < 64 { x[i]=Q/2; Wdkv[i]=Q/4; Wuk[i]=Q/4; Wuv[i]=Q/4; Wq[i]=Q/4; Wo[i]=Q/4; i=i+1 }
22 let ap: *i64 = sys_mmap(16*8) as *i64
23 ap[0]=x as i64; ap[1]=out as i64; ap[2]=T; ap[3]=D; ap[4]=2; ap[5]=2; ap[6]=LC; ap[7]=46341
24 ap[8]=Wdkv as i64; ap[9]=Wuk as i64; ap[10]=Wuv as i64; ap[11]=Wq as i64; ap[12]=Wo as i64
25 ap[13]=scr as i64; ap[14]=c as i64
26 nmla_forward_latent(ap)
27 var ok: i64 = 0
28 var av: i64 = out[0]
29 if av < 0 { av = 0 - av }
30 if av < 1000000000 { ok = 0 }
31 if av >= 1000000000 { ok = 1 }
32 sys_exit(ok)
33 return ok
34}