jcbtc commited on
Commit
c8dd05e
·
verified ·
1 Parent(s): 42de3b6

Release Kairic Edge runtime v1.2 correctness update

Browse files
Files changed (2) hide show
  1. README.md +24 -8
  2. RELEASE_NOTES_v1.2.md +46 -0
README.md CHANGED
@@ -30,10 +30,21 @@ tags:
30
 
31
  Kairic Edge combines **Prompt Forge**, **Dual View**, and the accelerated IU4 lane. It connects selected 4-bit activations and weights to AMD's native unsigned/signed 4-bit matrix instruction for prompt and multi-token verification shapes. The important result is not simply a smaller model: it is a working, end-to-end native IU4 compute route inside a served 27B language model.
32
 
33
- > **Custom runtime required.** Standard llama.cpp does not understand the Kairic sidecars or `--kairic-edge`. Build and run the immutable [Kairic Edge v1 source release](https://github.com/ciru-ai/ROCmFPX/tree/kairic-edge-qwen38-27b-v1). The bundled runner enables Kairic Edge, prompt caching, the qualified 256K configuration, and native MTP4 by default.
 
 
 
 
 
 
 
 
 
 
34
 
35
  ## Release highlights
36
 
 
37
  - **47.73 generated tokens/s** across the 164-task coding suite, **85.0% above Unsloth Dynamic Q4** and **88.6% above Unsloth Dynamic Q6** in the collected configured-system runs.
38
  - **158/164 HumanEval Base** and **152/164 HumanEval Plus**: Base tied the Q4 comparison and Plus passed four more tasks; it also passed one more Base and two more Plus tasks than the Q6 comparison.
39
  - The native IU4 instruction harness reached **104.66 TOPS**, or **1.94×** the matched FP16 matrix result and **1.93×** the matched IU8 result on the same device and run.
@@ -59,11 +70,11 @@ To our knowledge, this is **the world's first production-facing use of an accele
59
 
60
  ## Coding evaluation and throughput
61
 
62
- The table reports our collected 164-task, chat-adapted HumanEval/EvalPlus harness. Every arm ran on the same AMD Ryzen AI Max+ 395 / Radeon 8060S `gfx1151` host with one slot, F16 target/draft KV, batch 2048, ubatch 512, 16 target threads, 32 batch threads, native MTP4, deterministic sampling, one trajectory per task, and no repair retry.
63
 
64
  | Release | Base | Plus | Aggregate PP | Aggregate TG | Peak TG | Generation time |
65
  |---|---:|---:|---:|---:|---:|---:|
66
- | **Kairic Edge IU4** | **158/164 (96.34%)** | **152/164 (92.68%)** | **358.45 tok/s** | **47.73 tok/s** | **106.68 tok/s** | **950.45 s** |
67
  | Unsloth Dynamic Q4 | 158/164 (96.34%) | 148/164 (90.24%) | 314.14 tok/s | 25.80 tok/s | 30.00 tok/s | 1,778.27 s |
68
  | Unsloth Dynamic Q6 | 157/164 (95.73%) | 150/164 (91.46%) | 260.29 tok/s | 25.31 tok/s | 27.99 tok/s | 1,732.38 s |
69
 
@@ -76,7 +87,7 @@ Relative to the collected Q4 and Q6 runs, Kairic Edge delivered:
76
 
77
  These are **configured-system comparisons**, not a one-variable quantization experiment. Kairic Edge used its release configuration at 262,144 context with an 8 GiB prompt cache and 32 context checkpoints; the comparison runs used 65,536 context without that cache allocation. Generation throughput is the most useful cross-run signal, but the different complete configurations must remain visible. This chat-adapted harness is also not directly comparable to a published EvalPlus leaderboard score.
78
 
79
- The 164-task Kairic run was collected on the immediately preceding qualified runtime. The public release runner then reproduced byte-identical 512-token output against that runtime in its release qualification. We therefore attach the suite to this release with that explicit qualification bridge rather than presenting it as a fresh 164-task rerun.
80
 
81
  ### Comparison artifact identity
82
 
@@ -145,7 +156,9 @@ Pooled PP was **+38.87% versus Q4** and **+63.69% versus Q6** in this sweep. Kai
145
 
146
  ### Served verification A/B
147
 
148
- In the exact-M65 controlled serving A/B at 65,536 context, the accelerated verification route increased TG from **48.73 to 52.57 tok/s (+7.89%)**, reduced summed wall time from **39.47 to 37.06 seconds (−6.11%)**, and preserved 10/10 Base and 10/10 Plus on the screened tasks. This is the cleanest served result attributing a generation gain specifically to the native IU4 route.
 
 
149
 
150
  ### Generation-throughput peaks
151
 
@@ -153,7 +166,7 @@ These rows come from different workloads and show the validated envelope; they m
153
 
154
  | Sweep | Aggregate / hot TG | Peak TG | Output gate |
155
  |---|---:|---:|---|
156
- | 164-task coding suite | **47.73** | **106.68** | 158 Base / 152 Plus |
157
  | Repeated-prefix cold sweep | 29.98 pooled | **54.00** | fixed 128-token generations |
158
  | Repeated-prefix warm-cache sweep | — | **99.41** | single 8K point |
159
  | Release-runner qualification | **123.19** | — | byte-identical 512-token output to predecessor |
@@ -200,7 +213,7 @@ sudo apt-get install -y build-essential cmake git ninja-build pkg-config libssl-
200
 
201
  git clone https://github.com/ciru-ai/ROCmFPX.git
202
  cd ROCmFPX
203
- git checkout kairic-edge-qwen38-27b-v1.1
204
 
205
  git clone https://github.com/ROCm/composable_kernel.git third_party/composable_kernel
206
  git -C third_party/composable_kernel checkout fdf4bb7fcc984811cef48ce817d89aac064b984a
@@ -238,7 +251,7 @@ cmake --build build-kairic --target llama-server -j"$(nproc)"
238
  ./build-kairic/bin/llama-server --help | grep -A1 -- '--kairic-edge'
239
  ```
240
 
241
- See the release repository's [build and verification guide](https://github.com/ciru-ai/ROCmFPX/blob/kairic-edge-qwen38-27b-v1.1/docs/kairic-edge-gfx1151.md) for dependency checks, exact compiler identity, compatibility mode, and smoke tests.
242
 
243
  ## Recommended launch
244
 
@@ -268,6 +281,8 @@ prompt cache 8,192 MiB, enabled, idle-slot persistence
268
  context checkpoints 32
269
  Kairic Edge enabled
270
  native MTP depth 4, explicit
 
 
271
  sampler temperature 0, top-p 1, top-k 0, min-p 0
272
  reasoning off
273
  metrics enabled
@@ -312,6 +327,7 @@ For benchmark reproduction, keep the launcher's deterministic sampler and use th
312
  - Full-suite comparisons are configured-system measurements with different context/cache allocations. They are not proof that quantization alone caused every delta.
313
  - One slot was qualified. Multi-user concurrency, sustained power, and cross-vendor performance remain future work.
314
  - Prompt caching needs context checkpoints for correct recurrent-state restoration. Keep `-ctxcp 32` with the recommended runner.
 
315
  - The release preserves strong task results, but no finite benchmark establishes universal quality equivalence to BF16.
316
 
317
  ## Model lineage, license, and credits
 
30
 
31
  Kairic Edge combines **Prompt Forge**, **Dual View**, and the accelerated IU4 lane. It connects selected 4-bit activations and weights to AMD's native unsigned/signed 4-bit matrix instruction for prompt and multi-token verification shapes. The important result is not simply a smaller model: it is a working, end-to-end native IU4 compute route inside a served 27B language model.
32
 
33
+ > **Custom runtime required.** Standard llama.cpp does not understand the Kairic sidecars or `--kairic-edge`. Build and run the immutable [Kairic Edge v1.2 source release](https://github.com/ciru-ai/ROCmFPX/tree/kairic-edge-qwen38-27b-v1.2). The bundled runner enables Kairic Edge, prompt caching, the qualified 256K configuration, and native MTP4 by default.
34
+
35
+ ## v1.2 correctness update
36
+
37
+ Kairic Edge v1.2 keeps 24/64/64 n-gram drafting but changes exact 65-row verification to the compact authoritative path. The earlier native IU4 M65 verifier could select a different greedy token from M1/no-spec decoding on a reproduced low-margin case. Speculative decoding must change speed, not the target model's answer, so the native M65 specialization is no longer a production default.
38
+
39
+ On the frozen 1,967-token structured-generation repro, v1.2 produced the exact target response hash in all six runs. Five warm runs completed in **22.31–22.38 seconds** (mean **22.34 seconds**), accepted **9,255/9,280 drafted tokens (99.73%)**, and retained a mean accepted length of **64.83 tokens**. The strict route measured approximately **5–8% below** the unsafe native M65 verifier while remaining about **7.19× faster** than speculation off on this workload.
40
+
41
+ The model and three `.pfs` files are unchanged. v1.2 is a runtime correctness release. PromptForge prefill, M1 target decode, M2–M5 MTP, prompt caching, context size, and API behavior are unchanged.
42
+
43
+ Release source: [`kairic-edge-qwen38-27b-v1.2`](https://github.com/ciru-ai/ROCmFPX/tree/kairic-edge-qwen38-27b-v1.2), commit [`205a3e5f40e5542e2f2eb68e3d3f81f918b1d895`](https://github.com/ciru-ai/ROCmFPX/commit/205a3e5f40e5542e2f2eb68e3d3f81f918b1d895). Full details are in [`RELEASE_NOTES_v1.2.md`](https://huggingface.co/jcbtc/Qwen3.8-27B-IU4-Kairic-Edge/blob/main/RELEASE_NOTES_v1.2.md).
44
 
45
  ## Release highlights
46
 
47
+ - **v1.2 makes exact-M65 verification target-equivalent by default** while retaining 64-token n-gram drafts and 99.73% acceptance on the reproduced stability gate.
48
  - **47.73 generated tokens/s** across the 164-task coding suite, **85.0% above Unsloth Dynamic Q4** and **88.6% above Unsloth Dynamic Q6** in the collected configured-system runs.
49
  - **158/164 HumanEval Base** and **152/164 HumanEval Plus**: Base tied the Q4 comparison and Plus passed four more tasks; it also passed one more Base and two more Plus tasks than the Q6 comparison.
50
  - The native IU4 instruction harness reached **104.66 TOPS**, or **1.94×** the matched FP16 matrix result and **1.93×** the matched IU8 result on the same device and run.
 
70
 
71
  ## Coding evaluation and throughput
72
 
73
+ The table reports our collected 164-task, chat-adapted HumanEval/EvalPlus harness from the preceding v1/v1.1 configured system. Every arm ran on the same AMD Ryzen AI Max+ 395 / Radeon 8060S `gfx1151` host with one slot, F16 target/draft KV, batch 2048, ubatch 512, 16 target threads, 32 batch threads, native MTP4, deterministic sampling, one trajectory per task, and no repair retry.
74
 
75
  | Release | Base | Plus | Aggregate PP | Aggregate TG | Peak TG | Generation time |
76
  |---|---:|---:|---:|---:|---:|---:|
77
+ | **Kairic Edge IU4 v1/v1.1** | **158/164 (96.34%)** | **152/164 (92.68%)** | **358.45 tok/s** | **47.73 tok/s** | **106.68 tok/s** | **950.45 s** |
78
  | Unsloth Dynamic Q4 | 158/164 (96.34%) | 148/164 (90.24%) | 314.14 tok/s | 25.80 tok/s | 30.00 tok/s | 1,778.27 s |
79
  | Unsloth Dynamic Q6 | 157/164 (95.73%) | 150/164 (91.46%) | 260.29 tok/s | 25.31 tok/s | 27.99 tok/s | 1,732.38 s |
80
 
 
87
 
88
  These are **configured-system comparisons**, not a one-variable quantization experiment. Kairic Edge used its release configuration at 262,144 context with an 8 GiB prompt cache and 32 context checkpoints; the comparison runs used 65,536 context without that cache allocation. Generation throughput is the most useful cross-run signal, but the different complete configurations must remain visible. This chat-adapted harness is also not directly comparable to a published EvalPlus leaderboard score.
89
 
90
+ The 164-task Kairic run was collected before the v1.2 strict-M65 correction and is retained as historical configured-system evidence, not relabeled as a fresh v1.2 speed run. v1.2 preserves the target model's greedy output, but exact-M65-heavy workloads can be approximately 5–8% slower than the unsafe native verifier. The v1.2 release gate instead freezes target equivalence, draft acceptance, and the bounded performance cost on the reproduced failure.
91
 
92
  ### Comparison artifact identity
93
 
 
156
 
157
  ### Served verification A/B
158
 
159
+ The original exact-M65 controlled serving A/B at 65,536 context measured **48.73 tok/s** on compact verification and **52.57 tok/s** on native IU4 verification, a **7.89%** native advantage. A later deterministic trace found that the native path could change a target greedy token despite passing the ten-task screen. v1.2 therefore promotes compact verification as the correctness-preserving default. The old native path is retained only for diagnostics through `KAIRIC_UNSAFE_NATIVE_M65_VERIFY=1`; do not enable it for correctness-sensitive serving.
160
+
161
+ The v1.2 six-run gate produced one target-identical response hash. Cold target-reference generation took **161.26 seconds**; five warm strict-M65 rows took **22.31–22.38 seconds**, with **99.73%** draft-token acceptance and mean accepted length **64.83**.
162
 
163
  ### Generation-throughput peaks
164
 
 
166
 
167
  | Sweep | Aggregate / hot TG | Peak TG | Output gate |
168
  |---|---:|---:|---|
169
+ | 164-task coding suite (v1/v1.1) | **47.73** | **106.68** | 158 Base / 152 Plus |
170
  | Repeated-prefix cold sweep | 29.98 pooled | **54.00** | fixed 128-token generations |
171
  | Repeated-prefix warm-cache sweep | — | **99.41** | single 8K point |
172
  | Release-runner qualification | **123.19** | — | byte-identical 512-token output to predecessor |
 
213
 
214
  git clone https://github.com/ciru-ai/ROCmFPX.git
215
  cd ROCmFPX
216
+ git checkout kairic-edge-qwen38-27b-v1.2
217
 
218
  git clone https://github.com/ROCm/composable_kernel.git third_party/composable_kernel
219
  git -C third_party/composable_kernel checkout fdf4bb7fcc984811cef48ce817d89aac064b984a
 
251
  ./build-kairic/bin/llama-server --help | grep -A1 -- '--kairic-edge'
252
  ```
253
 
254
+ See the release repository's [build and verification guide](https://github.com/ciru-ai/ROCmFPX/blob/kairic-edge-qwen38-27b-v1.2/docs/kairic-edge-gfx1151.md) for dependency checks, exact compiler identity, compatibility mode, and smoke tests.
255
 
256
  ## Recommended launch
257
 
 
281
  context checkpoints 32
282
  Kairic Edge enabled
283
  native MTP depth 4, explicit
284
+ ngram match/min/max 24/64/64
285
+ M65 verifier strict compact/reference
286
  sampler temperature 0, top-p 1, top-k 0, min-p 0
287
  reasoning off
288
  metrics enabled
 
327
  - Full-suite comparisons are configured-system measurements with different context/cache allocations. They are not proof that quantization alone caused every delta.
328
  - One slot was qualified. Multi-user concurrency, sustained power, and cross-vendor performance remain future work.
329
  - Prompt caching needs context checkpoints for correct recurrent-state restoration. Keep `-ctxcp 32` with the recommended runner.
330
+ - Exact-M65 native IU4 verification is intentionally disabled in v1.2 because it changed a reproduced greedy output. `KAIRIC_UNSAFE_NATIVE_M65_VERIFY=1` exists only for controlled diagnostics and is not a production setting.
331
  - The release preserves strong task results, but no finite benchmark establishes universal quality equivalence to BF16.
332
 
333
  ## Model lineage, license, and credits
RELEASE_NOTES_v1.2.md ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Kairic Edge v1.2
2
+
3
+ Kairic Edge v1.2 is a runtime correctness release. The GGUF and all three PromptForge sidecars are unchanged.
4
+
5
+ ## Fixed
6
+
7
+ - Exact 65-row n-gram verification now uses the compact authoritative computation path by default.
8
+ - The previous native IU4 M65 verifier could change a greedy target token on a reproduced low-margin case.
9
+ - Kairic startup now reports `M65 verifier=strict-compact` so the active correctness mode is auditable.
10
+ - The previous route remains available only through `KAIRIC_UNSAFE_NATIVE_M65_VERIFY=1` for controlled diagnostics.
11
+
12
+ ## Validation
13
+
14
+ - Six out of six responses matched the frozen no-spec target hash exactly.
15
+ - Five warm strict-M65 runs: 22.31–22.38 seconds, mean 22.34 seconds.
16
+ - Draft acceptance: 9,255/9,280 tokens, 99.73%.
17
+ - Mean accepted draft length: 64.83 tokens.
18
+ - Approximately 5–8% slower than the unsafe native M65 route on the reproduced workload.
19
+ - Approximately 7.19× faster than speculation off on the same workload.
20
+
21
+ The frozen target output contains two known arithmetic mistakes. v1.2 intentionally preserves those tokens: speculative decoding is required to accelerate the target model, not silently change its answer.
22
+
23
+ ## Release scope
24
+
25
+ The release contains only the M65 correctness change and its documentation. The separately tested Qwen MTP16 verification/adaptive controls were not promoted because the matched MTP4 production profile remained faster. Native MTP4 therefore remains the recommended production default.
26
+
27
+ ## Unchanged artifacts
28
+
29
+ | File | SHA-256 |
30
+ |---|---|
31
+ | `Qwen3.8-27B-IU4-Kairic-Edge.gguf` | `360caf7381907c3eca7ac0afd1228efc016af747f3f38637fb1c7f94daabac2a` |
32
+ | `Qwen3.8-27B-Kairic-IU4-FFN.pfs` | `adcbb90a7b429a30a2a39043366d68320d72e8b4816a0f498e882b2f80a2ba2b` |
33
+ | `Qwen3.8-27B-Kairic-IU4-GDN.pfs` | `82f931316f1c895da104915dec4697163808d06f0e6b2dc027cee7aa3afc0f0e` |
34
+ | `Qwen3.8-27B-Kairic-IU4-GDN-Output.pfs` | `3b07e7b176559e4402924ba0c368532fa6f02118a33c71e70974c809bf6208a3` |
35
+
36
+ ## Required source release
37
+
38
+ Build tag: [`kairic-edge-qwen38-27b-v1.2`](https://github.com/ciru-ai/ROCmFPX/tree/kairic-edge-qwen38-27b-v1.2) in `ciru-ai/ROCmFPX`.
39
+
40
+ Source commit: [`205a3e5f40e5542e2f2eb68e3d3f81f918b1d895`](https://github.com/ciru-ai/ROCmFPX/commit/205a3e5f40e5542e2f2eb68e3d3f81f918b1d895).
41
+
42
+ The immutable tag exists publicly and the release source passed a clean `llama-server` build, startup/help check, and runtime dependency check on Sozo.
43
+
44
+ ## Acknowledgment
45
+
46
+ Pete independently proposed the same fail-closed M65 direction in the Hugging Face discussion. We statically cross-checked that proposal against this implementation before release; v1.2 keeps the stricter explicit unsafe override and auditable startup mode.