← All guides

Xing4.0 29B A4B on RTX 3090 (2026): Fits, Needs a Fork

China Telecom's Xing4.0-29B-A4B (formerly TeleChat) fits on one RTX 3090. The official 4-bit GGUF is 18.72 GiB, and its MLA attention keeps the context cache small. The catch is software: the architecture is not in stock llama.cpp, Ollama or LM Studio yet, so today you run it from a fork. Here is what fits, what runs, and whether it beats the Qwen model you already have.

Bottom Line

  • Yes, one RTX 3090 runs Xing4.0-29B-A4B fully on the GPU. The official 4-bit GGUF is 18.72 GiB. China Telecom’s own llama.cpp guide was tested on an RTX 3090 at 64K context.
  • You cannot run it in stock llama.cpp, Ollama or LM Studio yet. Support is an open, unmerged pull request (#29012, opened 2026-09-17). Today you need the xing4_0-port fork or the vendor’s prebuilt Windows package.
  • Long context is cheap on this model. It uses MLA attention. By our math the full 256K cache is about 11.25 GiB in f16, and about 6 GiB at q8_0.
  • A 16GB card needs a community quant, not the official file. Two exist at 12.04 GiB and 12.92 GiB.
  • It is not a clear upgrade over Qwen3.6-35B-A3B. The vendor’s own table has Qwen winning 5 of 9 benchmarks, including SWE-bench Verified.

We have not found a public tokens-per-second number measured on an RTX 3090. The speed figures below come from other hardware and are marked community-reported.

What Xing4.0-29B-A4B Is

Xing4.0 is the new name of China Telecom’s TeleChat series. The Hugging Face repo XingChen-AGI/Xing4.0-29B-A4B was created on 2026-09-16 under the Apache-2.0 license.

From the model card and config.json, read 2026-09-18:

SpecValue
Total / active parameters29B / 4B per token (card); 29.51B per the llama.cpp PR
ArchitectureXing4_0ForCausalLM, MoE with MLA attention, mHC hyper-connections, MTP
Layers40 (first 2 dense)
Experts64 routed + 1 shared, 4 active per token
AttentionMLA: kv_lora_rank 512, qk_rope_head_dim 64, 32 heads
Context256K native (max_position_embeddings 262,144); card says extensible to 512K
Vocab131,072
MTP layers1 (num_nextn_predict_layers)

The card says the model was trained entirely on Huawei Ascend NPUs. It also says the model has “targeted adaptation and format alignment” for OpenCode, Claude Code, OpenClaw and Hermes. We did not test that claim.

Can You Load It Today?

RuntimeStatus on 2026-09-18
llama.cpp (stock)No. PR #29012 “Add Support for Xing4.0” is open and unmerged. The repo’s bot flagged it as a large, multi-backend PR.
llama.cpp fork shuxiaoqiong/llama.cpp, branch xing4_0-portYes. This is the branch the official guide builds, with CPU and CUDA support.
Vendor prebuilt Windows packageYes, on NVIDIA cards from the 3090 generation (sm_86) and newer, per the guide.
Ollama / LM StudioNo. Both load GGUF through llama.cpp-based engines, and we found no Xing4.0 support in either.
MLX (Apple Silicon)No. mlx-lm PR #1901 “Add xing4_0 model support” is open. The MLX quant publisher says the files “will not load anywhere” until it merges.
vLLM, SGLang, KTransformersListed as supported on the model card. We did not test them.

If you pull the GGUF into Ollama or LM Studio now, expect an unknown-architecture error. That is not a broken download.

What Fits: File Sizes

File sizes come from the Hugging Face API file trees, read 2026-09-18.

RepoFileSize
XingChen-AGI (official)IQ4_NL, 3 split files18.72 GiB
SolenopsisCampoQ4_K_M17.65 GiB
SolenopsisCampoIQ3_M12.92 GiB
SolenopsisCampoIQ3_XXS10.79 GiB
jmarcenodynamic 3.31 bpw (IQ4_XS/IQ2_XXS experts, Q8_0 attention)12.04 GiB
SolenopsisCampof1658.16 GiB
suzu89 (MLX, Mac)4-bit / 6-bit / 8-bit15.51 / 22.37 / 29.23 GiB

The MLX quants drop the MTP layer. Its publisher reports that it is a 41st layer with 1.71B parameters.

KV Cache: Why MLA Makes Context Cheap

MLA stores one small compressed vector per token per layer instead of full keys and values for all 32 heads. From config.json, that vector is kv_lora_rank (512) plus qk_rope_head_dim (64) = 576 values.

40 layers x 576 values x 2 bytes (f16) = 46,080 bytes per token (45 KiB)
q8_0 (34 bytes per 32 values): 40 x 576 x 34/32 = 24,480 bytes per token

This is our arithmetic, and it assumes the fork caches the compressed form. The evidence says it does. If it stored full keys and values, the cache would be about 800 KiB per token and 64K context alone would need about 50 GiB. The official guide runs 64K on a 24GB card, and jmarceno reports running 262K across two 12GB cards.

Contextf16 cache (est.)q8_0 cache (est.)
32K1.41 GiB0.75 GiB
64K2.81 GiB1.49 GiB
128K5.63 GiB2.99 GiB
256K11.25 GiB5.98 GiB

Fit by Card (estimates)

Each sum is file size plus our cache estimate. We exclude compute buffers, so treat each row as a floor.

HardwareRecommended fileContext that fitsSum
16GB card (RTX 5060 Ti 16GB, 4060 Ti 16GB)jmarceno 12.04 GiB or IQ3_M 12.92 GiB64K at q8_0; 128K is tight with the 12.04 file13.5-15.0 GiB
24GB card (RTX 3090, 4090)official IQ4_NL 18.72 GiB128K at q8_0, 64K at f1621.5-21.7 GiB
24GB card, full 256KIQ4_NL + q8_0 cachedoes not fit24.70 GiB
32GB card (RTX 5090)Q4_K_M 17.65 GiBfull 256K at f1628.90 GiB
Mac, 24GB+ unifiedMLX 4-bit 15.51 GiBonly after mlx-lm #1901 merges15.6 GB peak at short prompts (publisher)

The official Windows script defaults to a 262,144 context. On a 24GB card our estimate says that does not fit with the 4-bit file. The vendor’s own run-server.bat uses 65,536 with a q8_0 cache, so start there.

Speed: What Has Been Reported

No one has published a tok/s number on an RTX 3090 that we could find. Here is what exists:

SourceHardwareFileReply speed
llama.cpp PR #29012 (the port’s author)GPU not statedIQ4_NL, 19 GiB151.65 tok/s (tg128)
jmarceno GGUF card2x RTX 3060 12GB12.04 GiB dynamic65.9 tok/s (tg128); 52.9 tok/s in llama-server
suzu89 MLX cardM5 Max, 128GB4-bit MLX21.2 tok/s

All three are community-reported. The PR author also reports perplexity going from 8.67 (F16) to 8.77 (IQ4_NL), about 1% worse.

With 4B active parameters, a 3090 should land between the two-3060 result and the PR figure. That is our inference, not a measurement. Measure your own with llama-bench from the fork build.

The model card claims MTP. We found no test of MTP speculative decoding for this model in llama.cpp. jmarceno’s launch command turns it off with --spec-type none, so do not count on an MTP speedup yet.

Xing4.0 vs Qwen3.6-35B-A3B

The model card compares Xing4.0 against Qwen3.6-35B-A3B and Gemma4-26B-A4B. All scores are vendor-reported by China Telecom.

BenchmarkXing4.0-29B-A4BQwen3.6-35B-A3BWinner
IFBench69.6765.50Xing
AIME202690.0092.70Qwen
AA.LCR61.0062.00Qwen
Tau3-Bench64.6367.20Qwen
Claw-Eval76.5574.54Xing
SWE-bench Verified75.0076.00Qwen
Terminal-Bench 2.157.5051.50Xing
SWE-bench Multilingual66.0067.20Qwen
DeepresearchBII60.8059.70Xing

The thing most launch coverage skips: on the vendor’s own table, Qwen3.6-35B-A3B wins 5 of the 9 rows. That includes SWE-bench Verified, the coding number most people care about. The headline Claw-Eval 76.55 is a 2-point lead.

So who should try it?

  • You run OpenClaw or terminal agents. Claw-Eval (+2.0) and Terminal-Bench 2.1 (+6.0) are the rows where Xing leads. Test it on your own tasks.
  • You want a smaller file on 24GB. The official Xing 4-bit file is 18.72 GiB. Our MoE vs dense on 24GB page puts Qwen3.6-35B-A3B Q4_K_M files at 20-22GB. Xing leaves more room for context.
  • Everyone else: stay on Qwen3.6-35B-A3B or the dense Qwen3.8-27B until llama.cpp merges support. They run in Ollama and LM Studio today.

One more practical note. The MLX quant’s publisher reports that the model “tends to write its reasoning trace in Chinese even for English prompts.” Turn thinking off (enable_thinking: false) if you read the trace.

How to Run It on an RTX 3090

  1. Download the three xing4_0-29b-IQ4_NL-0000X-of-00003.gguf files from XingChen-AGI/Xing4.0-29B-A4B-GGUF.
  2. On Windows, use the vendor’s prebuilt package from the official guide. On Linux, build shuxiaoqiong/llama.cpp on branch xing4_0-port with CUDA on.
  3. Start the server at 64K with a q8_0 cache, as the vendor’s script does:
llama-server -m xing4_0-29b-IQ4_NL-00001-of-00003.gguf -ngl 999 -fa on \
  -c 65536 -ctk q8_0 -ctv q8_0 --jinja
  1. Use the card’s sampling: temperature 0.8, top_p 0.95, repetition penalty 1.05 for coding and agents; temperature 1.0 for general reasoning.
  2. Raise -c to 131072 only after you check free VRAM with nvidia-smi.

For what each flag does, see llama.cpp flags explained.

What to Buy

A used RTX 3090 is the card this model was tested on. It holds the official 4-bit file with room for 128K of q8_0 context.

Prices as of September 2026: our August reference range for a used 3090 was $1,000 to $1,300. On 2026-09-16 the gpudojo tracker showed used listings from $1,399. That is one scraped tracker, so check current listings. Read how to buy a used RTX 3090 safely first.

Check RTX 3090 24GB prices on Amazon

On a 16GB budget, the RTX 5060 Ti 16GB runs the 12 GiB community quants at 64K context. As of September 2026 it sells for $589 to $805, well above its $429 MSRP. You give up some quality for the smaller file: jmarceno measured +19.9% perplexity against the official IQ4_NL.

Check RTX 5060 Ti 16GB prices on Amazon

Do not buy a card for this model alone. Its runtime support is days old, and the Qwen models above run on the same hardware today.

Sources

  • Hugging Face API, model card and config.json, XingChen-AGI/Xing4.0-29B-A4B (created 2026-09-16, Apache-2.0, 31,215,031,088 safetensors parameters including the MTP layer), read 2026-09-18
  • Hugging Face API file trees: XingChen-AGI/Xing4.0-29B-A4B-GGUF, SolenopsisCampo/Xing4.0-29B-A4B-GGUF, jmarceno/Xing4.0-29B-A4B-GGUF, suzu89/Xing4.0-29B-A4B-{4,6,8}bit-MLX, read 2026-09-18
  • jmarceno GGUF card: recipe, perplexity, 2x RTX 3060 speed and VRAM (community-reported), read 2026-09-18
  • suzu89 MLX card: mlx-lm support status, M5 Max speed, MTP layer size (community-reported), read 2026-09-18
  • Official llama.cpp deploy guide, XingChen-AGI/Xing4.0-29B-A4B GitHub tutorial/llama.cpp/README_EN.md (RTX 3090 test machine, 65,536 context, q8_0 cache), read 2026-09-18
  • GitHub API: llama.cpp PR #29012 (open, created 2026-09-17) and issue #28153 (open); mlx-lm PR #1901 (open, created 2026-09-18), read 2026-09-18
  • Price reference: used RTX 3090 and RTX 5060 Ti 16GB ranges from our tracked price sheet (Aug 2026, 3090 re-checked 2026-09-16)

See Also

Need OpenClaw fixed live?

Remote rescue sessions for gateway, auth, tunnel, VPS, and model access problems.

See Rescue Session

Read next

Bonsai 2 27B on RTX 3060 12GB: Fits, Needs a Fork (2026)
Ternary Bonsai 2 27B is a 1.72-bit Qwen3.8-27B that fits a 12GB RTX 3060, and even an 8GB card. It needs the PrismML llama.cpp fork, not Ollama or LM Studio. File sizes, KV cache math for 12GB, vendor-reported quality, and how it compares to Qwen 3.8 27B on a 3090.
Qwen 3.8 27B on RTX 3090 (2026): 41 tok/s, 66 With MTP
Qwen3.8-27B on one RTX 3090: about 40 tok/s in llama.cpp at Q4, 66 tok/s with the built-in MTP head at 8K context, and only +33% at 131K. File sizes, KV cache math, the context that fits in 24GB, and when a 4090 is worth more.
Is NVLink Worth It for Local LLMs? Dual RTX 3090
NVLink does nothing for Ollama and llama.cpp — and delivers about +50% throughput on two RTX 3090s under vLLM tensor parallelism. Which engine you run decides the answer, and the 3090 is the last GeForce card where the question exists at all.
Tesla P40 for Local LLMs: 24GB for ~$300, What It Costs You
The Tesla P40 is the cheapest 24GB of VRAM you can buy — $240-350 used in 2026. It is also a 2016 card NVIDIA is walking away from. The honest verdict.