File size: 8,544 Bytes
28c70af
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# 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