code wiki / (root) / nx_transformer_stack.nx

nx_transformer_stack.nx

buildroot/runtime/nx_transformer_stack.nx

6889 B172 linesdepth 8pulls 22 transitivereach 20 importersview sourcekind librarytopic transformer
docsdependenciesstructsconstsfunctions

about

nx_transformer_stack.nx -- multi-layer transformer forward composer. L5 brick. The missing layer between "load weights for one block" (nx_gguf_load_block) and "run the full LLM pipeline" (nx_llm_run v2 -- next brick). Composes: - Pre-allocated scratch tensors (one set, reused across layers) - Per-layer loop that: * loads block weights from GGUF via nx_gguf_load_block_weights * calls nx_transformer_block_forward with the loaded bundle - Optional final RMSNorm (output_norm.weight from load_model) Does NOT include: embed, output_projection, sample. Those compose in nx_llm_run v2. This brick proves multi-layer chain works. Bits-up composition (every primitive already canonical): nx_tensor.nx -- NxTensor + alloc nx_rmsnorm.nx -- final norm nx_transformer_block.nx -- per-layer forward + weight bundle nx_gguf.nx + nx_gguf_load.nx -- header + per-tensor load nx_gguf_load_block.nx -- 9-tensor per-layer loader genealogy_id: standard_transformer_stack_pattern + touvron_2023_llama_decoder lineage_id: substrate_transformer_stack_v1_single_head

dependencies 9 imports · 2 importers

nx_syscalls.nx nx_tier.nx nx_loop.nx nx_tensor.nx nx_rmsnorm.nx nx_gguf.nx nx_gguf_load.nx nx_gguf_load_block.nx nx_transformer_block.nx nx_transformer_stack.nx nx_llm_run_v2.nx nx_transformer_stack_test.nx

imports: nx_syscalls.nxnx_tier.nxnx_loop.nxnx_tensor.nxnx_rmsnorm.nxnx_gguf.nxnx_gguf_load.nxnx_gguf_load_block.nxnx_transformer_block.nx

imported by: nx_llm_run_v2.nxnx_transformer_stack_test.nx

structs

none

consts

58const NX_TS_OK: nx_int = 0
59const NX_TS_ERR_BAD_DIM: nx_int = 1
60const NX_TS_ERR_OOM: nx_int = 2
61const NX_TS_ERR_LAYER_LOAD: nx_int = 3
62const NX_TS_ERR_BLOCK_FWD: nx_int = 4
63const NX_TS_ERR_NORM_FAIL: nx_int = 5
64const NX_TS_N_VERDICTS: nx_int = 6

functions

66func nx_ts_verdict_is_valid(v: nx_int) -> nx_int
called by 1: main
73func _ts_alloc_2d(n_tokens: nx_int, dim: nx_int) -> *NxTensor
100func nx_transformer_stack_forward(