github Niko1221/Strata v0.2.9
Strata 0.2.9

3 hours ago

Strata 0.2.9: Unsloth's 1-bit DeepSeek sets as a choice, much faster prompts on Strix Halo, faster parallel requests on Linux NVIDIA cards, fixes from your reports

The app is 0.2.9. Control and every engine package are 0.1.55.

The numbers first

  • Strix Halo on Windows, Qwen3.8 IQ3_S: prompts 1.8 times as fast, decode the same. Against the 0.2.8 engine on the same PC, interleaved, nothing set: an 8K prompt goes from 791 to 1,424 tokens per second and a 32K prompt from 778 to 1,460. With Unsloth's UD-IQ4_XS, 8K goes from 794 to 1,243. Decode went from 57.4 to 58.9 tokens per second (about 3% more, inside normal spread), and the greedy answers were the same.

  • Strix Halo on Windows, DeepSeek 2.25, engine level against 0.2.8: a 200-token prompt reads at 24.9 tokens per second against 15.0 (x1.66), a 4K prompt at 183.7 against 148.8 (x1.24), a 16K prompt at 469.9 against 298.0 (x1.58). With the drafter, decode went from 10.89 to 12.01 tokens per second, about 10% more but inside run-to-run noise; without the drafter it is unchanged (10.30 and 10.24).

  • Parallel requests on Linux with NVIDIA cards: 1.45 times the 0.2.8 speed at 8 requests at once. One RTX PRO 5000, Qwen3.8 IQ3_S, 1,000-token prompts, 128 tokens out, three paired blocks, range 1.451 to 1.459. One request alone is 5.3% faster, and its greedy answers matched in 12 of 12 prompts. With --parallel or --batch of 2 or more, the server now sets the nine qualified settings itself.

  • Prompts about 2% to 6% faster on Linux, by default. On Linux NVIDIA cards the Gated DeltaNet prompt kernels now run on the tensor cores: 4.4% faster at 4K and 5.5% to 5.7% at longer prompts on an RTX PRO 5000, 2.6% at 16K and 3.2% at 32K on an RTX A4000. On Linux with Radeon cards that are all gfx12 (such as the R9700) the chunked kernel now starts at 64 tokens: 3.5% at 4K, 4.7% at 16K and 6.1% at 32K, and 1.7% to 3.2% at 1K to 3K. Decode is unchanged. The KL check, the 61-task suite (55 against 54 to 56) and a 30-minute soak all passed. Windows, Mac and Intel are not changed.

  • Two Intel Arc Pro B65 cards: prompts 4.6% to 15.8% faster. Prompts of 1K, 4K and 16K tokens: 4.6%, 14.6% and 15.8% faster. Eight requests at once: 53.8 tokens per second, against 42.1 before. Single-request decode through the batch server is 2.7% slower. The 42.1 is the old default of one group.

  • DGX Spark, DeepSeek 2.25: a 442-token prompt reads at 80 to 82 tokens per second against 40 to 42 on the 0.2.8 engine, and a 1,953-token prompt at 208 against 144, on an otherwise quiet box. Decode is the same within noise.

  • DeepSeek on several AMD cards now uses all of them by default. Four Radeon AI PRO R9700 cards, ISTA-DAS 2.25, strata launch with no --gpu: before this release it ran on one card, with 2,371 of 15,360 experts on the card, 6 experts per token and decode at 7.8 and 25.7 tokens per second on two short answers. It now fills all four, with 12,147 of 15,360 experts on the cards, 5 experts per token (the launcher's choice on four cards) and decode at 57.7 to 103.7 across six chat and tool answers on the release files.

  • Unsloth's 1-bit DeepSeek sets, UD-IQ1_S and UD-IQ1_M, are now a choice in setup and strata launch. Downloads are 241 GB and 258 GB, about 111 GB less if you already have ISTA's Engram file. The default set is unchanged. We measured both next to the ISTA-DAS 2.25 set, one run each, on four Radeon AI PRO R9700 cards (UD-IQ1_M on two RTX A6000), with 6 experts per token. The reference is Unsloth's own Q8_K_XL file.

    UD-IQ1_S UD-IQ1_M ISTA-DAS 2.25
    KL against the reference (4,995 positions) 0.114 0.087 0.110
    Top-1 agreement 87.2% 88.8% 87.4%
    Perplexity against the reference +4.8% +3.0% +8.9%
    61-task suite (35 on 14K to 30K-token documents) 53 of 61 53 of 61 56 of 61

    By family in that suite (UD-IQ1_S, UD-IQ1_M, ISTA-DAS 2.25): retrieval 11, 11, 12 of 12; extraction 11, 13, 13 of 13; unanswerable 9, 9, 9 of 9; summary 8, 6, 7 of 8; code 6, 5, 6 of 6; JSON 3, 3, 3 of 3; agent loops 5, 6, 6 of 10. All 10 agent loops finished on all three sets, with no invalid tool calls and no tool errors. Speed: UD-IQ1_S on four R9700 cards, decode 48 to 88 tokens per second and a 4K prompt at 1,204 to 1,296; UD-IQ1_M on two A6000 cards, decode 41 to 82 and a 4K prompt at 304 cold and 415 warm. These are single runs on our own test texts. UD-IQ1_M's suite ran on the two A6000 cards, the other two on four R9700 cards, and the reference file is Unsloth's own.

What is new

  • Parallel requests and the Gated DeltaNet kernels are on by default, on Linux. Parallel: Linux with NVIDIA cards, with --parallel or --batch of 2 or more. Gated DeltaNet kernels: Linux with NVIDIA cards (Qwen3.8) and Linux with Radeon cards that are all gfx12. Any environment variable or config value you set still wins. Windows, Mac, Intel and DeepSeek are not changed.
  • Intel Arc B-series. Prompt attention now runs on the int8 path, on by default for Battlemage cards. Set STRATA_PROMPT_ATTN_ESIMD=0 to turn it off. Two B-series cards with 8 or more slots now run 2 pipelined groups by default; set --batch-groups 1 or STRATA_BATCH_GROUPS_AUTO=0 to turn that off. A single request through the batch server is 2.7% slower than before. The A750 keeps the old path, and we did not run it.
  • Strix Halo on Windows (gfx1151). The prompt experts use the F16 matrix-core kernels by default (STRATA_PF_F16), a Q8_0 down layer of the Unsloth files takes the same kernel, and STRATA_SELECT_WMMA (the block scorer on matrix cores) is on by default. The block scorer is not bit-exact: about 10 of 2,051 selected cells flip at the cutoff for prompts past about 5K tokens. Turn any of them off with NAME=0, for example STRATA_PF_F16=0. On DeepSeek, the shards are no longer held open after the load by default (DS4_NO_VIEW=0 turns that off), and the CPU lane waits for the next token more steadily. Part of the prompt work follows ideas from asf0's libstrix (MIT).
  • DeepSeek GGUF layouts. Strata now accepts the four-shard set that ISTA re-published on 26 October and ISTA's six-shard layout, both for "Use a local GGUF" in the app and for --model-path. A cut or missing shard is still refused, and the message names the missing part. Thanks to lu123bing for the GGUF reader fix (PR #4348) and to StackArc3 for the six-shard layout (PR #4632).
  • Unsloth's 1-bit sets, where they are offered. Windows and Linux (NVIDIA and AMD), the DGX Spark, and the Mac. On a Mac, UD-IQ1_S ran on an M5 Max (decode 15.4 to 18.5 tokens per second, a 3K prompt at 230 cold and 314 warm, a 14K prompt at 519); UD-IQ1_M is offered there but was not run. On the DGX Spark, UD-IQ1_S decodes 15 to 26 tokens per second on code and reads a 3,950-token prompt at 377 to 397; UD-IQ1_M decodes 7.6 to 13 and reads at 330 to 345. The Engram table comes from the ISTA file you already have, if you have one. Setup keeps its own plain note about these 1-bit sets.

Fixed, from your reports

  • Chat:
    • A long answer no longer slows the page down. Each streamed token used to redraw the whole chat. Now the text is applied about ten times a second, and only the streaming message redraws. For a 40,000-token answer, main-thread time fell from 15.7 to 9.0 seconds, and peak heap from 114 MB to 62 to 75 MB. We measured it in the app on a synthetic long answer, not on the reporter's own setup.
    • A client that hangs up right after data: [DONE] no longer gets "Request cancelled." (#4690).
  • Tool calls and the server:
    • Calls shown inside a code fence or an indented block are no longer run as tool calls. A fence closes only with the same length it opened with (#4702, #4703).
    • A tool the conversation already used counts as declared, so a later call to it comes back as a tool call, not as raw text (#4663).
    • Qwen3.6: the warm-up no longer writes past the KV cache. On one test, the old build crashed with a heap error at a 2,048-token context. The new build ran (#4708).
    • The layer-major prefill copies an expert with no mapped blob from its source, instead of ending the request (#4695). We only compiled this change. The path is Windows-only and we did not run it there.
  • Setup and the update:
    • A child process that prints non-UTF-8 text, such as GBK adapter names, no longer stops Step 1 or launch (#4675).
    • The update's test start names the kept log file to report (#4692). We have not found why that test start failed for the reporter.
    • A compiled engine includes code for every usable NVIDIA card in the PC, not only the one setup picked (#4662). In our test, an engine built only for an older architecture failed every request on a newer card. The server also prints one plain line at start when a card is of an architecture the engine was not built for. The report came from a PC with a TITAN RTX and an RTX 3080; we have not confirmed this was its cause.
    • Hardware list: AMD cards are counted from the kernel driver files when neither the setup module nor rocm-smi is there, as with a ROCm install from a Python venv.
  • Which cards a launch uses:
    • DeepSeek on several AMD cards, Linux: setup saved its own pick of one card as if you had chosen it, while --plan showed all of them. With no --gpu, it now uses every card the engine package can run. An install set up that way moves to all its cards at its next start, with nothing rebuilt, and prints how to stay on one: strata launch --gpu N, which is now remembered. If you named that same card yourself before 0.2.9, we can't tell it from setup's pick, so it moves once too. Windows stays on one AMD card. An integrated Radeon beside a card with its own memory is left out, and so is a card the package has no code for.
    • Two or more Intel Arc cards: strata launch did not know the Arc Pro B65, B60, B50 or A770M, so it named no card and the engine ran on one. On two B65 cards with Qwen IQ3_S, no --gpu now fills both (30,842 and 30,722 MiB) and a 460-token prompt reads at 439 tokens per second against 221 on one card, on short test answers. --gpu 0 still runs on one.
    • DeepSeek on several NVIDIA cards: --plan now counts what setup runs. A card of 8 GB or less beside a bigger one starts Off, and setup now says when a card under 8 GB is left out. Which cards run is unchanged. On two RTX A6000 cards, no --gpu uses both (48,022 and 47,984 MiB).
  • Apps and Monitor:
    • A picture reader left in an older engine folder now follows the engine in use after an update (#4658).
    • The Monitor's drive-temperature reader runs only while the Monitor is open, not from app start (#4661). We have not confirmed that this was the cause of the freeze that was reported.

Going back to 0.2.8

strata components rollback returns to the 0.1.54 engine. It rolls back the engine only; Control stays 0.1.55. To turn the new Linux defaults off, set STRATA_GDN_TC=0 and STRATA_GDN_CONVL2=0 (NVIDIA) or STRATA_GDN_CHUNKED=0 (Radeon gfx12). The nine parallel settings are STRATA_CKPT_POOL, STRATA_CKPT_POOL_READY, STRATA_SLOT_CKPT_MOVE, STRATA_SLOT_COPY_DIRECT, STRATA_SLOT_COPY_BATCHSYNC, STRATA_BATCH_GDN_GROUPS, STRATA_BATCH_ATTN_ROWS, STRATA_BATCH_SELF_COMMIT and STRATA_QSA_SLOTS; set any of them to 0 and the server keeps your value. The Arc changes go back with STRATA_PROMPT_ATTN_ESIMD=0 and --batch-groups 1.

Off unless you turn it on

  • Research switches for parallel work: STRATA_PAR_COUNTERS, STRATA_COALESCE_PREFILL and STRATA_CRASH_BT. The replica profile (setup --replica-profile) stays off. On a two-card test of 2x RTX A6000 it scored 52 and 53 of 61 against 56 for the default.
  • Everything listed under "Off unless you turn it on" in 0.2.8 is unchanged.

What we ran on the release files

Before publishing, we ran the 0.2.9 release files with the real signing key, in a clean home folder, most of them through the update from the published 0.2.8:

  • Linux x86, two RTX A6000 cards: Qwen IQ3_S chat and a tool turn at 148 to 169 tokens per second, then DeepSeek 2.25 and Unsloth's UD-IQ1_M (chat, a tool turn, the word "Nerazim" whole), and a parallel run with 2 and with 3 concurrent requests.
  • DGX Spark: Qwen IQ3_S (decode 55 to 67 tokens per second) and DeepSeek 2.25.
  • Mac, M5 Max: Qwen IQ3_S (decode 79 to 104) and DeepSeek 2.25 (decode 13 to 17.6), with the signed dmg, the app and the Terminal checked for Developer ID and notarization.
  • Windows PC with an RTX card (64 GB): the update from 0.2.8 to 0.2.9, the CUDA 13 engine's --version, and a Qwen IQ3_S launch with reduced memory settings (a 12 GiB RAM budget and a small expert cache). It loaded and answered two chat questions sensibly. In the agent test, the file read, the file write and the line count (find /c /v "", 3 lines) all ran correctly, but the model did not get to a final answer within the test's 8 steps in two tries, so we do not call that turn passed. We did not time it.
  • Strix Halo on Windows, as a new standard user: the Terminal zip and the Windows engine packages from the release, with Qwen IQ3_S and DeepSeek 2.25 (chat and a tool turn on each). A first Qwen tool turn ran out of the test's 8 steps while the model tried Unix commands; with a Windows command in the prompt it passed. A silent install of the installer, and a silent uninstall, which removed the files, the registry entry and the shortcuts.
  • Linux x86, four R9700 cards: DeepSeek 2.25, first setup in a clean home with no --gpu (all four cards; the prepared pack and the Engram were reused to skip the 46-minute first preparation), chat and a tool turn, a second launch, a config written by the 0.2.9 build before the fix (moved to all four), and --gpu 0 (one card, remembered).
  • Linux x86, one R9700: Qwen IQ3_S, chat and a tool turn, decode 87 to 107 tokens per second. DeepSeek 2.25, first setup from local model files in a clean home with no --gpu (a prepared pack was reused), chat and a tool turn: 2,366 of 15,360 experts on the card, 6 experts per token, decode 12 to 18 tokens per second (23 on one 22-token answer).
  • Linux x86, two Intel Arc Pro B65 cards: Qwen IQ3_S through strata launch with no --gpu (both cards) and with --gpu 0, chat and a tool turn. That PC also has an RTX 5060, so we set STRATA_ENGINE_BACKEND=sycl for this test, and we reused a prepared pack.
  • Linux x86, Tesla P100 (CUDA 12): Qwen3.8 IQ3_XXS at 16K, chat and a tool turn, decode 41 to 47 tokens per second.
  • DGX Spark, rollback: an update from the real 0.1.54 to 0.1.55, then strata components rollback. Engine 0.1.54 came back and ran.

Known problems

  • UD-Q4_K_XL on Strix Halo (Windows) can stop on the first request after a start, with no CPU or disk activity. Running the engine directly with the settings setup writes, 7 of 30 starts stopped on the 0.1.55 engine and 2 of 5 on 0.1.54, so 0.2.9 did not bring it in. Through the server on 0.1.55, 3 of 10 starts gave no answer within 150 seconds and one took 112; a normal start answered in about 7.5. The engine's own check can restart it after 60 seconds without progress. If it stays stuck, stop the engine and start it again. Other cache sizes and a cold file cache did not help. UD-IQ4_XS, which setup recommends on a Strix Halo with 80 GB or more, ran 99 times in the same setup without stopping. IQ3_S reading its experts from the SSD ran 10 times without stopping.
  • DeepSeek is not repeatable at temperature 0. Five identical requests can give up to 5 different answers. We traced this to the expert cache, which moves experts between the CPU and the GPU between requests; the two round differently. With --set=--no-expert-cache=on, the repeated requests matched in our runs, and usually only a chat's first request differed. That costs 8% to 10% of decode on four R9700 cards and 58% on one. Adding DS4_ASYNC_T=16 gave 20 of 20 identical answers in the one launch we ran, on four R9700 cards.
  • A PC with both NVIDIA and Intel cards: strata launch takes the NVIDIA card, does not mention the Intel cards and has no option to choose them.
  • Qwen on several AMD cards: setup runs on one card unless you name them (--gpu 0,1). With simulated cards, the plan recommended both on two 16 GB cards and 32 GB of RAM while setup used one.

What we did not test

  • Which cards a launch uses, with an integrated Radeon beside a card with its own memory, with mixed AMD architectures, and with several AMD or NVIDIA cards on Windows: simulated cards only. The app's part of it has unit tests, but we did not run it in the app.
  • Unsloth's 1-bit sets on Windows (NVIDIA, AMD) and on Strix Halo, and UD-IQ1_M on a Mac. UD-IQ4_XS on Strix Halo runs with all 24,576 experts resident, but we did not test it end to end through the app or setup.
  • The new Linux defaults on Windows, and the Gated DeltaNet defaults on a card with fewer than 96 SMs other than the RTX A4000 we ran.
  • The parallel settings on AMD, Windows, Intel and DeepSeek. The replica profile crashed once at 16 concurrent requests on two replicas, in a configuration we do not ship by default.
  • The Arc changes on an A750, and DeepSeek on Arc (there is no SYCL DeepSeek engine).
  • Windows engines for CUDA 12, RX 9070 and RDNA2, and the CUDA 13 DeepSeek package: built and checked as packages (they start with a stripped environment and report 0.1.55), not run through a model by us. The Windows CUDA 13 engine went through the update from 0.2.8 to 0.2.9 and one model launch with reduced memory settings (see above). With the default settings the launch took nearly all the free RAM of a 64 GB PC (about 31 GB available) and our safety limit stopped it, so the default settings on that PC are untested.
  • Linux engines for RX 7900, Strix Halo and RX 6000: built and checked as packages, not run through a model by us.
  • Three causes stay open: #4661, #4662 and #4692 are not confirmed. #4663 is not covered on the Anthropic and Responses routes.

Updating

  • App: the in-app update offers 0.2.9, or download the installer below.
  • Terminal: run strata update. It fetches Control 0.1.55 and the 0.1.55 engine in the same run, and keeps the old engine for strata components rollback. If your Terminal is older than 0.2.0 (for example 0.1.45.x), run the install line again.
  • DeepSeek engine: it updates itself on the next strata launch.
  • DGX Spark: run strata update; it reads strata-feed-linux-aarch64.json.
  • Mac: the app, the Terminal and the DeepSeek engine are signed and notarized (Apple accepted all four submissions). The Mac Control is packed from the notarized Terminal.

Downloads

40 files. Three installers (Windows, Linux AppImage, Mac dmg) and the Mac updater archive Strata.app.tar.gz (0.2.9), with the update signatures for the Windows, Linux and Mac app; the four Control packages (0.1.55: Windows, Linux x86, Mac, Linux ARM64); 14 Qwen engine packages (0.1.55: Windows CUDA 13, CUDA 12 and three AMD packages; Linux CUDA 13, CUDA 12, four AMD packages and Intel SYCL; Mac Metal; Linux ARM64); six DeepSeek engine packages (0.1.55: Windows CUDA 13 and AMD RDNA3, Linux CUDA 13 and AMD rx9070, Mac Metal, Linux ARM64); strata-feed.json and strata-feed-linux-aarch64.json with their signatures; latest.json, install-manifest.txt, install.sh, install.ps1 and SHA256SUMS.txt. The DeepSeek CUDA packages are built for sm_86, sm_89 and sm_120.


Strata is free and open source. If it runs well on your PC, a coffee keeps the work on it going:

Buy Me A Coffee

Don't miss a new Strata release

NewReleases is sending notifications on new releases.