# bankml 0.2.7 release gate — 2026-09-29T16:17:04Z # rustc 1.95.0 (59807616e 2026-04-14) · AMD Ryzen 3 3200U with Radeon Vega Mobile Gfx · 4 threads unittests: test result: ok. 52 passed; 0 failed; 21 ignored; 0 measured; 0 filtered out; finished in 0.74s testing/cli.rs: test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s clippy: clean spdx: 47/47 files carry the licence of their layer ok need_more ui data layer: all ok postgres connector (throwaway cluster): all ok iNFT mint and load (throwaway anvil devnet): all ok model importer (loopback source; carrier on spare ports): all ok 28/28 agree ## oracle_tokenizer tokenizer oracle: 4258 of 4258 cases token-identical to llama.cpp b11192 . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 0.41s ## oracle_chat_template chat-template oracle: 317 of 317 conversations byte-identical to llama.cpp b11192 . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 0.01s ## oracle_forward_embed_norm forward oracle: inp_embd 300 of 300 rows and attn_norm-0 300 of 300 rows bit-exact against the shipped ggml b11192 . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 0.19s ## oracle_forward_qkv_rope forward oracle: layer-0 Qcur/Kcur/Vcur 140 of 140 rows (28 tokens at positions 0–27 and 7–63214, YaRN attn_factor 1) bit-exact against the shipped ggml b11192 . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 0.15s ## oracle_forward_attention forward oracle: layer-0 kqv_out/attn_out/ffn_inp/l_out 112 of 112 rows (28 tokens, causal, f16 K/V) bit-exact against the shipped ggml b11192 . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 0.44s ## oracle_forward_swiglu_sweep forward oracle: swiglu 24600 of 24600 values bit-exact against the shipped ggml b11192 (±120 and the edges) . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 0.01s ## oracle_forward_model forward oracle: whole model 1064 of 1064 rows (36 layers' l_out, result_norm, logits × 28 tokens; greedy token 28 of 28) bit-exact against the shipped ggml b11192 — 14.9 s, 4 threads . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 15.00s ## oracle_greedy_llama_server greedy oracle: 6 of 6 chat prompts generate llama-server b11192's tokens exactly (164 tokens, ends of turn included) — 179 s, 4 threads . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 178.85s ## oracle_ggml_b11192_real_bonsai_1_7b oracle: 197 tensors / 1719904256 weights dequantized bit-exact; 788 q8_0 rows byte-exact; 788 vec_dot and vec_dot_act bit-exact vs ggml AVX2; generic port == ggml generic in 788/788 . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 9.17s ## oracle_ggml_b11192_real_bonsai_8b_q1_0 oracle: 254 tensors / 8188239872 weights dequantized bit-exact; 762 q8_0 rows byte-exact; 762 vec_dot and vec_dot_act bit-exact vs ggml AVX2; generic port == ggml generic in 762/762 . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 38.71s ## oracle_ggml_b11192_real_ternary_bonsai_8b oracle: 254 Q2_0 tensors / 8188239872 weights dequantized bit-exact; 762 q8_0 rows byte-exact; 762 vec_dot_ref, vec_dot_act (AVX2) and scalar bit-exact vs ggml haswell; no-FMA model == ggml x64 in 762/762 . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 39.27s ## ab_vs_ggml GEMV 12288x4096, ns/block min/median: bankml mat_vec 10.05/10.17 (1.011x ggml median) GEMV 12288x4096, ns/block min/median: ggml b11192 10.24/10.28 | bankml vec_dot 10.97/11.17 (0.920x) | bankml vec_dot_act 10.01/10.16 (1.012x) prefill 1024x4096 x 32 cols, ns/(block·col) min/median: ggml per-pair 10.14/10.19 | bankml 1x4 tile 9.23/9.25 (1.101x) | bankml Q8Act tile 8.27/8.28 (1.230x) . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 0.91s ## ab_vs_ggml_q2_0 decode GEMV, 1 thread, ns/block (64 weights) min/median, ms/matmul = median: blk.0.attn_q.weight 4096x4096 ggml 35.07/ 41.46 ( 10.9 ms) | bankml 3.65/ 4.31 ( 1.1 ms) | 9.61x blk.0.attn_k.weight 1024x4096 ggml 34.53/ 34.90 ( 2.3 ms) | bankml 3.48/ 3.59 ( 0.2 ms) | 9.73x blk.0.attn_output.weight 4096x4096 ggml 34.55/ 40.70 ( 10.7 ms) | bankml 3.55/ 3.70 ( 1.0 ms) | 10.99x blk.0.ffn_gate.weight 12288x4096 ggml 34.65/ 41.13 ( 32.3 ms) | bankml 3.56/ 4.29 ( 3.4 ms) | 9.60x blk.0.ffn_down.weight 4096x12288 ggml 34.36/ 34.71 ( 27.3 ms) | bankml 3.53/ 3.55 ( 2.8 ms) | 9.77x output.weight 151669x4096 ggml 34.74/ 35.06 ( 340.4 ms) | bankml 3.59/ 3.62 ( 35.1 ms) | 9.69x activation n=4096: q8_0 quantize 26.5 µs + bankml layout 7.0 µs (median) activation n=12288: q8_0 quantize 95.7 µs + bankml layout 20.2 µs (median) prefill 1024x4096 x 32 cols, ns/(block·col) min/median: ggml per-pair 34.38/34.49 | bankml mat_vec per column 3.48/3.51 (9.82x) | bankml 1x4 tile 2.77/2.78 (12.40x) . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 4.88s ## bench_q1_0_prefill_act prefill 1024x4096 x 32 ns/(block·col) min/median: 1x4 (q8 bytes) 9.16/9.28 | 1x4 sel (Q8Act) 8.18/8.32 (1.115x) . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 0.18s ## bench_memory_floor 1 thread(s): 16.19 GB/s read → floor for one ternary token (2.13 GB) 0.132 s, one 1-bit token (1.06 GB) 0.065 s 2 thread(s): 17.49 GB/s read → floor for one ternary token (2.13 GB) 0.122 s, one 1-bit token (1.06 GB) 0.061 s 3 thread(s): 17.46 GB/s read → floor for one ternary token (2.13 GB) 0.122 s, one 1-bit token (1.06 GB) 0.061 s 4 thread(s): 17.51 GB/s read → floor for one ternary token (2.13 GB) 0.122 s, one 1-bit token (1.06 GB) 0.061 s . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 1.57s ## decode_budget_q1_0 decode budget: 253 Q1_0 matmuls, 7567003648 weights (1.06 GB of blocks) per token 1 thread(s): ggml b11192 0.612/0.616 s/token (min/median) | bankml 0.617/0.629 | 0.98x | matmul-only ceiling ggml 1.63, bankml 1.62 tok/s 2 thread(s): ggml b11192 0.360/0.389 s/token (min/median) | bankml 0.399/0.410 | 0.95x | matmul-only ceiling ggml 2.78, bankml 2.51 tok/s 3 thread(s): ggml b11192 0.352/0.352 s/token (min/median) | bankml 0.358/0.358 | 0.98x | matmul-only ceiling ggml 2.84, bankml 2.79 tok/s 4 thread(s): ggml b11192 0.360/0.363 s/token (min/median) | bankml 0.374/0.376 | 0.97x | matmul-only ceiling ggml 2.78, bankml 2.68 tok/s . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 13.42s ## decode_budget_q2_0 decode budget: 253 Q2_0 matmuls, 7567003648 weights (2.13 GB of blocks) per token 1 thread(s): ggml b11192 4.101/4.110 s/token (min/median) | bankml 0.430/0.431 s/token | 9.53x | matmul-only ceiling ggml 0.24, bankml 2.32 tok/s attn_k ggml 0.082 s bankml 0.009 s (mean of 3 passes) attn_output ggml 0.330 s bankml 0.035 s (mean of 3 passes) attn_q ggml 0.328 s bankml 0.035 s (mean of 3 passes) attn_v ggml 0.081 s bankml 0.009 s (mean of 3 passes) ffn_down ggml 0.979 s bankml 0.103 s (mean of 3 passes) ffn_gate ggml 0.982 s bankml 0.103 s (mean of 3 passes) ffn_up ggml 0.995 s bankml 0.103 s (mean of 3 passes) output ggml 0.345 s bankml 0.035 s (mean of 3 passes) 3 thread(s): ggml b11192 2.080/2.155 s/token (min/median) | bankml 0.236/0.237 s/token | 8.80x | matmul-only ceiling ggml 0.48, bankml 4.23 tok/s attn_k ggml 0.044 s bankml 0.006 s (mean of 3 passes) attn_output ggml 0.172 s bankml 0.020 s (mean of 3 passes) attn_q ggml 0.170 s bankml 0.020 s (mean of 3 passes) attn_v ggml 0.043 s bankml 0.005 s (mean of 3 passes) ffn_down ggml 0.509 s bankml 0.057 s (mean of 3 passes) ffn_gate ggml 0.511 s bankml 0.058 s (mean of 3 passes) ffn_up ggml 0.510 s bankml 0.059 s (mean of 3 passes) output ggml 0.180 s bankml 0.018 s (mean of 3 passes) . test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 72 filtered out; finished in 28.53s # gate done