nbd-vram trasforma la memoria video in spazio di swap
Un repository pubblicato su GitHub propone di usare la VRAM delle GPU NVIDIA come dispositivo di swap su Linux. Il progetto, chiamato nbd-vram, nasce per laptop con RAM saldata e senza possibilità di espansione. Alloca fino a 7 GB di VRAM tramite API CUDA e li espone come block device attraverso il protocollo NBD su socket Unix. Il risultato dichiarato è un aumento della memoria indirizzabile da 16 GB a circa 46 GB, combinando RAM, VRAM, zram e swap su SSD.
Come funziona tecnicamente il meccanismo

Il demone alloca memoria sulla GPU con le chiamate cuMemcpyHtoD e cuMemcpyDtoH. Non richiede moduli kernel personalizzati né simboli NVIDIA. Il driver NBD integrato nel kernel collega il socket al device /dev/nbdX, che viene poi configurato come swap con priorità alta. L’ordine di riempimento è RAM, poi VRAM su PCIe, quindi zram e infine disco. Il codice evita l’API nvidia_p2p_get_pages_persistent perché su GPU GeForce consumer restituisce sempre EINVAL. La scelta del socket Unix riduce la latenza rispetto a connessioni di rete.
Vantaggi e limiti per chi sviluppa automazioni AI
Per carichi di inferenza o fine-tuning su laptop con GPU mobile, la soluzione permette di tenere in memoria dataset più grandi senza toccare subito lo SSD. Il progetto è stato testato su Pop!_OS con kernel 6.17 e driver 580.159.03, usando una RTX 3070 Laptop da 8 GB. Lo svantaggio principale è la latenza PCIe: il trasferimento tra host e VRAM è più lento dell’accesso diretto alla RAM. Inoltre, se la GPU è usata anche per rendering o calcolo simultaneo, la contesa sulla memoria video può ridurre le prestazioni complessive. Il repository
Configurazione e test pratici

L’installazione prevede la compilazione del demone e l’avvio del servizio systemd. Una volta montato /dev/nbd0 come swap, si può verificare l’ordine con swapon --show. Gli script inclusi controllano anche lo stato di alimentazione della GPU per evitare allocazioni quando la scheda è spenta. Chi lavora con pipeline di machine learning può integrare questo swap in script di addestramento che superano i limiti della RAM fisica, ma deve monitorare la temperatura e il consumo della GPU durante sessioni prolungate.
FAQ
Funziona solo con schede RTX? Il codice è stato verificato su RTX 3070 Laptop, ma l’allocazione CUDA è supportata anche su altre architetture Turing e successive.
Serve ricompilare dopo aggiornamenti kernel? No. Il demone gira in user space e usa solo il driver NVIDIA e il modulo nbd già presente nel kernel.
La VRAM resta disponibile per CUDA durante l’uso come swap? Parte della VRAM viene riservata al demone, quindi la memoria libera per altri carichi CUDA diminuisce proporzionalmente.
---
📖 Leggi anche
- Agentic Coding: Una Trappola per lo Sviluppo Software?
- Lean-ctx: Ottimizzatore Ibrido Riduce Consumo Token LLM del 89-99%
- Rust rivoluziona Claude Code: Avvio 2.5x più rapido e volume ridotto del 97%
Hai bisogno di una consulenza?
Aiuto aziende e startup a sviluppare software, automatizzare processi e integrare AI. Parliamone.
Scrivimi