code wiki / (root) / nx_f32_llama_layer_load_test.nx

nx_f32_llama_layer_load_test.nx source

↩ module page · 68 lines · 2567 B

1// nx_f32_llama_layer_load_test.nx -- smoke for nx_f32_llama_layer_load.nx. 2// 3// Uses the existing tiny-Llama fixture (1 layer, F32 zero weights) 4// to verify the binder populates all 9 weight pointers in the layer 5// struct. 6 7import "nx_syscalls.nx" 8import "nx_tier.nx" 9import "nx_gguf.nx" 10import "nx_gguf_fixture_tiny.nx" 11import "nx_gguf_load_f32.nx" 12import "nx_f32_llama_block.nx" 13import "nx_f32_llama_layer_load.nx" 14 15func main() -> i64 { 16 var vi: nx_int = 0 17 while vi < NX_FLL_N_VERDICTS { 18 if nx_fll_verdict_is_valid(vi) != 1 { return 5 + vi } 19 vi = vi + 1 20 } 21 22 // Build the tiny fixture (1 layer, all zero F32 weights). 23 let b: *NxGgufFixtureBundle = nx_gft_build_tiny_llama(42 as i64) 24 if nx_gft_is_built(b) != 1 { return 10 } 25 26 let layer: *NxF32LlamaLayer = nx_f32_llama_layer_alloc() 27 let out_err: *i64 = sys_mmap(8) as *i64 28 29 let v: nx_int = nx_f32_llama_layer_load_from_gguf( 30 b.gguf_buf, b.hdr, 0, layer, out_err) 31 if v != NX_FLL_OK { return 20 + v } 32 if out_err[0] != NX_FLL_OK { return 30 + (out_err[0] as nx_int) } 33 34 // All 9 pointers should be non-null. 35 if (layer.gamma_attn as i64) == 0 { return 40 } 36 if (layer.W_q as i64) == 0 { return 41 } 37 if (layer.W_k as i64) == 0 { return 42 } 38 if (layer.W_v as i64) == 0 { return 43 } 39 if (layer.W_o as i64) == 0 { return 44 } 40 if (layer.gamma_ffn as i64) == 0 { return 45 } 41 if (layer.W_gate as i64) == 0 { return 46 } 42 if (layer.W_up as i64) == 0 { return 47 } 43 if (layer.W_down as i64) == 0 { return 48 } 44 45 // Fixture has zero F32 weights -> first value of each tensor is 0. 46 if layer.gamma_attn[0] != 0 { return 50 } 47 if layer.W_q[0] != 0 { return 51 } 48 if layer.W_k[0] != 0 { return 52 } 49 if layer.W_v[0] != 0 { return 53 } 50 if layer.W_o[0] != 0 { return 54 } 51 if layer.gamma_ffn[0] != 0 { return 55 } 52 if layer.W_gate[0] != 0 { return 56 } 53 if layer.W_up[0] != 0 { return 57 } 54 if layer.W_down[0] != 0 { return 58 } 55 56 // Bad-layer verdict. 57 let layer2: *NxF32LlamaLayer = nx_f32_llama_layer_alloc() 58 let vE: nx_int = nx_f32_llama_layer_load_from_gguf( 59 b.gguf_buf, b.hdr, -1, layer2, out_err) 60 if vE != NX_FLL_ERR_BAD_LAYER { return 60 } 61 62 // Missing layer (layer 5 not in tiny fixture which only has 1 layer). 63 let vN: nx_int = nx_f32_llama_layer_load_from_gguf( 64 b.gguf_buf, b.hdr, 5, layer2, out_err) 65 if vN != NX_FLL_ERR_NOT_FOUND { return 70 } 66 67 return 0 68}