localairecipes launch configs for local inference

Qwen3.8-27B AWQ-INT4 + DSpark on RTX 3090s — SGLang TP1/TP2/TP4

00 upvotes — sign in to vote sign in to vote

community Community submission — verify on your own hardware.

recipe by sybil-solutions / 0xSero (SGLang presets, image build, benchmarks)↗, cyankiwi (AWQ-INT4 W4A16 checkpoint)↗, RadixArk (DSpark speculative drafter)↗ · listed by localai-recipes

revision r2 · commit 26a1363966 · updated 10 d ago · license CC-BY-4.0

chat code vision awq dspark speculative multi-gpu

Validated SGLang serving for the dense Qwen3.8-27B hybrid GDN vision-language model (48 Gated-DeltaNet + 16 gated-attention layers) on RTX 3090 24 GB: one digest-pinned container whose TP env selects tuned 1x/2x/4x presets. AWQ-INT4 W4A16 (Marlin) beats FP8 on Ampere; DSpark speculative decoding (RadixArk 1.36B draft) on 2x/4x with auto-fallback on TP1. Image input everywhere, video on 2x/4x. Author-measured: 136.8 tok/s decode at 8k on 4x (169.8 aggregate at C8), 112.9 on 2x, 43.2 on 1x; up to 128k context on 4x.

Launch command

docker run -d --name qwen38-3090 --gpus all --shm-size 32g -p 8000:8000 -v '$PWD/models:/models' -e TP=4 ghcr.io/0xsero/qwen38-3090-sglang@sha256:cc2bfc369c709c53d239ef2af41d4ae2530904975816bb2ca484188008586ac9

runtime

env: 'TP=1|2|4 (tensor parallel preset, default 1) | DSPARK=1|0 (default 1; entrypoint auto-disables on TP1 — draft+target=21.7 GB leaves <1 GB KV on one 24 GB card) | PORT=8000 | MODELS_DIR=/models | weights download pinned revisions cyankiwi/Qwen3.8-27B-AWQ-INT4@63768c1 + RadixArk/Qwen3.8-27B-DSpark@85ef153 into /models, trusted only after the entrypoint records the exact downloaded revision'
notes: 'docker/entrypoint.sh @ 13f8f42 resolves the server argv internally: python3 -m sglang.launch_server --model-path /models/Qwen3.8-27B-AWQ-INT4 --tp {TP} --chunked-prefill-size 4096 --mamba-radix-cache-strategy extra_buffer plus per-preset flags — TP1+DSpark: --mem-fraction-static 0.92 --max-mamba-cache-size 4 --disable-prefill-cuda-graph --cuda-graph-max-bs 4 | TP1 plain: 0.92 / 8 / bs 8 | TP2+DSpark: 0.85 / 16 / bs 16 | TP2 plain: 0.85 / 32 / bs 16 | TP4+DSpark: --mem-fraction-static 0.72 (full graphs) | TP4 plain: 0.80; DSpark adds --speculative-algorithm DSPARK --speculative-draft-model-path /models/Qwen3.8-27B-DSpark --speculative-dspark-block-size 7 --speculative-draft-model-quantization unquant. --mamba-radix-cache-strategy extra_buffer is REQUIRED for the hybrid GDN arch (wrong strategies deadlock CUDA graph capture); the mamba state pool sizes concurrency (TP4 max 9 concurrent despite the 275,018-token KV pool; TP2 48). Max context: 8k (TP1) / 64k (TP2) / 128k (TP4). TP1 DSpark possible but impractical (KV ~1 GB). Entry-point preset logic is CI-tested (test/entrypoint-test.sh).'

Use this recipe with your agent

Paste this into any agent chat — it fetches and applies the recipe:

Fetch https://localairecipes.com/api/v1/recipes/qwen3-8-27b-awq-int4-dspark-on-rtx-3090s-sglang-tp1-tp2-tp4.json and apply the inference recipe it describes (engine flags, model, quant, context) to my setup. Ask before overwriting any existing config.

Or fetch it directly:

curl -fsSL https://localairecipes.com/api/v1/recipes/qwen3-8-27b-awq-int4-dspark-on-rtx-3090s-sglang-tp1-tp2-tp4.json

Engine

Install note: Digest-pinned image, installable as-is (README: built from source commit 55ab5b9): needs docker + NVIDIA container toolkit and ~26 GB free where /models is mounted (first-run download ~23 GB target + 2.6 GB draft; first boot ~5 min kernel JIT). Pinned stack: sglang git 2e7c85da6, torch 2.13.0+cu130, triton 3.7.1, flashinfer 0.6.17 (cccl guard patched for nvcc 13.3.73), uv + ubuntu:24.04 digest-pinned. TP1/TP2 disable prefill CUDA graphs and cap --cuda-graph-max-bs (capture OOM); TP4 runs full graphs. DSpark auto-disabled on TP=1.

Model

Performance

Speed by context

ContextConc.PrefillDecodeTTFT
8,19211580.8 tok/s136.8 tok/s5530 msreported
8,19221495.2 tok/s103.8 tok/s5850 msreported
8,19241353.6 tok/s80.5 tok/s6460 msreported
8,19281130 tok/s60.5 tok/s7740 msreported
16,38411615.8 tok/s129.4 tok/s10770 msreported
16,38421455.1 tok/s97.1 tok/s11960 msreported
16,38441368.5 tok/s66.9 tok/s12710 msreported
16,38481141.7 tok/s45.6 tok/s15240 msreported
32,76811576.5 tok/s127.1 tok/s22000 msreported
32,76821494.4 tok/s93.4 tok/s23210 msreported
32,76841358 tok/s59.6 tok/s25540 msreported
32,76881300.1 tok/s39.2 tok/s26680 msreported
65,53611494.9 tok/s113.9 tok/s46340 msreported
65,53621426.2 tok/s100.6 tok/s48570 msreported
65,53641376.7 tok/s55 tok/s50320 msreported
65,53681368.7 tok/s38 tok/s50610 msreported
131,07211400.2 tok/s105 tok/s98880 msreported
131,07221356.1 tok/s74.2 tok/s102090 msreported
131,07241337.9 tok/s47 tok/s103480 msreported
131,07281337.9 tok/s29.3 tok/s103480 msreported

prefill = prompt processing · decode = generation. All decode/prefill figures are shown as reported.

reported

notesAuthor-measured tables transcribed from qwen3.8/3090-sglang/benchmarks/tp{1,2,4}-results.json @ 13f8f42 (RTX 3090 24 GB each, PCIe 3.0 x16, no NVLink, driver 610.x, CUDA 13 runtime). Coding-flavored prompts with unique nonce (radix-cache defeated), deterministic decoding, 256-token measurement horizon, streaming usage; decode = aggregate tok/s across concurrent streams. TP1 rows beyond 8k and TP2 128k rows truncated (KV pool 14,775 / 118,693 < prompt) and omitted. DSpark accept length 2.8-4.1 on greedy coding content (AWQ target), ~1.7 on sampled prose. Prefill sustains 1.3-1.6k tok/s on TP2/TP4 across context lengths.

Install requirements

NVIDIA driver floor: unknown - check the image tag

Source: NVIDIA CUDA Toolkit Release Notes - driver compatibility tables (https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/, fetched 2026-10-03).

Map the placeholders to your rig

Downloads

Revision notes

Ingested by localai-recipes from sybil-solutions/qwen-serve @ 13f8f426e6c7e7de7b141a7e7b060828a660087d (2026-10-12): launch argv transcribed verbatim from qwen3.8/3090-sglang/entrypoint.sh, benchmark rows transcribed from benchmarks/tp{1,2,4}-results.json, image digest + model/drafter revisions from the README + entrypoint pins; W4A16 group-32 quant config verified from the checkpoint config.json at the pinned revision. The submission draft guessed Qwen/Qwen3.8-27B-Instruct-AWQ — corrected at ingest to the recipe's actual checkpoint cyankiwi/Qwen3.8-27B-AWQ-INT4. The ghcr image is published under the 0xSero account (repo org sybil-solutions). Repo also carries qwen3.6/b70 + qwen3.8/b70 (Arc B70) lanes — future candidates, out of scope here.

Revision history

Fork

Sign in to fork this recipe — a fork is your own copy; you own it and only you can update it.

Export

recipe.yaml (raw)