placing linux on my rtx spark laptop computer as a result of i haven’t got a microsoft account

tl;dr – boo hoo microsoft unhealthy. Arch Linux works, retains up with Windows in 7-Zip, and reviews the identical 116.0 GiB reminiscence pool to the OS and CUDA. My preliminary bootable setup and patches are here. This is for the ASUS ProArt P16 H7607BA-SE033W: the 128 GB RAM configuration with 6,144 CUDA cores and a 2 TB SSD.
When rumours began circulating a couple of laptop computer with over 100 GiB of RAM the GPU might entry, I began fascinated with all of the issues I might construct on it and all of the optimisations I might spend far too lengthy enjoying with. I’m very professional open-weight fashions. Being capable of run issues regionally and fiddle with RL, quantisation and fine-tuning on a laptop computer can be sick. I already publish my own GGUF quants on Hugging Face, with over 160,000 downloads up to now month.
So I used to be much less happy to seek out out concerning the Windows-only official support. There are loads of causes to hate Windows. Mine embrace the privacy concessions during setup, the years spent ready for Microsoft to let people put the taskbar on the side of the screen again, and the advertising. That final hyperlink is a collage of actual Windows promotions, courtesy of Pureinfotech. You get it. I can go on perpetually, so let me keep on subject.
Arch is my most well-liked distribution, and I’m on the Arch staff as a package maintainer. I already put it on IBM mainframes (my FOSDEM slides), so it was at all times going to be my place to begin right here. This construct makes use of Arch Linux ARM, the separate mission that ports Arch packages to ARM, with the {hardware} assist added on prime.
NVIDIA has been doing kernel work for Ubuntu, which gave me a place to begin. I included that, fastened the ACPI override allocation and framebuffer mapping wanted to get a console, and labored out the ACPI overrides from the laptop computer’s personal tables (thanks astra <3). The NVIDIA driver and ASUS speaker firmware got here from official locations on the web (pls do not sue me laptop corporations). Keyboard assist wanted a patched hid-asus, and audio wanted its personal machine driver.
I put this collectively right into a bootable USB and prolonged upstream Archinstall 4.5 to put in the {hardware} assist. The repo has the build scripts and patches, together with the steps to dump your individual ACPI tables and extract the speaker firmware from ASUS’s driver package deal regionally. Mine runs firmware H7607BA.300.
The construct inputs are hash pinned. The {hardware} packages I put collectively over the weekend are signed with my Arch Linux Package Maintainer key, and the ACPI overrides come from the laptop computer itself.
The show runs at 3840 × 2400 and 120 Hz, and I take advantage of NetworkManager, PipeWire, and rootless Podman with NVIDIA CDI. The installer holds the kernel, NVIDIA, power-management and firmware packages with IgnorePkg, whereas strange packages preserve updating from Arch Linux ARM.
CPU efficiency
I ran the suite on October 19 on native Arch Linux ARM, with kernel 7.0.0-1022-nvidia and NVIDIA driver 615.78.08. The laptop computer was plugged in with the efficiency profile chosen. For the CPU comparability, I used printed Windows outcomes.
The CPU check is native ARM64 7-Zip 26.04 with a set 32 MiB dictionary. I ran one warmup and three measured passes at every thread rely, then took the medians:
StorageReview tested a 128 GB HP OmniBook Ultra 16 with the identical 20-core N1X, operating native Windows ARM64 binaries. They report 7-Zip scores in GIPS, so I divided the MIPS scores in my uncooked logs by 1,000 to match. Higher is healthier.
Single-thread is principally a tie. With all 20 threads, my Linux setup is about 5% forward on compression and three% forward on decompression. The HP assessment does not specify its 7-Zip model or dictionary measurement, so these percentages examine the 2 laptop computer setups.
ComputerBase also tested a ProArt P16 with the 20-core N1X. Converted to GIPS, its Windows 7-Zip rating was 155.774; the median complete from my three runs was 157.084. Their end result sits inside my three-run vary of 155.759 to 157.193 GIPS. Their machine was the 64 GB configuration and ran 7-Zip 26.00, and the chart does not give the dictionary measurement.
The reminiscence cut up
The reminiscence is an even bigger flex. My Linux run reviews 116.0 GiB as each system RAM and CUDA’s complete, from the identical bodily pool. Windows divides the RAM into dedicated GPU, shared, and CPU-only regions. CPU workloads cannot use the devoted GPU area, and GPU allocations cannot use the CPU-only area.
The Windows NVIDIA app helps you to change the devoted reservation and reboot; Frandroid’s 128 GB ProArt P16 reached 96 GiB. CUDA can transcend that by allocating from shared RAM, topic to Windows’ reminiscence funds.
With a 91 GiB devoted reservation, Frandroid’s Windows setup reported a CUDA complete of 109.7 GiB, together with shared reminiscence. My Linux setup reported 116.0 GiB, about 6.3 GiB extra. What I care about is having the massive pool out there for CPU work too, with out transferring the reservation slider and rebooting between workloads.
Running Qwen regionally
I ran NVIDIA’s Qwen3.8-Flash-Next-FP4-Local checkpoint via vLLM with B12X CUDA kernels in a local ARM64 container, utilizing blended quantization and FP8 KV cache. I turned off pondering for this run.
Before loading the mannequin, Linux reported 110.9 GiB of accessible RAM. vLLM logged 68.2 GiB for mannequin loading and allotted one other 21.1 GiB to the KV cache. That’s almost 90 GiB allotted to the mannequin and KV cache on a laptop computer.
Model loading and compilation took about 16 minutes earlier than the primary request. The timings beneath begin after warmup. PLE embedding tables are backed by disk and profit from a heat web page cache; different parts use CPU offload. CUDA handles inference, with among the mannequin outdoors GPU reminiscence.
I gave Qwen two buggy Python helpers to assessment, an extended incident log with one failed operation to seek out, and a fee word to show into JSON. Each job ran thrice after warmup, with recognized solutions to verify in opposition to. I wished to know the way lengthy I’d wait and whether or not it returned the appropriate fields.
The incident job learn almost 10,000 tokens and returned the right request, trigger, and subsequent motion in underneath 6 s. Its reply was solely 39 tokens lengthy, which comes to six.8 tokens/s over the entire request. Most of the wait went into processing the immediate, so for this job the response time tells me greater than the tokens/s determine.
For code assessment, I estimated era pace as (output tokens − 1) / (response time − time to first token), with each instances in seconds. This consists of stream overhead. Frandroid ran Qwen3.8-Flash-Next coding tasks on its Windows ProArt:
Both ProArt setups are round 30 tokens/s. For inference, Frandroid used an 85 GiB devoted reservation and a context restrict of 262,144 tokens; my context restrict was 32,768 tokens. The prompts, quants, runtimes, and timing strategies differ. This compares two working configurations; it does not isolate the impact of the OS.
I additionally despatched 4 code opinions directly. The median batch completed in 5.314 s, producing 86.6 output tokens/s throughout all 4 requests mixed. That price consists of immediate processing and response overhead. All 12 solutions handed over three batches.
Then I left it biking via the three duties, one request at a time, for ten minutes. It completed 150 requests, 50 of every, and each reply handed the checks. Median response instances have been 4.036 s for code assessment, 5.921 s for the log, and a couple of.046 s for extraction. Comparing the primary ten and final ten repetitions of every job, median response instances grew by lower than 1.6%.
All 171 measured responses handed the checks. That’s three prompts repeated with deterministic decoding; the code-review verify verifies the regression outputs. I stored each reply and uncooked occasion stream and checked them in opposition to the summaries.
