DeepSeek-V4.1-Flash EXL3 3bpw TC-MoE on 4x CMP 170HX TP4 (original checkpoint)
00 upvotes — sign in to vote sign in to votecommunity Community submission — verify on your own hardware.
recipe by CurtisAccelerate↗, Morrowmake↗, turboderp-org/exllamav3 - EXL3 codec @ d3739fd3 (MIT; Copyright (c) 2025 Turboderp)↗ · listed by localai-recipes
revision r3 · commit dc2dbe7cce · updated 21 h ago · license CC-BY-4.0
chat code fp8-kv mtp-speculative dspark long-context exl3 tp4 broadwell host-allreduce prefix-caching tensor-core-moe
DeepSeek-V4.1-Flash (ORIGINAL deepseek-ai/DeepSeek-V4.1-Flash checkpoint, quantized by Mia-AiLab as EXL3 3.02bpw — NOT the 2026-10-17 '1017' re-release, which has its own sibling recipe) served EXL3 3bpw tensor-parallel 4 on four CMP 170HX cards (sm_80, 140 W, HBM locked 1728 MHz) in a 2x Xeon E5-2689 v4 Broadwell host, PCIe Gen2 x16, no NVLink, using Morrowmake's tensor-core MoE kernels + host-staged all-reduce ported onto this checkpoint: K3 on every served layer with a split K2 down-projection, row-rule hybrid (coop rows 1-42, moe_out_v2 43-64, moe_out_prefill 65-2048), one shared 540.4 MiB MoE workspace per GPU, zero-register-spill served kernels. Measured by the author: 178.3 tok/s structured decode c1, 587 tok/s across 8 users, median TTFT 8.37 s from 2K through 255K context (10.9 s at 255,424) against the same host's optimized graphs+coop+NCCL stack at 172.7 / 456 / 10.15 s; needles 9/9 through 256K; KV pool 616,916 tokens.
Launch command
'docker run -d --name dsv41-tp4 --cap-add SYS_NICE --gpus all --network host --ipc host --ulimit memlock=-1 --ulimit stack=67108864' '-v <model_dir>:/model-view:ro -v <exl3_py>:/usr/local/lib/python3.12/dist-packages/vllm_exl3/exl3.py:ro -v <sm80_dir>:/usr/local/lib/python3.12/dist-packages/vllm/sm80:ro' '-v <envs_py>:/usr/local/lib/python3.12/dist-packages/vllm/envs.py:ro -v <cuda_py>:/usr/local/lib/python3.12/dist-packages/vllm/platforms/cuda.py:ro' '-v <tc_hook>:/opt/dsv41-tc-moe/exl3_tc_hook.py:ro -v <tc_so>:/opt/dsv41-tc-moe/_dsv41_tc_moe_C.abi3.so:ro' '-e VLLM_EXL3_MODEL_DIR=/model-view -e VLLM_PLUGINS=vllm_exl3 -e VLLM_USE_V2_MODEL_RUNNER=0 -e DSV41_DSPARK_V1=1' '-e VLLM_EXL3_COOP=1 -e VLLM_HOST_ALLREDUCE=1 -e NCCL_P2P_DISABLE=1 -e NCCL_IGNORE_DISABLED_P2P=1 -e NCCL_CUMEM_ENABLE=0' '-e VLLM_EXL3_TC_MOE_V2=1 -e VLLM_EXL3_TC_MOE_PREFILL=1 -e VLLM_EXL3_TC_PREFILL_ROWS=2048' '-e VLLM_EXL3_TC_MOE_SO=/opt/dsv41-tc-moe/_dsv41_tc_moe_C.abi3.so -e VLLM_EXL3_MOE_TP_ALIGN=128 -e VLLM_EXL3_MOE_TP_ROTATE=1 -e TORCH_CUDA_ARCH_LIST=8.0' '--entrypoint vllm <dsv41_image>' 'serve /model-view' '--quantization exl3 --load-format safetensors --safetensors-load-strategy lazy' '--pipeline-parallel-size 1 --tensor-parallel-size 4' '--served-model-name deepseek-v4.1-flash --host 0.0.0.0 --port 8095' '--max-model-len 262144 --max-num-seqs 8 --max-num-batched-tokens 2048 --gpu-memory-utilization 0.97' '--kv-cache-dtype fp8_ds_mla --engram-config {"cpu_offload": true} --enable-prefix-caching' '--compilation-config {"cudagraph_mode": "FULL_AND_PIECEWISE", "cudagraph_capture_sizes": [1, 2, 3, 4, 6, 8, 12, 18, 24, 30, 36, 42, 48]}' --async-scheduling '--speculative-config {"method": "dspark", "num_speculative_tokens": 5}' '--tokenizer-mode deepseek_v41 --enable-auto-tool-choice --tool-call-parser deepseek_v41 --reasoning-parser deepseek_v41'serving_selection_2026_10_26
band: 'batches of 2-8 users; batch 7 pads onto the 48-row batch-8 graph; draft length stays 5 (6 rows per request). Draft length 7 and the Mia weights are NOT part of this selection.'
lane: '2-8 user decode lane = experiments/ds1017-r2-b2-b8 (separate source, DEFAULT OFF). The published C1 source stays the one-user bundle in experiments/ds1017-native-mixed-and-split (native mixed experts, split attention, captured K5 drafter).'
image: "UNAVAILABLE (never published): the author states 'There is still no pullable image' (SERVING-2026-10-26.md). The only image identifier in the stack, sha256:55d2bd9a6664aea2540e3f8e373d784b88420d35c3cedefc9f03923cd687b6f5, is a LOCAL docker image id recorded for the measured serve (1017 repo README.md:93), not a registry reference; the site's image_digest is null. Cloning the repo does not turn the lane on: no image boots the 2-8 user graphs or the sampled drafter yet."
hardware: '4x CMP 170HX (sm_80) host as measured; the October 26 run used the 1017 weights on this host class.'
measurements: 'https://github.com/CurtisAccelerate/DeepSeekv41-Flash-1017-EXL3-CMP170HX/blob/main/benchmarks/2026-10-26/README.md'
lane_defaults: 'DSV41_R2_BATCHES=2-8; DSV41_R2_COMPONENTS=attention,experts,collective,sampler,sampled; DSV41_R2_PAD7=1; DSV41_R2_SPLITS=per batch nearest the one-user 96-CTA shape (empty = default); DSV41_R2_EXPERTS=coop, or tc when tensor-core v2 covers the row count; DSV41_R2_COLLECTIVE=pair at 48 rows, otherwise the host all-reduce size rule; DSV41_R2_CAP_MIB=768 (retained-graph cap checked at startup).'
measured_plan: 'With DSV41_R2=1, DSV41_R2_PAD7=1 and VLLM_EXL3_TC_MOE_V2=1 and no per-batch overrides the defaults are the measured plan: cooperative experts for batches 2-6, tensor-core experts + pair collective at batch 8, batch 7 served by the batch-8 graph. New attention for every batch size; a temperature-0 request stays greedy at every batch size.'
published_from: "CurtisAccelerate/DeepSeekv41-Flash-EXL3-TC-MoE @ e559217ac4f90dd8c2e4820f97b259e584efcf1f (experiments/ds1017-native-mixed-and-split/SERVING-2026-10-26.md + experiments/ds1017-r2-b2-b8/README.md; commits 'Publish the 2-8 user lane and its default-off flags' and 'Note the October 26 serving selection and the missing image')"
default_off_flags:
-
flag: DSV41_R2
effect: 'Master switch for the 2-8 lane; 1 is the only armed value, malformed flag raises at boot. Being present in the repository does NOT turn the lane on.'
default: '0 (off)'
-
flag: VLLM_EXL3_TC_MOE_V2
effect: 'Required for the tensor-core expert path on the 48-row graph; the launch command of this recipe arms it explicitly (-e VLLM_EXL3_TC_MOE_V2=1).'
default: '0 (off)'
-
flag: dsv41_draft_tq
effect: 'Per-request sampled-drafter flag; NOT turned on by DSV41_R2. The October 26 selection keeps the drafter greedy at batches 2-8 and uses it only for a single temperature-1 request (outside this lane).'
default: 'off'
-
flag: DSV41_ARENA_CACHE_DIR
effect: 'Optional gate in scripts/run-tp4-tcmoe.sh: unset/empty = zero argv change; when set it adds -v DIR:DIR, -e VLLM_EXL3_ARENA_CACHE=1 and -e VLLM_EXL3_ARENA_CACHE_DIR=DIR.'
default: 'unset (off)'
launch_consistency: "The launch command above arms VLLM_EXL3_TC_MOE_V2=1; DSV41_R2 is NOT set, so the published serve keeps the 2-8 lane default-off until armed. The optional arena-cache group (DSV41_ARENA_CACHE_DIR gate) is NOT in this recipe's launch command — it stays default-off; add the three flags above to enable it."
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/deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-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/deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-tp4.jsonDownloads
- Weights https://huggingface.co/Mia-AiLab/DeepSeek-V4.1-Flash-EXL3-3.0bpw/tree/c5534b90602b4090980a1c3ded1eb3b4d99a38d5c5534b90602b4090980a1c3ded1eb3b4d99a38d5
- Reference https://github.com/CurtisAccelerate/DeepSeekv41-Flash-EXL3-TC-MoEe559217ac4f90dd8c2e4820f97b259e584efcf1f
- Reference https://github.com/Morrowmake/vllm-cmp170hx18305948acba3f4c4d912cdd56f2202d2ebd94e8
Revision notes
Scouted + ingested by localai-recipes from the CurtisAccelerate repo (created 2026-10-17); recipe, port and measurements by Curtis White. Tensor-core EXL3 MoE kernels + host-staged all-reduce ported from Morrowmake/vllm-cmp170hx @ 18305948 (Apache-2.0; built for Qwen3.8-Flash-Next on 2x CMP 170HX). EXL3 codec adapted from turboderp exllamav3 @ d3739fd3 (MIT). Checkpoint Mia-AiLab/DeepSeek-V4.1-Flash-EXL3-3.0bpw @ c5534b90 (MIT; base deepseek-ai/DeepSeek-V4.1-Flash; 40 layers, hidden 5120, 384 experts top-6, MTP). Morrowmake's published CMP 170HX tables are for hardware-class comparability on a different model, not a head-to-head. All performance numbers author-reported (T0).
Revision history
- dc2dbe7cce recipe: update deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-tp4 (r3: /artifacts, /config/serving_selection_2026_10_26, /engine, /provenance/credit) 15 h ago diff
- 034d0a6076 recipe: update deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-tp4 (r9: /kv_pool_tokens) 10 d ago diff
- c56bbcbc9d recipe: update deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-tp4 (r8: /config/storage_requirements) 11 d ago diff
- fa35e6e582 recipe: update deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-tp4 (r7: /title, /summary) 11 d ago diff
- 635f3c8a19 recipe: update deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-tp4 (r6: /title) 11 d ago diff
- 683ed95a3b recipe: update deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-tp4 (r5: /max_context_len) 11 d ago diff
- 40366e62e3 recipe: update deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-tp4 (r4: /max_context_len) 11 d ago diff
- 22e8dbd701 recipe: update deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-tp4 (r2: /max_context_len) 11 d ago diff
- 6ee09dde68 recipe: create deepseek-v4-1-flash-exl3-3bpw-tc-moe-on-4x-cmp-170hx-tp4 13 d ago
Fork
Sign in to fork this recipe — a fork is your own copy; you own it and only you can update it.