Repository navigation
Description
Summary
The DeepSeek V4.1 engine is shipped as its own packages (strata-dsv41-0.1.49-...), and every package in the signed feed is built for a subset of architectures that excludes sm_89 (RTX 40). On an RTX 4090, setup.py --family deepseek41 therefore stops at step 4:
[ok] size: IST-DAS-2.00bpw
...
[X] DeepSeek's engine is not available for this computer yet
Supported graphics cards: NVIDIA RTX 30 and RTX 50 series, and the Radeon AI PRO R9700. ...
Two things make this look like an omission rather than a decision:
- The main Strata engine does support sm_89 —
engine/BUILD.jsonfor 0.1.48 listsarchs: [75, 86, 89, 120], and this PC runs Qwen3.8-Flash-Next (UD-Q4_K_XL) fine on the same card. - The dsv41 source does not appear to need sm_90+/sm_120 features.
src/dsv41/has nowgmma,tcgen05,setmaxnreg,clusterorcp.async.bulk; it has a single FP4 reference, and the packages already support sm_86, which also has no FP4 hardware — so a non-FP4 path exists.
The documentation does not say RTX 40 is unsupported either: docs/DEEPSEEK41.md lists what was measured (RTX 3060 sm_86, RTX 5070 sm_120, RTX A4000 sm_86, 4 × Radeon AI PRO R9700), but the only place RTX 40 is excluded is the runtime list above.
Environment
- Strata 0.2.4.1 (source install,
git describe=v0.2.4.1), main engine 0.1.48, Windows 11. - RTX 4090 48 GB (sm_89, compute 8.9), driver 617.42, 128 GB RAM, i9-13900K, NVMe.
- Model: IST-DAS-2.00bpw (IQ2_XXS + Engram + DSpark), 257 GB, downloaded and size-verified;
--gguf-diraccepted it ("Nothing to download: the files are already here"), so the model side is ready and only the engine is missing.
Evidence from the feed
strata-feed.json (sequence 111) engine entries for the DeepSeek engine:
| package | archs |
|---|---|
strata-dsv41-0.1.49-windows-x86_64-cuda-cuda13.tar.gz |
sm_86, sm_120, compute_120 |
strata-dsv41-0.1.49-linux-x86_64-cuda-cuda13.tar.gz |
sm_86, sm_120, compute_120 |
strata-dsv41-0.1.49-linux-x86_64-hip-rx9070.tar.gz |
gfx1200, gfx1201 |
compute_120 cannot be JIT-compiled down to sm_89, so there is no fallback path for RTX 40.
What I would like to know / suggest
- Is RTX 40 (sm_89) intentionally unsupported for the DeepSeek engine? If yes, please say so in
docs/DEEPSEEK41.md(the runtime message is the only place today) and in the release notes, so people do not download 257 GB for a card that cannot run it. - If it is not intentional: add sm_89 to the dsv41 prebuilt packages (same source, one more
-gencode; the main engine already ships 89). A separatecuda13variant for sm_89 would be enough. - If a local build is the intended path: please confirm the recipe for
--dsv41-package. I can build it here — nvcc 13.2, MSVC 14.44, ninja — withand package it withcmake -S . -B build-dsv41 -G Ninja -DCMAKE_BUILD_TYPE=Release \ -DSTRATA_BUILD_DSV41=ON -DCMAKE_CUDA_ARCHITECTURES=89 cmake --build build-dsv41 --target strata-dsv41 -j 24packaging/package_engine.py; I would like to know whether an unsigned local package is accepted bysetup.py --dsv41-package(the component docs say a locally made package is unsigned and loads).
Related issues (searched; none of these reports the architecture gap)
- [Benchmark] Radeon AI PRO R9700 + RX 7900 XTX (PCIe 3.0 x1), DeepSeek-V4.1-Flash IQ2_XS, Linux source build 8183c6b #3933 (open, benchmark): a mixed R9700 + RX 7900 XTX pair with a source-built
strata-dsv41— so a source build does run on an architecture that is not in the prebuilt list (gfx1100). That is the precedent I would follow for sm_89. - [Engine] nv_defaults for sm_89 (Ada): the sm_86 switch set pays on an RTX 4000 SFF Ada 20 GB - scope agreement before a default change #3659 (open): "nv_defaults for sm_89 (Ada): the sm_86 switch set pays on an RTX 4000 SFF Ada" — sm_89 is being worked on for the main engine, which suggests the Ada architecture is not a deliberate exclusion.
- [Engine] the sm_89 (Ada) MMVQ-IL table, measured on an RTX 4070 #3453 (open): "the sm_89 (Ada) MMVQ-IL table, measured on an RTX 4070" — another sm_89-specific improvement in flight.
- [Engine] DeepSeek V4.1-Flash UD-Q8_K_XL Rejects Already Downloaded GGUF #3914 (open): "DeepSeek V4.1-Flash UD-Q8_K_XL Rejects Already Downloaded GGUF", reported on "4090 24 GB VRAM, 256 GB RAM, Arch Linux" — an RTX 4090 user is already trying the DeepSeek set, so the interest exists; that report is about the GGUF reader, not the engine architecture.
Note
DSpark/Engram sizes all check out against the pins, so this is purely the engine architecture list.
Activity
Benderyu commentedon Oct 24, 2026
Summary
The DeepSeek-V4.1 engine is shipped as its own packages (
strata-dsv41-0.1.49-...), and every package in the signed feed carriessm_86, sm_120(orgfx1200, gfx1201) — nosm_89. On an RTX 4090 (sm_89)setup.py --family deepseek41stops at step 4:Nothing in
docs/DEEPSEEK41.mdsays RTX 40 is unsupported; the runtime list is the only place it is excluded, so people cannot know before downloading 257 GB.I built
strata-dsv41from source for sm_89 and it runs: the rest of this report is that build and its measurements, in case it helps decide whether to ship an sm_89 variant (or to document the source-build path).Prebuilt packages (feed sequence 111)
strata-dsv41-0.1.49-windows-x86_64-cuda-cuda13.tar.gzsm_86, sm_120, compute_120strata-dsv41-0.1.49-linux-x86_64-cuda-cuda13.tar.gzsm_86, sm_120, compute_120strata-dsv41-0.1.49-linux-x86_64-hip-rx9070.tar.gzgfx1200, gfx1201compute_120cannot JIT down to sm_89, so there is no fallback.A source build for sm_89 works
packaging/build_dsv41_windows.batalready takesDSV41_ARCH; its comments mentionARCH="86-real;89-real;89-virtual"for a CUDA 12.9 package. On this PC (nvidia driver 617.42, CUDA 13.2 toolkit, MSVC 14.44, cmake 4.4.3, ninja):strata-dsv41.exe55.3 MB;cuobjdump --list-elf→ sm_86, sm_89;strata-dsv41.exe --version→strata-dsv41 0.1.49.1 build c33fa7ba6;engine\strata-dsv41.exe(orSTRATA_DSV41_EXE),setup.py --family deepseek41 --model IST-DAS-2.00bpw --gguf-dir <model folder>accepts it and writes the config.Model running on the RTX 4090
Engine log:
Measured (1 request at a time, 64-token answers,
timingsfrom the OpenAI endpoint):Two tuning notes that may be useful to others on a 48 GB card: the
--ssd-cacheRAM store (108 GB here) is what makes long prompts fast, and--dspark autodecides "off" on this box but--dspark onroughly doubles decode here (16–22 → 40 tok/s); the auto heuristic ("the verify rounds read 3.3x a token's bytes and gain nothing") does not hold once the experts are cached in RAM.--dspark-conf 0.65measured better than 0.80 (30.6) or 0.50 (38.3).Also hit #3927
While packing,
pack_gguf.pypicked upmodels\mmproj-Qwen3.8-Flash-Next-BF16.gguf(a Qwen vision tower in the shared models folder) and stopped. The documented workaround (rename it temporarily) got past it; #3927 covers that separately.Ask
docs/DEEPSEEK41.mdnext to the supported list, so nobody downloads 257 GB for a card that cannot run it.-gencode)? Happy to test a prebuilt package on this 4090 and report.DSV41_ARCHline above) and confirm that an unsigned local package via--dsv41-packageis supported the same way as a builtengine\strata-dsv41.exe.DeepSeek engine packages: add sm_89 (RTX 40) to the CUDA builds (#3935)
Merge f-027-gh-eng-g (#3935 sm_89 in the DeepSeek CUDA package builds, …
Merge f-027-gh-eng: GitHub engine items for 0.2.7
Niko1221 commentedon Oct 27, 2026
Thank you. Fixed in 0.2.7: The DeepSeek CUDA packages are built for sm_86, sm_89 and sm_120 (plus PTX 120), and an RTX 40 card takes the package that holds its own sm_89 image; an sm_86-only package still fits. We have no Ada card; your 40.2 tok/s on an RTX 4090 48 GB (2.00 set, --dspark on) is quoted as yours in docs/DEEPSEEK41.md. Could you try the 0.2.7 package and tell us how it runs?
Release: https://github.com/Niko1221/Strata/releases/tag/v0.2.7
Benderyu commentedon Oct 28, 2026
What I ran
strata-dsv41-0.1.52-windows-x86_64-cuda-cuda13.tar.gz(sha256 f1a3ae88…; archssm_86, sm_89, sm_120, compute_120), installed by hand asengine\strata-dsv41.exe.strata-dsv41.exe --version=strata-dsv41 0.1.52 build a42cc3d7d;cuobjdump --list-elflists sm_86, sm_89 and sm_120, so the card loads its own sm_89 image.mmproj-BF16.gguf(projectordeepseek41v), context 262144.--dspark on --dspark-conf 0.65 --dspark-block 3 --experts 5,--mmap-experts auto(the engine copies all 11,837 CPU-lane experts, 101.8 GB), 24 CPU threads, one request at a time.It loads in ~40–50 s with no errors and stays stable across restarts. Vision also works: a 336×336 test image (red background, white circle, blue square) is described correctly through the OpenAI API, at +~186 prompt tokens per image and 47.3/48 GB of VRAM (3,907 experts in VRAM with the tower loaded).
Short benchmark (5 warm runs each)
DS4_DEFAULTS=026The two sets are inside run-to-run noise on this card, so I see no Ada regression from the 0.2.7 defaults.
Real agent session (what it feels like in use)
From the engine's own log over a long coding session (786 requests, 452,544 generated tokens):
So the "40.2 tok/s" in
docs/DEEPSEEK41.mdreproduces and long code generations sit at 40–47 tok/s on this card. My first few samples after a fresh load were 25–31 tok/s; that is cold-start, not a default-set difference — after one warm-up both default sets land at ~40 tok/s for 256-token answers.Nothing crashes; the difference between the two default sets is noise. Happy to bisect single switches (
DS4_RING_MB,DS4_ATTN_SPLIT,DS4_COPY_PIN,DS4_DSPARK_MAX) if you want a per-switch table, but I would not expect a large one.Niko1221 commentedon Oct 29, 2026
Thank you for trying the package and posting the numbers. Closing: an RTX 4090 runs the 0.2.7 DeepSeek package.