📈 GH Trending Explorer 🎲 Surprise me

← all repos

jayleaton / deepseek-v41-tensorfold-spark

git clone https://github.com/jayleaton/deepseek-v41-tensorfold-spark.git

DeepSeek-V4.1-Flash on 2x NVIDIA DGX Spark with the TensorFold engine: 1.8-1.9x code, 2.5x multi-stream, 1.7-1.95x prefill vs the vLLM kit, exact speculative decoding. Work in progress.

+2
stars, 24h · #10,902
+~9
stars, 7 days · #12,735
+83
stars, 30 days · #8,193
83
★ total · +9% this week
18
forks · 30 open issues

Star history (as recorded here)

2026-10-20 · 79 ★ 2026-10-23 · 83 ★
LanguageZig
LicenseApache-2.0
Created2026-10-03 (20d ago)
Last pushtoday
Watchers0
OwnerUser

Links

README excerpt
Follow me on X for more updates: https://x.com/jayleaton
Support me here: https://buymeacoffee.com/jayleaton
# DeepSeek-V4.1-Flash-1017 on TensorFold, 2x NVIDIA DGX Spark
A recipe for serving DeepSeek-V4.1-Flash-1017 on two NVIDIA DGX Sparks behind an OpenAI-compatible API. It ships
our EXL3 pack (**flash17**) and the TensorFold Zig engine that serves it, with the exact serving profile we measured.
| | |
| --- | --- |
| Model | `deepseek-ai/DeepSeek-V4.1-Flash-1017` |
| Pack | **EXL3 2.8 bpw, 203.8 GB**: `jayleaton/DeepSeek-V4.1-Flash-1017-EXL3-2.8bpw` |
| Hardware | 2x DGX Spark (GB10, 128 GB each), tensor parallel 2 over the 200 Gb/s CX7 link |
| Engine | TensorFold Zig, CUDA port `9131e10a` (source in `engine/zig`) |
| Serving | 1M context, four slots, vision (native image input), tool calling, structured output |
flash17 is serving as the production default on our two Sparks (model ID `DeepSeek-V4.1-Flash-TF`).
> **Work in progress.** Measured on one pair of Sparks. Read what is not solved before
> relying on it.
## Results
**Tasks.** 356 matched items (pass@1, greedy, thinking on, effort high), against Mia-AiLab's 2.9 bpw pack and
our previous q28-v2 pack:
| Suite | flash17 | Mia 2.9 bpw | q28-v2 |
| --- | ---: | ---: | ---: |
| HumanEval+ | 34 / 40 | 34 / 40 | 33 / 40 |
| MBPP+ | 50 / 60 | 49 / 60 | 50 / 60 |
| MMLU-Pro STEM | 93 / 100 | 91 / 100 | 90 / 100 |
| MATH-500 | 36 / 40 | 36 / 40 | 36 / 40 |
| SciCode (first step) | 6 / 10 | 6 / 10 | 5 / 10 |
| LiveCodeBench | 16 / 20 | 13 / 20 | 13 / 20 |
| BFCL | 39 / 40 | 39 / 40 | 39 / 40 |
| Tool chains | 6 / 6 | 6 / 6 | 4 / 6 |
| MGSM | 40 / 40 | 40 / 40 | 40 / 40 |
Small samples: every paired 95 % confidence interval includes zero, so these show no statistically significant
difference. Intervals, method and limits are in FLASH-1017.
**Retention of the 1017 release, as served** (top-1 agreement with the release, with the serving expert pruning):
code **95.17 %**, science **94.93 %**, tools **87.64 %**. The full table, with KL and the other packs:
FLASH-1017.
**Speed** at the recommended profile (2.1M pool, 2100 MHz cap), single stream: short decode **87.9 tok/s**; decode
after a 32K / 131K prompt 64.1 / 64.9 tok/s; prompt tokens over time to first token 2,349 / 2,198 tok/s (TTFT includes
HTTP and admission). q28-v2's earlier measurements, under a different clock and its 3.0M pool, were 85.75, 66.7 / 64.5
and 2,630 / 2,460; not a matched A/B. Details: FLASH-1017.
**Images and agents** at the recommended profile: VQA 20 / 20 plus 3 / 3 `image_url` probes; a clean OpenCode
session passed (7 valid tool calls, normal stop).
## Quick start
The full guide is ZIG-SERVE. Build the image and the per-rank assets as it describes, then:
 [code] 
- Fill in the node paths and link settings from
 `config/prod-zig-flash17.env.example` and keep its engine settings. It needs
 the **2.1M-token pool** (`TF_DSV41_POOL_TOKENS=2100000`). With q28-v2's 3.0M pool this pack goes under the 4 GiB
 memory floor during 4K