Skip to content

Releases

2026.11.14.09

Choose a tag to compare

@rizagp rizagp released this 14 Nov 06:21

Unpack anywhere, then run setup.cmd (or zero-launcher.cmd once a model is there).

New since 2026.11.14.08:

  • Faster prompts on Arc Pro B60 / B70: the XMX prompt GEMM now prefetches its weights one chunk ahead by default. A B60's sweep measured the 27B's 4K prompt 1,322 -> 1,529 tok/s and 512 tokens 737 -> 867, with the same logits (issue #4, thanks to manoreken2). ARC_GEMM_XW_PF=0 turns it off.
  • DeepSeek-V4.1-Flash over several GPUs (--gpus N): its routed experts are split over the GPUs, and the rest runs whole on each. It has been checked on test models over 1-4 simulated GPUs (the same accuracy as one GPU). Speed on real cards: to be measured (issue #4).
  • Docs and website: every user's latest numbers (one to four B60s, Linux with direct GPU-to-GPU sums, a slow x4 link, the B70, the Arc 140T, long contexts up to 262K over four B60s).

iGPUs and every other model: the same logits bit for bit.

2026.11.14.08

Choose a tag to compare

@rizagp rizagp released this 14 Nov 04:26

Unpack anywhere, then run setup.cmd (or zero-launcher.cmd once a model is there).

New since 2026.11.14.07:

  • DeepSeek-V4.1-Flash UD-Q8_K_XL opens now (issue #4). Unsloth's part 1 of 9 holds only metadata and ends without the usual padding, and the GGUF reader refused it as "truncated". Keep the nine parts as they are: no merging is needed.
  • scripts\hf-get.ps1 downloads a whole folder of a model repository, so a split model arrives complete: powershell -File scripts\hf-get.ps1 unsloth/DeepSeek-V4.1-Flash-1017-GGUF UD-Q8_K_XL. It checks the drive's free space first and prints the command to run the model at the end.
  • Flash Next precise mode repaired (PR #21, thanks to chumbleyjl): precise KL on a code prompt 0.0046 / 0.0206 -> 0.0017 / 0.0022 (prompt / generation), the same speed. Default mode and every other model: the same logits bit for bit.

2026.11.14.07

Choose a tag to compare

@rizagp rizagp released this 14 Nov 02:17

Unpack anywhere, then run setup.cmd (or zero-launcher.cmd once a model is there).

New since 2026.11.14.06 (every other model: the same logits bit for bit):

  • DeepSeek-V4.1-Flash in Unsloth's UD-Q8_K_XL (unsloth/DeepSeek-V4.1-Flash-1017-GGUF, issue #4): the engine now reads MXFP4 weights (its routed experts; decoded exactly into the engine's int8 form, on the expert file and expert cache paths) and MXFP8 rows (its Engram table, a type of Unsloth's llama.cpp fork). Its other matrices are BF16, taken as Q8_0 at load. Checked on a small model with exactly these types: KL 0.0052 against the f32 reference. One GPU with the experts in RAM; the real model needs ~600 GB of RAM and a ~300 GB expert file on disk, written at the first load.

2026.11.14.06

Choose a tag to compare

@rizagp rizagp released this 14 Nov 01:17

Unpack anywhere, then run setup.cmd (or zero-launcher.cmd once a model is there).

New since 2026.11.14.05 (on one GPU and on Windows, results and speed unchanged):

  • Multi-GPU (--gpus): the direct GPU-to-GPU sums are now chosen at equal link speeds too (from 0.8x the host link; it was 1.1x). On two Pro B60s on Linux, with 14.1 GB/s direct and 14.2 through host memory, direct is clearly faster: the 27B's 4K prompt 1,384-1,442 -> 1,578-1,630 tok/s, a 4,210-token prompt 1,293 -> 1,515, generation 36.1 -> 37.8, the logits identical (issue #17, thanks to scenic6942). ARC_TP_P2P=0 / =1 still forces it off / on.

2026.11.14.05

Choose a tag to compare

@rizagp rizagp released this 13 Nov 21:51

Unpack anywhere, then run setup.cmd (or zero-launcher.cmd once a model is there).

New since 2026.11.14.04 (on one GPU, results and speed unchanged: the same logits bit for bit):

  • Multi-GPU (--gpus): the sums go straight from GPU to GPU where the links allow it. At start the engine times every link (each GPU to host memory and back, and GPU to GPU when the driver reports peer access, as Linux does for B60s on one switch) and logs them with its choice. When direct copies are faster, each sum crosses PCIe once instead of twice and the GPUs read their own memory. The logits are the same bit for bit. ARC_TP_P2P=0 / =1 forces it off / on. On Windows the B60s report no peer access, so nothing changes there. Speed on Linux B60s: to be measured (issue #17).
  • Server: a request that asks for Connection: close (or HTTP/1.0 without keep-alive) gets it, and the connection ends after the reply instead of waiting up to 600 s.

2026.11.14.04

Choose a tag to compare

@rizagp rizagp released this 13 Nov 20:48

Unpack anywhere, then run setup.cmd (or zero-launcher.cmd once a model is there).

New since 2026.11.14.03 (results and speed unchanged: the same logits bit for bit):

  • Fixes from a static audit of the last two days' changes (docs/audit-2026-11-14.md; no high or medium findings):
    • The OpenAI API's logit_bias: a token id larger than 2,147,483,647 is now ignored. Before, it wrapped around and biased a different token.
    • Internal hardening, with no change in behaviour today: a bounds check on the runtime's buffer mapping, write-back only for maps that were written, build-time limits on the fused norm kernel, and a stricter end for its rotation mark.
    • A unit test for the Linux remote-access password hash, run in CI.

2026.11.14.03

Choose a tag to compare

@rizagp rizagp released this 13 Nov 20:04

Unpack anywhere, then run setup.cmd (or zero-launcher.cmd once a model is there).

New since 2026.11.14.02 (results unchanged: the same logits bit for bit):

  • Arc 140T (Core Ultra 9 285H and other Arrow Lake H): faster prompts. The prompt's int8 matrix kernel now gets its inputs in the order the matrix engines read them, written that way by the kernels that make them, with no extra pass. On a 285H that kernel ran 7 % faster at 4K tokens and 13 % at 512 in xw_peak (issue #5). On by default in the 140T preset; ARC_GEMM_XW_PACK=0 turns it off.
  • The kernels are always compiled for the GPU they run on. Before, a machine that also had Mesa's OpenCL (rusticl, on Linux), Microsoft's OpenCLOn12 (on Windows), or an Intel iGPU next to an Arc card could compile the kernels for the wrong device. Now Intel's own OpenCL is used, for the same GPU Level Zero runs on (issue #11).

2026.11.14.02

Choose a tag to compare

@rizagp rizagp released this 13 Nov 19:35

Unpack anywhere, then run setup.cmd (or zero-launcher.cmd once a model is there).

New since 2026.11.14.01 (results unchanged; the default path gives the same logits as before):

  • The norm and the H8 rotation of its rows in one kernel, opt-in on Arc B-series cards: ARC_H8_NORM=1. Each layer input used to be normalized with an f32 copy written out, then read back to be rotated for the int8 matrix products; now one kernel does both, with the same results bit for bit. On a Pro B60 those two steps take ~232 ms of the 27B's 4K prompt. (docs/xe2-tuning.md section 13.5)
  • bench\long_prefill_probe.ps1: the prompt's profile at 64K / 131K / 262K tokens.

2026.11.14.01

Choose a tag to compare

@rizagp rizagp released this 13 Nov 18:36

Unpack anywhere, then run setup.cmd (or zero-launcher.cmd once a model is there).

New since 2026.11.13.11 (results unchanged; one GPU gives the same logits as before):

  • Split models can keep their decoded weights. A model split over several GPUs used to compare the whole model's size with --budget, so the 27B decoded its weights for every prompt chunk even on 2-4 Pro B60s. Each GPU now counts only its own share: --budget 20 over 2 B60s or --budget 10 over 4 keeps the 27B's decoded weights on the cards. The default budget is unchanged. (docs/xe2-tuning.md section 13.1)
  • The prompt's matrix kernel can prefetch its next chunks, opt-in on Arc B-series cards: ARC_GEMM_XW_PF=1 (weights), 2 (activations) or 3 (both), ARC_GEMM_XW_PFD=1/2/4 chunks ahead. .\bench\xw_sweep.ps1 -Model <gguf> -Prefetch tries them all. (section 13.2)
  • The website shows the newest Pro B60 numbers: the 27B's 4K prompt on 1 / 3 cards, and Flash Next over 1 / 2 / 4 cards.

2026.11.13.11

Choose a tag to compare

@rizagp rizagp released this 13 Nov 07:18

Unpack anywhere, then run setup.cmd (or zero-launcher.cmd once a model is there).

New since 2026.11.13.10 (the engine unchanged):

  • zero-server start -Host 0.0.0.0, also --host 0.0.0.0 and --host=0.0.0.0, the same name as serverz's own option: the server reachable from other computers. Before, only -ListenHost worked (it still does), and --host stopped with "unknown option". --port=8091 works too.
  • A mistyped option now suggests the closest name more sensibly (--hots: "did you mean -Host?").