Repository navigation
bloomery 0.3.6 answers structured requests with schemajump: the fixed parts of a JSON answer are fed in one
step, not decoded token by token. It also serves /v1/systemone on every generative seat, in the same body as
the Clef seat, and it runs Solar-Open2 with its experts on the card and the host.
Install
Linux x86-64 with AVX2 (glibc 2.34+), an NVIDIA GPU of compute capability 8.6+ and driver R580 or newer (CUDA 13).
On Windows, run inside WSL2. Docker and Homebrew as in the README.
curl -fsSL https://raw.githubusercontent.com/midagedev/bloomery/main/tools/release/install.sh | sh
bloomery-serve -m PATH/Qwen3.6-35B-A3B-Q4_K_M.gguf --port 8080A SystemOne request to the generative seat, the same body as Clef-Flash's (docs/serving.md):
curl -s http://127.0.0.1:8080/v1/systemone -d '{"state": "User: what is the weather in Seoul tomorrow? Tools available: web_search, calculator.",
"questions": {"tool": {"type": "choice", "instructions": "Which tool should the agent call next?",
"criteria": {"web_search": "Look something up online", "calculator": "Do arithmetic", "none": "Answer directly"}}}}'New
- schemajump (#535, #547). Under a
json_schemaresponse format, the server feeds each run of ids the schema
fixes as one prefill call. The opening of the answer rides in the prompt call. The turn ends at the last pick, with
no decode step for the closing text. With Qwen3.6-35B-A3B Q4_K_M on the RTX A6000, a SystemOne request's
complete-answer time (short prompts, p50) is 99.9 ms with schemajump against 169.1 ms token by token: −40.95 %
± 0.76 % over 4 paired rounds. Both arms write the same text, finish and usage on all 27 requests. On DeepSeek V4.1 Flash 1017 Q3_K_M (RTX 3090 +
RTX A6000, the hard suite) the gain is −7.27 % ± 6.80 % over 5 rounds: there the prompt call takes most of the
wall. The answers are the same on both arms there too (12 of 12). POST /v1/systemoneon every generative seat (#547). The body has the same keys, types and order as the Clef
seat's. A choice question whose options start with the same token is asked by single-token labels, and the answer
names the original option ids.- Solar-Open2 (#548): plan a puts 4,679 experts on the RTX A6000 and the rest on the host. Its tool calls use
the Solar spelling, and<|im:end|>ends a turn. On one RTX 3090, the plan puts 1,929 experts (17.07 GB) on the
card and 13,431 (129.2 GB) on the host, at ctx 8192. From this release's tarball on one RTX 3090 (250 W), at the
serving defaults: a short chat's first token in 376 ms and decode at 26.4 tok/s; a 4,560-token prompt at 293 tok/s
prefill (first token 15.6 s) and decode at 25.7 tok/s. Tapes:
short chat,
4.5K prompt. - Nemotron 3.5 Bolt loads placed (experts on the card and a host leg) when the whole model does not fit the card
(#546, by @juliankang4). - MiniMax-M3's model side (#526).
- Weights and checkpoints, by @juliankang4: MXFP8 weights (#521); a routed NVFP4 stack on the card (#517); ModelOpt
NVFP4 shards open (#489); a GGUF split prepared from a ModelOpt Qwen3.8 checkpoint (#540); Qwen3.8's PLE table in
F8_E4M3 rows (#490). - Multi-card and multi-node, by @juliankang4:
--place tpplans GLM-5.3-Flash's Hugging Face checkpoint (#519); a
tier card on another host (#503); the link's all-gather of f32 row spans (#501). - Video input: one planner and an ffmpeg decoder for every model (#498). Bolt's RADIO vision tower (#497).
Fixed
- Misaligned vector views are refused at launch (#520, by @juliankang4). Windows over raw memory give back their
context handle (#513, by @juliankang4). The vision gates refuse a reference set without its full-tap image (#515,
by @juliankang4). - Developer tooling and gates: see the merged pull requests since v0.3.5.
Known limits
gate-qdot's IQ4_XS clause is red by 5 ULP. The engine follows ik's IQ4_XS fix (ik PR 2664), and the box's ik
reference build predates it. The IQ4_XS code is unchanged in this release.- Solar-Open2: on one prompt of the e2e set, the log-probability gap against the reference is 1.36. That is inside
the gate's band (bound 3.97). It comes from the 64 experts the reserve moves to the host. - From 0.3.5: V4.1 on two cards (
--place bp) is not faster than one card. From 0.3.4: Bolt needs a 24 GB card and
refuses--place bp.
Checked before the tag
Release head a0288c5c0 (585709193 and the README status). The landing batch ran the gates just affected selects on the fixture tier: 4 red, each
named here. gate-qdot's IQ4_XS clause is the known limit above. gate-arch-registry, gate-ops (one Solar
coverage test) and gate-solar-open2-meta (a model file not yet moved into place) were fixed by the commits after
the batch and ran green on the release commit. The Solar-Open2 gates (prefill, e2e, serve) and Nemotron-H MoE serve ran green on the real model files,
and Solar's e2e gate gives the same values on the RTX 3090 as on the RTX A6000. The release builds from this commit;
a defect found after the tag is fixed in place, with the notes and assets replaced.
Thanks
- @juliankang4 for Bolt's placed load, the MXFP8 and NVFP4 weights, the ModelOpt checkpoints,
--place tp, the remote
tier card, the link all-gather and the launch checks, and for reporting #458, #284 and #52. - @Burntgogi for reporting #87.