Instructions to use jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0 # Run inference directly in the terminal: llama cli -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0 # Run inference directly in the terminal: llama cli -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
Use Docker
docker model run hf.co/jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
- LM Studio
- Jan
- vLLM
How to use jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
- Ollama
How to use jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 with Ollama:
ollama run hf.co/jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
- Unsloth Desktop
- Pi
How to use jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 with Docker Model Runner:
docker model run hf.co/jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
- Lemonade
How to use jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
Run and chat with the model
lemonade run user.Qwen3.8-Flash-CIRU-STRIX-IU4-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Configure the model in Pi
# Install Pi:
npm install -g @earendil-works/pi-coding-agent# Add to ~/.pi/agent/models.json:
{
"providers": {
"llama-cpp": {
"baseUrl": "http://localhost:8080/v1",
"api": "openai-completions",
"apiKey": "none",
"models": [
{
"id": "jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0"
}
]
}
}
}Run Pi
# Start Pi in your project directory:
piQwen3.8-Flash-CIRU-STRIX-IU4 · runtime v3.0.0
V3 brings faster long-context serving and the qualified QSA conversation-isolation fixes to the Strix-only runner. Model weights are unchanged. It adds parallel attention-cell selection, indexed decode attention, cached derived history, guarded PLE lookups and wider prefill. The general profile retains maximum MTP depth 6 and batch/microbatch 1024.
Use the v3 source archive or matching GitHub tag. This package supports optional image input with the projector and --vision launcher below, and requires the custom CIRU runtime, the target GGUF and all three ple/ files. The mtp/ head enables speculative decoding. Stock llama.cpp and Hugging Face hosted inference do not support this package.
V3 serving comparison
Measured on one Ryzen AI Max+ 395 / gfx1151 / 128 GB shared-memory NixOS machine, with one model workload at a time. Inputs are identical token IDs, cold prompt cache, 128 generated tokens, one slot and 262,144-token configured capacity. Nonthinking sampler: temperature 0.7, top-p 0.8, top-k 20, min-p 0, presence penalty 1.5, repeat penalty 1, frequency penalty 0 and seed 123. EOS is honored.
| Input tokens | Profile | Prompt tok/s | Generation tok/s | First streamed piece (s) | Whole request (s) |
|---|---|---|---|---|---|
| 4,096 | Previous CIRU | 392.00 | 22.52 | 10.70 | 16.34 |
| 4,096 | CIRU v3 | 455.65 | 24.60 | 9.25 | 14.41 |
| 4,096 | Halo | 381.49 | 35.30 | 11.09 | 14.69 |
| 65,536 | Previous CIRU | 284.49 | 13.33 | 230.46 | 239.99 |
| 65,536 | CIRU v3 | 369.81 | 24.22 | 177.32 | 182.57 |
| 65,536 | Halo | 263.42 | 23.28 | 248.91 | 254.37 |
Versus the previous CIRU profile, v3 reduces whole-request time by 11.80% at 4K and 23.93% at 64K. At 64K, prompt throughput improves 29.99% and generation throughput 81.66%. These are separate metrics; the first-piece times above are the first streamed content-field event.
MTP 2 is a useful optional setting for the tested lower-acceptance long requests, but it was not promoted as the general default. Across 20 short HumanEval requests, v3 MTP 6 measured 53.24 generation tok/s versus 39.63 with MTP 2. Both passed 20/20 base and extended tests. Keeping MTP 6 avoids that short-coding regression; target verification retains the full vocabulary at either depth.
| Input tokens | Optional v3 MTP 2 prompt tok/s | Generation tok/s | Whole request (s) |
|---|---|---|---|
| 4,096 | 453.09 | 29.39 | 13.62 |
| 65,536 | 373.08 | 24.88 | 180.87 |
The previous CIRU arm is the locally qualified v2.0.1 runner under its original MTP 6, b2048/u512 profile. The v3 arm uses the same weights and MTP 6, with b1024/u1024. Halo is the unmodified current fork at commit 5f851647fe5ed795dfd6c0a3fba543114879e874, using its recommended Vulkan backend, Unsloth UD-Q4_K_XL target and published EasiiX Strix Q8 MTP head. Native KV, batch, thread, fitting and cache defaults are retained.
Halo maximum depths 2, 3, 4, 6 and native adaptive 6 were screened. Depth 3 won its short-context screen at 35.37 tok/s, versus 31.4 at depth 2, 30.04 at depth 4, 25.91 at depth 6 and 29.31 with adaptive 6. The final comparison above uses depth 3. Halo source and weights were not modified.
CIRU and Halo have different quantizations and execution profiles: this is a serving-package comparison. Generation throughput, prompt processing and whole-request latency are separate metrics. At 4K, the general MTP 6 profile is close to Halo in total time; the optional MTP 2 setting provides the clearer latency benefit on this fixture. Long-context prompt processing shows the larger gain. The tables retain Halo's generation advantage where present; a CIRU request-time win is not a claim of winning every metric. Three clean v3 loads, two selected Halo loads and one previous-CIRU load are a bounded experiment, not a confidence interval or general ranking.
The 2.79 GB Unsloth shared Q8 head intentionally omits tensors a supporting loader borrows from the main model. The pinned Halo loader fails for missing token_embd.weight; Unsloth's self-contained Q8 head also fails for missing output_hc_norm.weight. Both attempts are recorded. The compatible EasiiX Strix Q8 head is used as published.
Full report, first-piece latency and memory · Structured results · Raw evidence archive
Quality and capacity checks
| Profile | HumanEval base | EvalPlus extended tests | Recall at about 8K and 64K |
|---|---|---|---|
| Previous CIRU | 20/20 | 20/20 | Both keys and exact cached replay |
| CIRU v3 | 20/20 | 20/20 | Both keys and exact cached replay |
| Halo | 20/20 | 20/20 | Both keys and exact cached replay |
These are canonical HumanEval tasks 0–19, EvalPlus v0.1.10, one first sample per task, no retries and a 4096-token cap; truncations fail. Generated code runs inside a filesystem/network sandbox. This small nonthinking coding and recall panel is a regression check. It does not establish broad model equality, thinking-mode quality, tool reliability or leaderboard standing.
V3 also completed 261,888 input tokens plus 128 generated tokens at 257.44 prompt tok/s and 18.00 generation tok/s, with a 1024.44 s whole request. This is a CIRU-only serving-capacity check, not a filled-256K Halo comparison or full-context accuracy result.
The final inference source passes 69 QSA mapping/state/guard cases with flags on and off, 33 actual ROCm operator reference cases and the existing 30 batch allocator tests. A separate short four-prefix diagnostic matches 15,892,480 F32 logits byte-for-byte against the previous runner. Radix selection can change threshold-tie membership and selected-list order; general bitwise equivalence is not claimed.
Additional task benchmarks · 9 September 2026
The post-release Ornith difficulty panel measures complete task execution, including tool work, scoring and harness overhead. All arms ran sequentially on the same Ciru machine using one server slot: previous CIRU v2.0.1 and v3 use MTP6; the unchanged Halo Vulkan arm uses MTP3. These are the same serving profiles described above.
| Benchmark stage | Previous CIRU | CIRU v3 | Halo MTP3 |
|---|---|---|---|
| Complete mixed panel, after readiness | 29m 17.11s | 25m 18.32s | 24m 34.43s |
| Additional model load | 31.17s | 31.15s | 33.62s |
| Short scored stage | 5m 20.33s | 5m 20.85s | 4m 35.60s |
| Hermes, two rounds combined | 12m 28.01s | 11m 37.57s | 10m 08.12s |
| Shared 63K-token history seeding | 3m 26.33s | 2m 42.80s | 3m 21.00s |
| Long hard stage, history already loaded | 4m 43.92s | 2m 41.90s | 3m 22.96s |
| Total generated tokens | 33,294 | 33,451 | 31,058 |
V3 takes 13.59% less total time than previous CIRU, saving 3m 58.79s. Halo finishes 43.89s sooner than v3. Long hard-stage wall time falls 42.98% against previous CIRU; output lengths differ, so this is a workload result rather than an equal-output decode comparison. Short-stage time is effectively unchanged. Stage rows are components of the full panel; coding health checks and other overhead also contribute.
The panel includes 22 short academic tasks, six Hermes scenarios repeated twice, eight hard tasks returning to a shared long history, and 10 short / eight long coding health checks. Cases were selected from earlier Ornith disagreements and failures. They do not estimate general dataset accuracy or leaderboard performance.
| Profile | Short IFEval strict | Short GSM8K | Short HumanEval | Long IFEval strict | Long GSM8K | Long HumanEval |
|---|---|---|---|---|---|---|
| Previous CIRU | 5/8 | 8/8 | 5/6 | 2/2 | 2/2 | 2/4 |
| CIRU v3 | 5/8 | 8/8 | 5/6 | 2/2 | 2/2 | 2/4 |
| Halo MTP3 | 6/8 | 8/8 | 5/6 | 2/2 | 2/2 | 3/4 |
| Profile | Hermes native full passes | Native mean points / 100 | Reviewed end states |
|---|---|---|---|
| Previous CIRU | 7/12 | 80.83 | 11/12 |
| CIRU v3 | 11/12 | 95.83 | 12/12 |
| Halo MTP3 | 11/12 | 95.83 | 12/12 |
Native scores are retained. Reviewed end states separately account for demonstrated grader artifacts; previous CIRU and Halo each had a memory-case wording mismatch. All three arms passed the short 10-task and long eight-task coding health checks on base and extended tests. Two Hermes repetitions are a bounded comparison, not a reliable failure-rate estimate.
Short-task generation rates were 38.44 / 39.09 / 43.97 tok/s for previous CIRU / v3 / Halo. Long hard-stage generation rates were 21.75 / 35.93 / 31.25 tok/s. Native short tasks use temperature 0, seed 15035, nonthinking, a 32,768-token output allowance, first samples and no answer repair. Hermes uses temperature 0.6, top-p 0.95, top-k 20, thinking enabled and full remaining context. Long history seeding is timed separately. Interrupted or instrumented captures are excluded.
Full hard-panel report and case review · Measured results JSON · Wall times CSV · Interactive research page
Coding throughput and MTP depth
The separate 20-task HumanEval regression panel quantifies the high-acceptance coding workload. Every profile below passed 20/20 base and 20/20 extended tests. These are summed API request times, excluding grading overhead.
| Profile | Generated tokens | Prompt tok/s | Generation tok/s | Sum of request times |
|---|---|---|---|---|
| Previous CIRU MTP6 | 3,179 | 148.53 | 53.33 | 75.49s |
| CIRU v3 MTP6 | 3,179 | 219.51 | 53.24 | 70.67s |
| CIRU v3 MTP2 | 3,212 | 226.25 | 39.63 | 91.57s |
| Halo MTP3 | 3,241 | 176.10 | 49.48 | 79.15s |
Previous CIRU and v3 MTP6 produced identical token IDs on all 20 tasks. V3 reduces their summed request time by 6.39%, principally through prefill; decode throughput is effectively unchanged. Different output lengths are retained for MTP2 and Halo. This reinforces retaining MTP6 as the general profile while exposing MTP2 as a workload-specific option.
Historical full and sampled quality results
These results used the same released model artifacts on earlier runtimes. They are historical results, not full-suite v3 reruns; the new v3 checks are shown separately above.
| Benchmark | Historical score | Scope |
|---|---|---|
| HumanEval | 160/164 (97.56%) | Full local-custom chat run |
| HumanEval+ | 155/164 (94.51%) | Full 164-task EvalPlus extended tests |
| ARC-Challenge | 1,143/1,172 (97.53%) | Full EvalScope dataset |
| GPQA-Diamond | 46/50 (92.0%) | Sampled subset |
| MMLU-Pro | 61/70 (87.14%) | Five questions per subject |
| GSM8K | 97/100 (97.0%) | Sampled subset |
| IFEval prompt strict | 92/100 (92.0%) | Sampled subset |
| ToolEval Standard | 115/138 points (83.33%) | 69 local-custom cases |
| ToolEval Hard | 23/30 points (76.67%) | 15 local-custom cases |
Recorded EvalScope wall time
The completed 29 August H96 / MTP1 run used one request at a time and uncapped natural-EOS generation. The table records stage start/end intervals for 1,492 items, excluding setup and earlier failed attempts.
| Dataset | Items | Wall time |
|---|---|---|
| ARC-Challenge | 1,172 | 24m 42s |
| GPQA-Diamond | 50 | 1h 33m 21s |
| MMLU-Pro | 70 | 36m 37s |
| GSM8K | 100 | 20m 19s |
| IFEval | 100 | 22m 50s |
| Quality suite total | 1,492 | 3h 17m 50s |
Including the separate performance probe, the run took 3h 20m 46s. This is a different workload from the 25-minute v3 mixed panel. No measured full EvalScope wall time is available for v3. Timestamp-derived records · Historical quality methodology
Download, build and run
The unchanged model files total 135,962,881,135 bytes (126.625 GiB), excluding runtime, reports, and the optional 904,004,320-byte (0.842 GiB) vision projector. The target is 73.945 GiB, the PLE payload 48.828 GiB and the Q8 MTP head 3.852 GiB. Allow at least 160 GiB for model storage/verification plus SDK and build space. Use fast NVMe and a Strix Halo machine with 128 GiB unified memory.
On Ubuntu/Debian, install Git and a Python virtual environment, then download the model and build the source:
sudo apt-get update
sudo apt-get install -y git python3-venv
python3 -m venv .venv-hf
.venv-hf/bin/python -m pip install -U huggingface_hub
. .venv-hf/bin/activate
hf download jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 \
--revision v3.0.0 --local-dir ./model
(cd model && sha256sum -c checksums.sha256 && sha256sum -c v3.0.0-checksums.sha256)
git clone --branch v3.0.0 --single-branch \
https://github.com/ciru-ai/Qwen3.8-Flash-CIRU-STRIX-IU4.git ciru-runtime-v3.0.0
cd ciru-runtime-v3.0.0
./scripts/ciru/setup-linux-amd.sh --install-host-deps
BUILD_DIR="$PWD/build-gfx1151-sdk" MODEL_DIR="$(realpath ../model)" \
./scripts/ciru/run-server.sh
The helper installs a private complete ROCm 10.0.0 SDK with gfx1151 libraries. Keep the SDK directory used by the build; the host needs a compatible AMD driver and access to /dev/kfd and its render node. New v3 GPU qualification is NixOS/ROCm 10/gfx1151. The prior clean Ubuntu qualification belongs to v2.0.1, so the Ubuntu instructions are retained build guidance, not a new v3 Ubuntu test result. See platform/build instructions.
Existing users can keep their model directory and clone/build only the new runtime. The source archive is equivalent to the Git tag including executable modes and symlinks. The optional tested NixOS binary payload requires the recorded Nix store and ROCm SDK paths; use the source build for another installation.
The launcher enables 262,144 context capacity, F16 target KV, Q8 draft KV, the 32,768-row draft shortlist, maximum MTP depth 6, b1024/u1024, eight CPU threads and prefix caching. MTP uses --parallel 1; multi-slot MTP is rejected before model load. For target-only parallel serving, set ENABLE_MTP=0 and follow the parallel instructions.
Confirm CIRU MTP shortlist enabled: 32768 / 248320 vocabulary rows; full target verification retained in the startup log. The shortlist limits draft projection; target verification retains the full vocabulary. MTP_DEPTH=2 selects the tested option for low-acceptance long requests; the screen does not establish the optimum for every prompt. New v3 optimization switches accept literal 0. The optional draft attention window remains off and is unqualified when enabled.
Thinking mode remains the model default: temperature 1.0, top-p 0.95, top-k 20, min-p 0. For the nonthinking mode evaluated here:
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3.8-Flash-CIRU-STRIX-IU4",
"messages": [{"role": "user", "content": "Write a Python CSV validator with tests."}],
"chat_template_kwargs": {"enable_thinking": false},
"temperature": 0.7, "top_p": 0.8, "top_k": 20,
"min_p": 0, "presence_penalty": 1.5, "cache_prompt": true
}'
These sampling defaults follow the Qwen model card. Ordinary chat can retain prefix caching; the benchmark's cold requests, fixed seed and output cap are measurement controls.
Enable vision
Vision files and the new model-folder launcher are published on main; the historical v3.0.0 tag remains unchanged. After following the build instructions above, return to the directory containing model/ and ciru-runtime-v3.0.0/, then download the additional files:
hf download jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4 \
--revision main run-server.sh 'vision/*' --local-dir ./model
(cd model/vision && sha256sum -c SHA256SUMS)
The launcher stays text-only by default. To accept images, add --vision:
RUNTIME_DIR="$PWD/ciru-runtime-v3.0.0" \
BUILD_DIR="$PWD/ciru-runtime-v3.0.0/build-gfx1151-sdk" \
bash ./model/run-server.sh --vision
ENABLE_VISION=1 is equivalent. The flag loads vision/mmproj-Qwen3.8-Flash-F16.mmproj; MMPROJ=/path/to/projector.mmproj overrides that path. The .mmproj file is a GGUF-format vision projector, with a filename extension chosen to keep Hub model-size detection focused on the language model. A missing projector produces a clear startup error. Direct runtime launches can pass --mmproj ./model/vision/mmproj-Qwen3.8-Flash-F16.mmproj alongside the normal model and PLE arguments.
Send an image through the server web UI or the OpenAI-compatible chat endpoint. For a local image:
python3 - <<'PYIMAGE'
import base64, json, urllib.request
from pathlib import Path
image = base64.b64encode(Path("image.png").read_bytes()).decode()
payload = {
"model": "Qwen3.8-Flash-CIRU-STRIX-IU4",
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Describe this image."},
{"type": "image_url", "image_url": {"url": "data:image/png;base64," + image}}
]}],
"chat_template_kwargs": {"enable_thinking": False},
"max_tokens": 512
}
request = urllib.request.Request(
"http://127.0.0.1:8080/v1/chat/completions",
data=json.dumps(payload).encode(),
headers={"Content-Type": "application/json"}
)
with urllib.request.urlopen(request, timeout=300) as response:
print(json.load(response)["choices"][0]["message"]["content"])
PYIMAGE
The projector was converted to F16 directly from the pinned original Qwen checkpoint using the CIRU v3 converter. It contains 334 tensors. Vision uses additional memory for the projector, image encoding, and image tokens; the text-only performance figures above do not measure vision. Projector provenance and validation.
DeepSeek harness configuration
When using this model through the DeepSeek harness, start the server with --vision and declare image input in the harness model configuration using input:
input:
- text
- image
Replace the model entry's inputModalities field with the input list above. This configuration was reported working by an Orca user of the DeepSeek harness; the same declaration is included here for this release's image-capable endpoint. Load the projector with --vision as well.
Image resolution budget
The v3 runtime defaults to a maximum of 4,096 visual tokens per image. Large images are resized to fit while preserving aspect ratio. Each separately submitted image or crop gets its own budget. To allow 8,192 tokens, append --image-max-tokens 8192 to the vision launch above. --image-min-tokens 1024 can also be tried for small-detail grounding. Higher budgets consume more memory and context and take longer to process; upscaling cannot recover missing detail. Any resizing performed by the harness before upload still applies.
What ships in v3
V3 combines the previously qualified QSA sequence isolation/indexer-copy fixes with the portable retained hybrid work: wider aligned QSA prefill, J32 expert tiling for supported prefill shapes, radix selection, indexed F16 attention, direct guarded PLE lookup, derived-history caching keyed by sequence and packed tiny F32 gathers. The F32 derived cache adds about 192 MiB at 256K. Hybrid external-GPU ownership, peer transfers, expert splitting, scheduler overlap and experimental compact masks are excluded.
The original READY package, source, evidence and checksum trees are included in the prior-package archive. Its v2.0.1 fixes ship as part of v3; no separate public v2.0.1 tag is claimed. Existing public v2.0 tags and weight identities remain unchanged. Historical v2.0 results remain available; their 42.3 tok/s short greedy probe and broader older quality suites are different workloads and were not rerun as full suites for v3.
The IU4 model name is retained. The target has 1,223 tensors: 144 Q4_1 routed-expert tensors, 328 Q5_K, 290 Q8_0, 48 Q5_1, 25 BF16 and 388 F32. The standard launcher uses ordinary GGUF types; its Q4_1 matrix path expands packed values into byte lanes for IU8 WMMA. It does not activate the separate native IU4/E3 bank path. The PLE payload preserves exact FP8 E4M3 weights with one BF16 scale.
Model file tree · Weight checksums · V3 runtime/report checksums · Source identity · GitHub release
Lineage, license and credit
Text lineage is Qwen/Qwen3.8-Flash-Next; PLE lineage is Qwen3.8-Flash-Next-FP8. Runtime lineage starts from ggml-org/llama.cpp. Model artifacts use the included Qwen Community License 1.0; runtime code retains MIT and component notices.
Credits include Qwen, ggml-org, Ryan Monsurate's MTP integration, AMD's ROCm ecosystem and the contributors in the source notices. Daniel Han's authorship of the imported QSA repair is preserved. Thanks to halo-box, EasiiX, Unsloth, Daniel Han Chen, Laurent Zuijdwijk and Agention AI for public models/runtimes, and the HumanEval and EvalPlus authors for evaluation tools. CIRU is an independent community research project; AMD and Qwen marks do not imply sponsorship.
- Downloads last month
- 33,510
8-bit

Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp# Start a local OpenAI-compatible server: llama serve -hf jcbtc/Qwen3.8-Flash-CIRU-STRIX-IU4:Q8_0