code wiki / _hdl_build / nx_vram_frontier_test.nx

nx_vram_frontier_test.nx source

↩ module page · 52 lines · 3543 B

1// nx_vram_frontier_test.nx -- the FRONTIER on a fixed 16GB consumer GPU expands as smarter math is 2// stacked. Walks the technique ladder and prints, at each rung, the largest model (@ 8K context) 3// and the longest context (@ 7B). Exit 0 only if each rung dominates the one below (same silicon, 4// strictly more capability). license_tier: ORIGINAL 5 6import "nx_vram_frontier.nx" 7import "nx_syscalls.nx" 8 9func ft_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 10func ft_num(v: i64) -> i64 { let bb: *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;k=1}; while m>0 {t[k]=48+(m%10); m=m/10; k=k+1}; var i: i64=0; while i<k {bb[i]=t[k-1-i]; i=i+1}; sys_write(1, bb, k); return 0 } 11 12func main() -> i64 { 13 ft_puts("=== FRONTIER on 16GB: same silicon, smarter math = more capability ===\n" as *u8) 14 let L: i64 = 32; let HD: i64 = 128 15 let usable: i64 = vfr_usable_mb(16, 1000, 15) 16 // technique ladder: w_bits, kv_bits, kv_heads, name-tag 17 let wb: *i64 = sys_mmap(8*8) as *i64; let kb: *i64 = sys_mmap(8*8) as *i64; let kh: *i64 = sys_mmap(8*8) as *i64 18 wb[0]=16; kb[0]=16; kh[0]=32 // L0 fp16 MHA 19 wb[1]=4; kb[1]=16; kh[1]=32 // L1 +Q4 weights 20 wb[2]=4; kb[2]=8; kh[2]=32 // L2 +Q8 KV 21 wb[3]=4; kb[3]=8; kh[3]=8 // L3 +GQA 22 wb[4]=4; kb[4]=6; kh[4]=8 // L4 +Q4 K-cache (avg 6-bit KV) 23 let NL: i64 = 5 24 let mdl: *i64 = sys_mmap(8*8) as *i64 // max model @ 8K, per rung 25 let ctx: *i64 = sys_mmap(8*8) as *i64 // max context @ 7B, per rung 26 ft_puts(" rung config maxModel@8K(M) maxCtx@7B(tok)\n" as *u8) 27 var i: i64 = 0 28 while i < NL { 29 let kv8k: i64 = vram_kv_mb(L, kh[i], HD, 8192, 1, kb[i]) 30 mdl[i] = vfr_max_model_m(usable, kv8k, wb[i]) 31 let w7b: i64 = vram_weights_mb(7000, wb[i]) 32 let kv4k: i64 = vram_kv_mb(L, kh[i], HD, 4096, 1, kb[i]) 33 ctx[i] = vfr_max_ctx(usable, w7b, kv4k, 4096) 34 ft_puts(" L" as *u8); ft_num(i); ft_puts(" w" as *u8); ft_num(wb[i]); ft_puts(" kv" as *u8); ft_num(kb[i]); ft_puts(" h" as *u8); ft_num(kh[i]) 35 ft_puts(" " as *u8); ft_num(mdl[i]); ft_puts(" " as *u8); ft_num(ctx[i]); ft_puts("\n" as *u8) 36 i = i + 1 37 } 38 // verify monotonic expansion (each rung >= previous), and the headline gains 39 let r: *i64 = sys_mmap(8*8) as *i64 40 r[0] = 1; var j: i64 = 1 41 while j < NL { if mdl[j] < mdl[j-1] { r[0] = 0 } if ctx[j] < ctx[j-1] { r[0] = 0 } j = j + 1 } 42 r[1] = 0; if ctx[0] == 0 { r[1] = 1 } // fp16 7B does NOT fit (ctx 0) 43 r[2] = 0; if mdl[4] >= mdl[0] * 5 { r[2] = 1 } // frontier: >=5x bigger model 44 r[3] = 0; if ctx[4] >= 100000 { r[3] = 1 } // frontier: >=100K context @ 7B 45 ft_puts("----\n frontier @7B context: fp16 doesnt fit -> L4 = " as *u8); ft_num(ctx[4]); ft_puts(" tokens\n" as *u8) 46 ft_puts(" frontier @8K model: fp16 " as *u8); ft_num(mdl[0]); ft_puts("M -> L4 " as *u8); ft_num(mdl[4]); ft_puts("M\n" as *u8) 47 var pass: i64 = 0; var k2: i64 = 0 48 while k2 < 4 { pass = pass + r[k2]; k2 = k2 + 1 } 49 ft_puts(" passed " as *u8); ft_num(pass); ft_puts("/4\n" as *u8) 50 if pass == 4 { ft_puts(" FRONTIER MAPPED: smarter math turns a 16GB card from ~4B/no-long-ctx into ~25B / 190K-ctx.\n" as *u8); sys_exit(0); return 0 } 51 ft_puts(" FAIL\n" as *u8); sys_exit(1); return 1 52}