USM

OPEN SOURCE · LINUX · NVIDIA · v0.1.0-beta.1

Your GPU's spare memory,
as fast swap.

When RAM fills up, Linux swaps to the disk and everything slows down. USM swaps into the idle memory on your graphics card instead: ~9 µs per page, ~7× faster than NVMe swap. A guard keeps the desktop responsive while it happens.

Unmodified apps · no kernel patches · works with Secure Boot · MIT licensed

01The slowdown at 90%

Running out of RAM rarely crashes anything. The trouble starts earlier: around 90% full, Linux starts moving memory it hasn't used lately to the disk. From then on, every app that touches a swapped-out page waits for that disk. However fast your SSD is, it is far slower than memory.

NVMe SSD swap
~55 µs+, seconds when busy
USM · GPU VRAM
~9 µs
RAM
~0.1 µs

Meanwhile, most laptops with an NVIDIA GPU carry 4–12 GB of video memory that sits almost empty unless you game, render or run AI. USM puts it to work.

02How it works

⚡

VRAM swap tier

A small daemon borrows GPU memory through the NVIDIA driver and serves it to the kernel as a block device (ublk). Linux uses it as its first swap device. lz4 compression fits ~3× more: a 6 GB card holds ~16 GB.

usm on · usm off
🛡️

Guard

On a real memory stall it pauses a busy background app for a few seconds. Never the app in front, never one playing sound. Switch to a paused app and it runs again at once. Nothing gets killed.

usm guard on
🎮

Gives the GPU back

Need the GPU for a game or AI? One click in GNOME's Quick Settings (or usm off) and the VRAM is free in seconds. Data moves to RAM, or straight to a disk file when RAM is full.

Quick Settings → VRAM swap
😴

Sleep-safe

Before suspend or hibernate the tier empties itself and switches off; after waking it comes back. If it can't empty, the sleep is refused rather than risking a hang.

automatic
apps→RAM→zswap · 10%→GPU VRAM · lz4 3×→your disk swap

03Numbers, not promises

0µs

per page fault from VRAM
RTX 4060 laptop

0×

faster than NVMe swap
per page

0k/s

page faults per second
4 queues

0/4

overload runs that hung
zram: 3 of 6

8 apps × 1.5 GiB on 8 GiB of RAM, guard on

Desktop's worst response
zram 75–320 msUSM 0.5–61 ms
Slowest login
zram 7–21 sUSM 2.3–6.8 s
Work done (median)
zram 5.9 GUSM 9.3 G

Every app's data was verified page by page; nothing was killed. Full tables and a script to benchmark your own PC: docs/benchmarks.md.

04Install

# download, check, install (asks a few questions)
curl -LO https://github.com/kha333n/usm/releases/download/v0.1.0-beta.1/usm-0.1.0-beta.1-linux-x86_64.tar.gz
tar xzf usm-0.1.0-beta.1-linux-x86_64.tar.gz && cd usm-0.1.0-beta.1-linux-x86_64
sudo ./install.sh
usm status
Linux systemd, cgroup v2, kernel with ublk. Tested on Ubuntu 26.04; Ubuntu 24.04+, Debian 13, Fedora, Arch should work.
GPU NVIDIA with the NVIDIA driver. No CUDA toolkit needed. AMD / Intel: not yet. Help wanted.
Desktop GNOME 45–50 for the guard and the Quick Settings switch. Elsewhere: the tier and logger.
⚠ Beta. USM is in beta testing, was written mostly with AI (Claude), and has been tested on few machines. It works very well there, but if the daemon crashes or the GPU resets, data swapped into VRAM is lost and those apps crash. Don't install it on critical systems. Remove any time: sudo usm uninstall.

Dedicated to Ram Altman

"From a global allocation perspective, actually, it's quite terrible to have everybody have a bunch of the world's limited supply of DRAM sitting in their own computer."

OpenAI's CEO, on the Cheeky Pint podcast, October 2026. A week later he renamed himself "Ram Altman" on X and posted "i want you to have so much ram. lets build more." While he builds more, we found a few gigabytes of very fast memory doing nothing in our own computers, on the graphics card, and borrowed it. The full story →

05Help it grow