Skip to content

Mach X v0.2.25

Choose a tag to compare

@Red-Weasel Red-Weasel released this 20 Oct 19:35

Everything since v0.2.23 (v0.2.24 was not published): Laguna S 2.1 and Inkling-Small run in ie serve on one card or two, DeepSeek-V4.1-Flash decodes 10.6 % faster with byte-identical output, MiMo decode attention is faster, host-device copies on the new models and in the VRAM self-test go through pinned memory, and the 27B's ie serve no longer crashes on exit.

Build gate: the public tree builds from scratch. Its ie differs from the tested, installed v0.2.25 only in help text and comments (--spec is now documented as near-lossless), and 9 host test suites pass.

Mach X v0.2.25

Everything since v0.2.23 (v0.2.24 was not
published). Measured October 13–18, 2026, on Arc Pro B70 cards; greedy unless a line says otherwise.

Laguna S 2.1 and Inkling-Small run

  • Laguna S 2.1 (poolside, 118B-A8B, UD-Q4_K_M): ie serve with its chat template, thinking, tool calls and prefix reuse.
    Its 24-token greedy text matches llama.cpp. On two cards each card runs half the layers and caches its own layers'
    experts. After a 548-token prompt, decode goes from 20.8 tok/s on one card to 32.9 on two, with identical tokens. The
    full ie serve test on two cards (chat, a tool call, the tool result, a streamed tool call) decoded 33.7–35.1 tok/s.
    On two cards, card 1 reads the next prompt chunk while card 2 finishes the current one: prefill on a 2,192-token
    prompt goes from 119.1 to 178.4 tok/s, with the same tokens.
  • Inkling-Small (Thinking Machines Lab, 276B-A12B, UD-Q4_K_XL): ie serve with its chat template (8/8
    byte-identical to the GGUF's own), thinking and tool calls. Its greedy text matches llama.cpp (the reference graph in
    llama.cpp PR #25731). On two cards: 22.45 tok/s decode with a cold expert cache; prefill on a 2,200-token prompt goes
    from 146.0 to 211.6 tok/s with the cards overlapped.

DeepSeek-V4.1-Flash decodes 10.6 % faster

The expert stream cache gets extra slots from a 3 GiB block that prefill borrows as scratch and decode gets back, so
they cost no VRAM at the prefill peak. Decode goes from 8.42 to 9.31 tok/s on the gate prompt; the output is
byte-identical with the block on and off. IE_DS41_ELASTIC_GIB=0 turns it off.

The DeepSeek V4 and V4.1 tool-call parsers are hardened: a stray > or quote left on a tool name is cleaned, markup in
a name is refused, and one-reading JSON slips are repaired (raw control characters, invalid escapes, trailing commas).
A malformed call still executes nothing.

MiMo-V2.6-Flash decode attention

Two heads per sub-group with float tiles of 8 keys. A full layer at 30K positions × 8 rows takes 2.03 ms instead of
3.74, bit-identical; ie serve at 38K tokens is about 6 % faster.

Reliability

  • Pageable host memory: on fresh contexts, copies from it faulted the card (-EFAULT, then DEVICE_LOST). Laguna's and
    Inkling's host↔device copies now go through a 64 MiB pinned buffer per card. The VRAM page-alias self-test, which runs
    on every device allocation of 64 MiB or more, does its copy-engine writes and read-back through pinned memory too.
  • The Qwen3.8-27B's ie serve segfaulted on every exit (restart points freed after their allocators); fixed.
  • --spec is documented as near-lossless, not lossless: on rare near-ties the verify pass can pick a different token
    than plain greedy decoding. Run without --spec for bit-exact output.