Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
d88179c
feat(decider): isolate CUDA Graph mode and expose replay evidence
Levius-Fubuki Oct 7, 2026
cc93e80
qwen3_5: add prefix continuation operations
twu3202 Oct 6, 2026
a0ece5c
qwen3_5: add a GEMM handle with one algorithm per weight shape
twu3202 Oct 6, 2026
e596a24
qwen3_5: run prompts that share prefixes once per prefix
twu3202 Oct 6, 2026
1126c0e
feat(decider): integrate request-local shared prefix execution
Levius-Fubuki Oct 7, 2026
6962971
docs(decider): restore exact validation commands and identifiers
Levius-Fubuki Oct 7, 2026
e13b767
Merge validated main integration from Decider batching
Levius-Fubuki Oct 8, 2026
c4d1067
Merge validated main integration and preserve prefix documentation
Levius-Fubuki Oct 8, 2026
b9a0051
Merge fixture cleanup and correct Graph support summary
Levius-Fubuki Oct 8, 2026
210211d
Merge self-review cleanup and document the shared-prefix consumer
Levius-Fubuki Oct 8, 2026
cde084c
docs(decider): describe pending dependencies independently of review …
Levius-Fubuki Oct 8, 2026
98f065c
docs(decider): clarify integration is pending dependency merges
Levius-Fubuki Oct 8, 2026
3fbf56f
decider: select prefix reuse conservatively for mixed workloads
Levius-Fubuki Oct 8, 2026
4e6ed6d
Merge published Decider cleanup while preserving auto prefix policy
Levius-Fubuki Oct 8, 2026
ce285e7
chore: retain only core implementation in PR diff
Levius-Fubuki Oct 8, 2026
d573c9b
chore: retain only core implementation in PR diff
Levius-Fubuki Oct 8, 2026
d31bfd4
test: restore focused regression coverage
Levius-Fubuki Oct 8, 2026
25581a5
test: restore focused regression coverage
Levius-Fubuki Oct 8, 2026
ee1e90a
docs(decider): restore model recipes and retained corpus guidance
Levius-Fubuki Oct 9, 2026
3596c2c
docs(cuda): describe ABI 7 deployment and continuation operations
Levius-Fubuki Oct 9, 2026
f5f71cc
Merge corrected Decider batching into CUDA Graph mode
Levius-Fubuki Oct 9, 2026
06b6b05
docs(cua_s1): describe ordered text Graph cache accurately
Levius-Fubuki Oct 9, 2026
280076b
Merge corrected Decider Graph with both prefix continuation interfaces
Levius-Fubuki Oct 9, 2026
e1b4720
Merge corrected CUDA Graph documentation into shared prefixes
Levius-Fubuki Oct 9, 2026
87c8994
Merge deterministic retirement checks into Decider Graph
Levius-Fubuki Oct 9, 2026
4a557ae
test(decider): retain explicit Graph retirement coverage
Levius-Fubuki Oct 9, 2026
6405f14
Merge commit '4a557ae45e9f0c2c4d0fac96540f4bb411a1800d' into codex/pr…
Levius-Fubuki Oct 9, 2026
c5d6691
test(decider): retain explicit prefix retirement coverage
Levius-Fubuki Oct 9, 2026
ba806ad
Merge repaired Decider packing parent and pin Graph fallback control
Levius-Fubuki Oct 10, 2026
2df05d1
Merge repaired Decider Graph parent and preserve prefix corpus valida…
Levius-Fubuki Oct 10, 2026
47e000b
Consolidate Decider on canonical Qwen prefix state and ABI7
Levius-Fubuki Oct 10, 2026
0919a74
Merge updated Decider batching and main into CUDA graph
Levius-Fubuki Oct 10, 2026
e80438a
Merge updated Decider graph and main into shared prefix
Levius-Fubuki Oct 10, 2026
f17ac9a
Merge verified Decider batching integration into graph replay
Levius-Fubuki Oct 12, 2026
34d25af
Merge Decider graph integration and align the Qwen ABI manifest
Levius-Fubuki Oct 12, 2026
7f9df85
Merge main and reconcile text and multimodal graph lifetimes
Levius-Fubuki Oct 13, 2026
e5b16b7
Merge commit 'b1079bc8936a07b4fe5288a58ba0b54e4056052d' into HEAD
Levius-Fubuki Oct 13, 2026
4c7d437
Merge current Decider graph integration into shared prefixes
Levius-Fubuki Oct 13, 2026
e790c3c
Document current Decider ABI 7 device qualification
Levius-Fubuki Oct 13, 2026
03bbb61
Merge current main after Decider batching landed
Levius-Fubuki Oct 15, 2026
a631b8b
Merge current Graph prerequisite and document fixed-mode device rollo…
Levius-Fubuki Oct 15, 2026
3de420c
Merge current main while preserving Decider Graph and model stream ow…
Levius-Fubuki Oct 22, 2026
1f25992
Merge current Graph prerequisite into Decider shared-prefix execution
Levius-Fubuki Oct 22, 2026
5e340ca
test(cua-s1): prevent concurrent export fixture directory collisions
Levius-Fubuki Oct 22, 2026
3a289bd
Merge remote-tracking branch 'origin/main' into codex/pr112-main-2026…
Levius-Fubuki Oct 23, 2026
267614b
Merge current main and maintained Graph integration into Decider pref…
Levius-Fubuki Oct 23, 2026
782db6f
Merge latest shared-prefix executor while preserving Decider Graph ow…
Levius-Fubuki Oct 23, 2026
b3cd06a
Align profile rejection regression and Graph recipe with canonical ex…
Levius-Fubuki Oct 23, 2026
f285b80
Merge main and retain Graph, prefix and image decoding tests
Levius-Fubuki Oct 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ pinned runtime for text, image and video state:
| Model | Status |
| --- | --- |
| LAYA | [External worker](recipe/laya/README.md); [Python worker on Apple Silicon (MPS) and CPU](recipe/laya/apple-silicon.md); [CPU checkpoint reader](src/models/laya/README.md); [native Rust/CUDA worker on Hopper](recipe/laya/native/README.md) |
| Decider-2B v11 | [Native Rust/CUDA text worker](recipe/decider/README.md); Choice/Noul/isolated Score; opt-in batching, Graph and request-local prefixes; [validation scope](recipe/decider/validation.md) |
| Cua-S1 4B 0.2 (`text` adapter) | [Python worker](recipe/cua_s1/text.md); [native worker](recipe/cua_s1/native.md), CUDA; unmerged profile validated on the cumulative A800 sm_80 build, earlier merged path on sm_89 |
| Cua-S1 4B 0.2 (`multimodal` adapter) | [Python CUDA reference](src/frontend/cua_s1.py) and [native Rust/CUDA screenshot worker](recipe/cua_s1/native_screenshot.md); one PNG/JPEG image, `choice`; scoped RTX 4090 validation |
| JEMM (Qwen3.8-27B) | [Native Rust/CUDA worker](recipe/jemm/README.md); [text and 1–4-image frozen-corpus parity on A800](src/models/jemm/README.md#validation) |
Expand Down
20 changes: 13 additions & 7 deletions docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,16 @@ design. Concrete input/output types follow each executor's supported layout.
## Implementation status

The [Rust frontend](../src/frontend/README.md) currently forwards HTTP requests
to separately running workers. Cua-S1 and Open-Jev have native Rust/CUDA workers
to separately running workers. Cua-S1, Open-Jev and Decider have native Rust/CUDA workers
that share the [Qwen3.5/3.8 executor](../src/models/qwen3_5/native/), which accepts
single prompts and bounded packed prefill. Cua-S1 and Open-Jev-9B use
single-prompt calls; Open-Jev-27B-v1.1 packs candidates within one request for
input and gate/up GEMMs while preserving per-sequence mixers and output/down GEMM
shapes. The executor can also run prompts that share token prefixes, each prefix
once (below); no worker uses that yet.
shapes. Decider optionally packs up to four complete rows and 4096 tokens within
one request, or selects request-local shared prefixes through the same canonical
continuation path used by JEV-VL (below). Both optimizations default off.
[Laya's native worker](../src/models/laya/README.md)
uses a separate Hopper CUDA backend for one complete padded request. All three
uses a separate Hopper CUDA backend for one complete padded request. These workers
coordinate independent processors and executors through
`prepare` → `execute` → `finish` and use the
[native runtime](../src/runtime/README.md) for FIFO admission and blocking dispatch
Expand All @@ -28,7 +29,9 @@ FP32 adapters and framework-reference arithmetic. It computes selected BF16
label-head logits on CUDA, then calibrates typed answers on the CPU. JEMM admits
one complete text or 1–4-image request and synchronizes both model streams before
releasing its resources. See its [model contract](../src/models/jemm/README.md).
Laya computes its scorer and action head on CUDA. Its fixed-shape
Decider projects selected tied-embedding rows on CUDA with BF16 output rounding
before FP32 calibration and CPU response assembly. Laya computes its scorer and
action head on CUDA. Its fixed-shape
Graph captures Encoder/Decision; gather, scorer/action head and synchronized
readback remain outside capture. Native Metal remains planned; Python workers
retain their documented reference/serving roles.
Expand Down Expand Up @@ -63,6 +66,7 @@ and candidate identity, usage, and response metadata outside the executor.
| --- | --- | --- | --- |
| Cua-S1 | One unpadded token-ID vector and option count per question, in request order. | One FP32 answer-letter logit vector per question. | Per-question softmax, choice/confidence, ordered answers, and token usage. |
| Open-Jev | Token-ID vectors grouped by question, then independent candidate, in request order. | One FP32 learned scalar per candidate in the same grouping. | Add the `noul` false logit of zero, calibrate across each complete question, and restore typed answers, usage, and metadata. |
| Decider | Complete independent token-ID rows in question order; Score expands one no/yes row per level. | One BF16-projection-rounded FP32 selected-label logit vector per row. | Per-type calibration, whole-Score normalization, ordered typed answers and unique-prefix token usage. |
| Laya | One padded request: token IDs, true lengths, question types and ordered option markers; at most 16 questions, 512 tokens per row and 2048 markers. | Per-question FP32 option logits and two action logits copied back after GPU heads. | Calibrate and decode ordered `choice`, `score` and `noul` answers, usage and metadata. |
| JEMM | Ordered token IDs, three-axis positions, candidate counts and optional shared image patches for one complete request. | Per-question selected BF16 label logits copied back as FP32. | Apply checksum-covered text/image calibration and reconstruct ordered `choice`, `score` and `noul` answers and usage. |

Expand All @@ -72,9 +76,11 @@ Open-Jev's model-specific batch adapter packs up to 16 independent candidates an
execute alone. It restores question/candidate grouping before normalization.
Laya batches questions within one request. Shared runtime
admission precedes blocking dispatch: Cua-S1 admits one question forward at a
time; Open-Jev and Laya admit one complete request. Cua-S1's CPU letter projection
time; Open-Jev, Decider and Laya admit one complete request. Cua-S1's CPU letter projection
stays outside admission; Open-Jev's scalar heads and Laya's GPU heads and
synchronized readback remain inside their request unit. Qwen model mutexes guard
synchronized readback remain inside their request unit. Decider includes every
backbone row and CUDA head projection, synchronizes both streams and retires
failed state before releasing admission. Qwen model mutexes guard
mutable state. Laya's dedicated owning thread confines its non-Send CUDA state
and receives admitted work over a rendezvous channel. Cancellation after
dispatch retains the scheduler permit until execution completes. Laya
Expand Down
1 change: 1 addition & 0 deletions docs/supported-models.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Models that are being added are also tracked in issues labeled [new model](https
| Valen-Preview-0923 | [Python reference worker](../recipe/valen/reference.md); text state or one inline PNG/JPEG image; `choice` questions | Not supported | Author-run on RTX 5060 Laptop (sm_120, WSL2): one text and one 2×2 PNG request; input and readout parity ≤1e-6 against reference (model outputs not compared). Owner: community. | Not supported | Python 3.12, pinned Valen source/checkpoint, Qwen3.5-2B base, BF16 CUDA |
| Open-Jev-27B-v1.1 | [Native Rust/CUDA worker](../recipe/open_jev/native.md) on the shared Qwen3.5/3.8 executor | Not supported | Validated on H200 (sm_90) for the [74 single-candidate workload](../recipe/open_jev/validation.md) | Not supported | Compute capability 8.0 or newer, CUDA toolkit to build, exported merged weights and trained head |
| Open-Jev-9B | The same [native Rust/CUDA worker](../recipe/open_jev/native.md) | Not supported | Validated on compute capability 8.9 against the reference for [253 requests](../recipe/open_jev/validation-9b.md) | Not supported | Compute capability 8.0 or newer, CUDA toolkit to build, exported merged weights and trained head |
| Decider-2B v11 | [Native Rust/CUDA worker](../recipe/decider/README.md) | Contract checks only; no CPU inference | RTX 4090 (`sm_89`) synthetic parity corpus; [limits and provenance](../recipe/decider/validation.md) | Not supported | Pinned original BF16 checkpoint; ABI 9 library and consumers rebuilt together |
| JEMM / Qwen3.8-27B | [Native Rust/CUDA worker](../recipe/jemm/README.md) | Host checks only; no CPU inference | A800 (`sm_80`) [text and 1–4-image frozen corpus](../src/models/jemm/README.md#validation) | Not supported | Pinned `jemm-native/2` export with BF16 base and unmerged FP32 LoRA, selected untied LM head, cuDNN 9 and additive reference CUDA symbols |
| autotrust/JEV-27B-VL | [Experimental native worker](../recipe/jev_vl/README.md), single-question API | Contract tests only; no CPU inference | H800 frozen-corpus check; [experimental scope and limits](../recipe/jev_vl/validation.md) | Not supported | Pinned merged checkpoint, rebuilt ABI 9 CUDA library; image inputs require offline Transformers preencoding |
| CLM-v0.1-8B | [External `clm-serve` recipe](../recipe/clm/README.md) with a CPU stub embeddings server | **Stub-encoder contract checks only** ([#23](https://github.com/ThinkFlowLab/system1-omni/pull/23)); not real Qwen3-8B decisions | Real encoder unverified by the merged recipe | Unverified | Python, upstream CLM and head checkpoint; a real encoder requires a separate embeddings server |
Expand Down
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ nav:
- Open-Jev native text worker: recipe/open_jev/native.md
- Open-Jev-27B H200 validation: recipe/open_jev/validation.md
- Open-Jev-9B validation: recipe/open_jev/validation-9b.md
- Decider native text worker: recipe/decider/README.md
- Decider validation: recipe/decider/validation.md
- JEMM native worker: recipe/jemm/README.md
- JEV-27B-VL experimental worker: recipe/jev_vl/README.md
- JEV-27B-VL validation status: recipe/jev_vl/validation.md
Expand Down
2 changes: 2 additions & 0 deletions recipe/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ For a first real decision, follow the [complete CPU walkthrough](../docs/getting
backbone and trained decision head of Open-Jev-27B-v1.1 or Open-Jev-9B, then
serve with Rust and CUDA. [Open-Jev-9B validation](open_jev/validation-9b.md)
compares the 9B worker with the reference.
- [Decider-2B v11 native worker](decider/README.md): pinned BF16 text decisions,
optional request-local batching, Graph and prefix reuse; [validation](decider/validation.md).
- [JEMM native worker](jemm/README.md): pinned text/image decisions and export;
known multi-image numerical limitation is documented in the model contract.
- [JEV-27B-VL experimental worker](jev_vl/README.md): native text and preencoded
Expand Down
Loading
Loading