Browse by type
Speculative inference for heterogeneous machines and consumer GPUs.
Custom kernels, speculative prefill and decoding, tuned for each model and hardware target.
| Optimization | Measured setup | Result |
|---|---|---|
| DFlash2 | Qwen 3.8 27B on one R9700 | 208.1 tok/s average, 227.8 tok/s peak |
| DSpark | DeepSeek V4 on Strix Halo, native top-6 | 32.7 tok/s high-acceptance median; 27.9 tok/s mixed-eval average |
| PFlash + KVFlash | Laguna XS 2.1 33B at 256K on RTX 3090 | 6.1× prefill, 411 s to 67.3 s |
| Luce Spark | Laguna XS.2 33B on RTX 3090 | ~100 tok/s in 14.6 GiB |
| KVFlash | Laguna XS 2.1 33B at 256K on RTX 3090 | 152.3 tok/s with an 8K pool |
| Heterogeneous execution | DeepSeek V4 on R9700 + Strix Halo | 86 tok/s decode; 788 tok/s prefill at 2K |
| Paged attention | Qwen 3.6 27B concurrent serving | 1.35× attention step; 82% less KV memory |
| Megakernel | Qwen 3.5 0.8B on RTX 3090 | 413 tok/s, 1.87 tok/J |
Model links open the exact weights used by the measured setup. Drafter links open the published quant, or the source checkpoint when conversion is required.
| Model and optimization | Phase | Speedup |
|---|---|---|
| Qwen 3.5 0.8B BF16 + Megakernel | Prefill + decode | 1.9× prefill; 1.55× decode |
| Qwen 3.8 27B UD-IQ4_XS + DFlash2 source, converted to Q8_0, on R9700 | Decode | 6.4× vs Lucebox AR; 3.8× vs llama.cpp with the same drafter |
| Laguna XS 2.1 33B Q4_K_M + PFlash/KVFlash with Qwen3 0.6B Q8_0 | Prefill | 6.1×, 411 s to 67.3 s at 256K |
| Laguna XS 2.1 33B Q4_K_M + DFlash Q4 drafter | Decode | 1.7× at 256K |
| Gemma 4 26B-A4B Q4_K_M + DFlash Q8_0 drafter | Decode | 1.31× |
| Gemma 4 31B IT Q4_K_M + DFlash Q8_0 drafter | Decode | 3.2× |
| DeepSeek V4 Flash ROCmFPX MIX Strix + DSpark Q4RMFP4 drafter | Decode | Up to 1.81× vs target-only, 32.7 vs 18.1 tok/s |
| Ling 3.0 Flash 124B-A5.1B Q4_K_M | Decode | 34.6 tok/s median AR on DGX Spark |
The engine is not tied to one reference card. NVIDIA architectures are selected by CMake; HIP builds should target the device's exact gfx architecture.
| Architecture | Hardware | Runtime | Details | |
|---|---|---|---|---|
![]() |
RDNA4 gfx1201 |
Radeon AI PRO R9700 | ROCm 7.2 | Qwen 3.8 R9700 quick start |
![]() |
RDNA3.5 gfx1151 |
Ryzen AI MAX+ 395 / Strix Halo | ROCm 7.2 | DeepSeek V4 Strix profile |
![]() |
RDNA3 gfx1100 |
Radeon RX 7900 XT / XTX | ROCm 6+ | DeepSeek V4 dual AMD profile |
![]() |
Ampere sm_86 |
RTX 3090 | CUDA 12+ | Qwen 3.8 NVLink result and Megakernel results |
![]() |
Blackwell sm_120 |
RTX 5090 | CUDA 12.8+ | Qwen 3.8 single-GPU result |
![]() |
Blackwell sm_121 |
DGX Spark / GB10 | CUDA 12.9 | Qwen 3.5 NVFP4 results |
![]() |
Ada sm_89 |
RTX 4090 | CUDA 12+ | Linux and WSL2 community runs |
![]() |
Turing sm_75 |
RTX 2080 Ti | CUDA 12.0 | DFlash results |
![]() |
Volta sm_70, Pascal sm_61 |
V100, P40 | CUDA 12.0 | CUDA quick start |
| Not pictured | Blackwell sm_110 |
Jetson AGX Thor | CUDA 13.0 | Thor quick start |
| Hardware | Model | Measured result |
|---|---|---|
| R9700 | Qwen 3.8 27B UD-IQ4_XS + DFlash2 source | 208.1 tok/s HumanEval average; 227.8 tok/s best request |
| Strix Halo | DeepSeek V4 ROCmFPX MIX Strix + DSpark Q4RMFP4 | 32.7 tok/s high-acceptance median; 27.9 tok/s across the fixed 30-prompt evaluation, using all six routed experts |
| RTX 5090 | Qwen 3.8 27B | 110.6 tok/s for a 26,758-token prompt and 1,024-token continuation (PR #637) |
| Hardware | Configuration | Measured result |
|---|---|---|
| 2x RTX 3090 + NVLink | Qwen 3.8 target tensor parallel + DFlash2 | 79.7 tok/s, 2.16× autoregressive decode (PR #637) |
| RX 7900 XT + Strix Halo | DeepSeek V4 with all six experts + DSpark verification width 4 | 45.0 to 47.7 tok/s decode; 111.2 tok/s prefill at 132,981 tokens (PR #604) |
| R9700 + Strix Halo | DeepSeek V4 across both AMD devices | 86 tok/s decode; 788 tok/s prefill at 2K |
These runs use different prompts, quantizations, and inference policies. They show which configurations work; they are not a cross-hardware ranking.
See Recommended server setups for the model and hardware matrix, including single-GPU and mixed-GPU profiles.
harness/ runs Lucebox through popular coding clients and checks server compatibility.
Set the server binary and model paths, then run a launcher:
DFLASH_SERVER_BIN=server/build/dflash_server \
DFLASH_TARGET=server/models/Qwen3.8-27B-UD-IQ4_XS.gguf \
DFLASH_DRAFT=server/models/draft/qwen38-dflash2-q8_0.gguf \
MAX_CTX=32768 \
harness/clients/run_codex.sh
See the harness guide for setup, no-draft targets, and benchmarks.
Prebuilt images on GHCR track main. Mount the weights and serve the OpenAI-compatible API on :8000.
| | GPU | Image tag | |-----|-----------| | NVIDIA (CUDA 12+) | `:cuda12` | | AMD (ROCm 6+) | `:rocm` | Put the target in `server/models/` and its matching drafter in `server/models/draft/`. |
|
Run the image for your GPU:
# NVIDIA
docker run --rm --gpus all -p 8000:8080 \
-v "$PWD/server/models:/opt/lucebox-hub/server/models" \
ghcr.io/luce-org/lucebox-hub:cuda12
# AMD
docker run --rm --device /dev/kfd --device /dev/dri \
--group-add video --group-add render --security-opt seccomp=unconfined \
-p 8000:8080 -v "$PWD/server/models:/opt/lucebox-hub/server/models" \
ghcr.io/luce-org/lucebox-hub:rocm
This quick start runs the R9700 profile above. The complete flag reference is in the server guide.
# build (ROCm 7.2+, RDNA4)
git clone --recurse-submodules https://github.com/Luce-Org/lucebox.git
cd lucebox
cmake -S server -B server/build-hip -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_HIP_COMPILER=/opt/rocm/lib/llvm/bin/clang++ \
-DDFLASH27B_GPU_BACKEND=hip \
-DDFLASH27B_HIP_ARCHITECTURES=gfx1201 \
-DGGML_HIP_MMQ_MFMA=ON \
-DGGML_HIP_NO_VMM=ON
cmake --build server/build-hip --target dflash_server -j"$(nproc)"
# target and DFlash2 drafter
mkdir -p models
huggingface-cli download unsloth/Qwen3.8-27B-GGUF \
Qwen3.8-27B-UD-IQ4_XS.gguf --local-dir models
huggingface-cli download incoai/Qwen3.8-27B-DFlash2 --local-dir models/dflash2
python server/scripts/convert_dflash_to_gguf.py \
models/dflash2/model.safetensors models/qwen38-dflash2-f16.gguf
python server/scripts/quantize_dflash_draft.py \
models/qwen38-dflash2-f16.gguf models/qwen38-dflash2-q8_0.gguf --scheme q8_0
# launch the measured profile
./server/build-hip/dflash_server models/Qwen3.8-27B-UD-IQ4_XS.gguf \
--draft models/qwen38-dflash2-q8_0.gguf \
--draft-block-size 16 --max-ctx 131072 \
--cache-type-k q8_0 --cache-type-v q8_0 \
--port 8216
curl -s http://127.0.0.1:8216/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"messages":[{"role":"user","content":"Write a Python LRU cache."}],
"max_tokens":256,"temperature":0}'
| Topic | Guide |
|---|---|
| Recommended model and hardware profiles | Recommended setups |
| Runtime parameters | Server parameter reference |
| OpenAI Chat Completions, Responses, and Anthropic Messages | API reference |
| CUDA, HIP, and mixed-device placement | [Mixed-backend guide |
$ claude mcp add lucebox-hub \
-- python -m otcore.mcp_server <graph>