← All guides

RTX Spark Slow on Linux? (2026): Unplug It or Use WSL

On native Linux, an RTX Spark laptop ran gpt-oss 120B at 13.9 tok/s, against 65.4 on Windows on the same machine. The cause is power management, not Linux itself: on AC power the GPU clock drops to about 780 MHz. Unplug the laptop and Linux runs at 61-67 tok/s. WSL runs at 65.1. Here is each symptom, its cause, and the measured fix.

Bottom Line

Native Linux on an RTX Spark laptop runs at about one fifth of the Windows speed when plugged in. The cause is a power-management component that only Windows can read. Two workarounds give back the speed today.

Symptom on native LinuxCauseFixMeasured result
gpt-oss 120B at 13.9 tok/s (Windows: 65.4)GPU clock held at ~780-790 MHz on AC powerUnplug the laptop~61-67 tok/s in LM Studio, clock ~1,800 MHz
Same slowdownNPCF power table is encrypted; no Linux equivalentRun the model in WSL on Windows65.1 tok/s on gpt-oss 120B
vLLM at 39.5 tok/s across 8 clientsSame clock capRun vLLM in WSL127 tok/s across 8 clients
Linux sees 28GB of a 128GB laptopFirmware reserves 96GB for the GPUSet the GPU reservation to 4GB from WindowsLinux sees 120GB
WSL runs out of memory on a big modelWSL gets 14GB by defaultRaise memory= in .wslconfigLoad size is then set by your limit

All figures come from one tester (MindStudio, MSI Prestige RTX Spark laptop, published 1 November 2026) unless marked otherwise. We did not test an RTX Spark machine.

What the headlines got wrong. The story spread as “inference slows to 35% on Linux.” The measured numbers say something else. 13.9 / 65.4 is 21%, not 35% (our arithmetic). And Linux is not slow in general: unplugged, it ran at about the Windows speed. This is a plugged-in power-state problem, so the fix is about power, not about the distro or the driver version.

What is happening

The RTX Spark laptop chip shares one memory pool between CPU and GPU, and one power budget between them. On Windows, a firmware component called the NVIDIA Platform Controllers and Framework (NPCF) sets how that budget is split. MindStudio reports three things about it:

  1. NPCF is Windows-only. It has no Linux equivalent.
  2. Its power table is encrypted. Only Windows can decrypt it.
  3. Disabling NPCF on Windows reproduces the slowdown. With NPCF off, one run fell from about 83 to about 31 tok/s. Turning it back on restored the speed.

Without NPCF, the Linux system falls back to a conservative power state when it is plugged in. MindStudio measured the clock at about 780-790 MHz under load on AC power. On Windows the same GPU ran near 2.2 GHz. A long benchmark took about 8 minutes on Windows and 37 minutes on Linux.

A developer on NVIDIA’s forum reported that on an affected unit “the EC publishes 0W power limits and the SoC falls back to 20W”, and asked for owner keys. NVIDIA replied: “We will not be providing keys for installing custom FW.” Both quotes come from Byteiota’s report; we did not read the forum thread.

Fix 1: unplug the laptop

On battery, the Linux system did not hold the low clock. MindStudio measured about 1,800 MHz under load and about 61-67 tok/s in LM Studio, against about 15 tok/s plugged in.

Use this to check that your setup works, or for a short session. It is not a fix for an always-on agent or a server, because the battery runs down.

Fix 2: run the model in WSL

WSL on the same laptop matched Windows: 65.1 tok/s on gpt-oss 120B against 65.4 natively, and vLLM at 127 tok/s across eight clients against 39.5 on native Linux.

WSL gets 14GB of memory by default. Raise it before you load a large model. In %USERPROFILE%\.wslconfig:

[wsl2]
memory=96GB

Pick the value from your own model size plus room for the KV cache. gpt-oss 120B needs about 61GB loaded at the 96GB GPU split (see Best Local LLM for RTX Spark). Then restart WSL with wsl --shutdown.

Fix 3: give Linux its memory back

On the MSI Prestige that MindStudio tested, the firmware reserved 96GB of the 128GB pool for the GPU, and native Linux saw only 28GB. The split can be changed only from Windows.

  • Boot Windows and set the GPU memory reservation to 4GB in the vendor tool.
  • Reboot into Linux. MindStudio reports Linux then saw 120GB, with a full 4K/120Hz desktop, audio, touchpad, keyboard and CUDA working.

MindStudio did not publish a large-model tok/s figure at the 4GB setting. The clock cap from Fix 1 still applies when you are plugged in. Other RTX Spark laptops ship with different default splits; StorageReview measured 62.5GB GPU-usable on a Surface Laptop Ultra at its default.

The distro and driver

MindStudio’s working install was Omarchy (Arch-based), whose kernel already bundles NVIDIA’s open-source driver. A Debian attempt came first and did not get there. Neither path fixes the clock cap. No driver version is reported to remove it.

Find your own number

Your figure will differ by laptop model, runtime, quant, and power mode. Measure it before you plan around it:

  1. Load the same model and prompt on Windows and on Linux.
  2. Run it plugged in, then on battery. Note tok/s each time.
  3. On Linux, watch the GPU clock during generation with nvidia-smi -q -d CLOCK.
  4. If the plugged-in clock sits near 800 MHz and the battery clock is far higher, you have this problem.

If you need native Linux, buy for it

If your plan is a Linux inference box, the laptop is the wrong form for it today. The DGX Spark uses the same GB10-class chip, ships with Linux (DGX OS), and ran gpt-oss 120B at 61 tok/s in the same MindStudio comparison. DGX Spark vs Strix Halo compares it with the cheaper 128GB route, which runs Linux with ROCm or Vulkan. For a machine list by memory tier, see the gear list.

If you already own the laptop, use WSL for long runs and wait for a driver fix. NVIDIA has published no timeline as of 6 November 2026.

Sources

See Also

Read next

Best GPU for Fine-Tuning vs Inference: Why the Answer Flips
Fine-tuning and inference reward opposite GPU traits. Inference wants bandwidth, so the RTX 5090 wins. Fine-tuning wants capacity and interconnect, and NVIDIA removed NVLink after the RTX 3090 — which is why two 3090s can beat two 5090s for training. Full VRAM math for full/LoRA/QLoRA, plus 2026 prices.
Two Used RTX 3090s or One RTX 5090? 48GB Slow vs 32GB Fast
Dual used RTX 3090s cost $2,000-2,600 for 48GB of VRAM. One RTX 5090 costs $4,300-5,000 for 32GB. The 2026 price spike flipped this comparison: the dual build is now half the price AND holds a 70B. Here is the honest tradeoff, including the 700W problem.
RTX 3090 vs 4090 for Local LLMs (2026): Which GPU Should You Buy?
RTX 3090 vs 4090 for local LLMs and OpenClaw: same 24GB VRAM, different speed, power, cost, and upgrade logic. Clear buying recommendation with model picks.
Best Local LLM for RTX 4090: 24GB VRAM Picks + OpenClaw Setup
The best local LLM for the RTX 4090 24GB. 2026 picks: Gemma 4 26B-A4B (Q4_K_M, ~85 tok/sec), Qwen 3.6 27B (Q4_K_M), Laguna XS 2.1 (agentic coding), gpt-oss 20B (MXFP4), with quants, tokens/sec, and OpenClaw setup.