Red Hat annuncia Nova, un nuovo driver open-source per le GPU NVIDIA scritto totalmente in Rust per rimpiazzare Nouveau

All’interno della mailing list dri-devel.lists.freedesktop.org, dedicata allo sviluppo dei driver grafici open-source relativi al Kernel Linux (DRI sta per “Direct Rendering Infrastructure“), la scorsa settimana è apparso un messaggio che potrebbe fare la felicità di molti possessori di schede grafiche (o GPU) NVIDIA: Red Hat è al lavoro per la creazione di un nuovo driver open-source dedicato alle schede NVIDIA, chiamato Nova.

L’idea, si legge nel messaggio scritto dallo sviluppatore Red Hat Danilo Krummrich, è quella di creare un rimpiazzo per il driver open-source Nouveau il quale oltre ad avere dei limiti strutturali, risulta anche particolarmente ostico da migliorare:

With Nova, we see the chance to significantly decrease the complexity of the driver compared to Nouveau for mainly two reasons. First, Nouveau’s historic architecture, especially around nvif/nvkm, is rather complicated and inflexible and requires major rework to solve certain problems, and second, with a GSP-only driver there is no need to maintain compatibility with pre-GSP code.

Con Nova vediamo l’opportunità di diminuire drasticamente la complessità rispetto a Nouveau principalmente per due ragioni. Primo l’architettura storica di Nouveau, specialmente intorno alle componenti nvif/nvkm [NVIDIA Interface e NVIDIA Kernel Mode-setting] è complicata e poco flessibile e richiederebbe una riscrittura per la soluzione di alcuni problemi. Secondo, con un driver unicamente GSP [GPU System Processor, quindi un driver che comunica unicamente con la componente specifica della GPU NVIDIA] non c’è necessità di mantenere compatibilità con il codice precedente.

Quindi nella sostanza il nuovo driver vuole creare una situazione di punto e accapo in merito al supporto del Kernel Linux verso le GPU NVIDIA e ciò appare ancora più palese guardando al linguaggio con cui il driver è scritto, ossia Rust, che come sappiamo è in piena crescita tra i linguaggi supportati dal Kernel Linux.

Per quanti fossero curiosi, il codice è pubblicato sul GitLab del progetto FreeDesktop: https://gitlab.freedesktop.org/drm/nova.

Ma non finisce qui, perché come racconta 9to5linux.com non c’è solamente Red Hat a rivolgere attenzione ad eventuali alternative a Nouveau, anche Collabora sta proseguendo gli sviluppi in merito a NVK, un driver basato su Vulkan (API di basso livello per la grafica 3D e il calcolo parallelo) ed a sua volta open-source che ha raggiunto la versione stabile e che quindi può essere considerato usabile per i contesti di produzione.

Chissà se queste due nuove alternative potranno consentire agli utenti di non dover obbligatoriamente utilizzare i driver proprietari di NVIDIA per sfruttare tutte le funzionalità espresse dalla propria scheda.

Di certo è che un rimpiazzo di Nouveau, che lo scorso settembre aveva visto le dimissioni del proiprio maintainer, è cosa più che gradita in quanto oltre ai già citati problemi quel driver è da tempo un dead man walking.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

7 risposte a “Red Hat annuncia Nova, un nuovo driver open-source per le GPU NVIDIA scritto totalmente in Rust per rimpiazzare Nouveau”

  1. Avatar Alessandro Scarozza
    Alessandro Scarozza

    3 considerazioni:

    – nel 2024 per avere i miei soldi un azienda deve supportare direttamente linux, e che l’alternativa di AMD va una bomba su linux, consiglio a tutti gli utenti linux di vendere le gpu nvidia (che sono sovraprezzate) e passare ad AMD (vedi il “f*ck you nvidia”) (escluso chi usa CUDA)

    – è incredibile la differenza di progresso tra il reverse enginering dei driver nvidia rispetto a quelli della GPU Apple Silicon. ci saranno delle motivazioni tecniche o Apple è semplicemente piu di “moda” ?

    – questo switch C -> Rust nel kernel è una cosa ottima, per me dobbiamo iniziare a considerare il C un po come consideriamo il Cobol, uno strumento del passato. Dovrebbero proprio introdurre una regola in cui tutto il nuovo viene accettato solo in Rust

  2. Avatar JustATiredMan
    JustATiredMan

    Mah… secondo me non si arriverà comunque molto lontano. Nvidia non rilascia specifiche sul suo hardware. Bisogna sempre lavorare di reverse engineering.
    Non la vedo una roba affidabile… meglio restare su Amd e Intel.

  3. Avatar JustATiredMan
    JustATiredMan

    il C come il cobol… non esageriamo.
    Semmai puoi vederlo come un moderno assembly, e in ogni caso se vuoi fare roba a basso livello, quando le risorse sono scarse, es. su microcontrollori etc., il C è ancora più che ottimo, e comunque la gestione della memoria è un know how da avere. Se cominciamo a delegare tutto a garbage collectors et similia, solo perchè non abbiamo più le @@ per gestire le strutture dati, diventiamo come quelli che ti guardano strano quando gli parli di bitmask e schiantano alla prima difficoltà di tirarsi fuori il bit che gli serve.

  4. Avatar Raoul Scarazzini

    Tutte considerazioni corrette, sul perché con Apple funzioni meglio il reverse Engineering non saprei, ma temo dipenda dalla qualità del codice, anche se purtroppo non avremo mai la contro prova… almeno fintanto che non saranno aperti i sorgenti.

  5. Avatar AndreaZ
    AndreaZ

    Tutto corretto tranne che il garbage collector non è una questione di @@ per gestire le strutture dati. È che (sopratutto in multithreading) è l’unica alternativa per non rischiare di perdere anni in debug. Perché puoi avere quante palle vuoi ma i bug verranno sempre introdotti se parliamo di gestione manuale della memoria in multithreading. E l’ecosistema di librerie qualitativamente e quantitativamente ne beneficia.

  6. Avatar giacomofurlan
    giacomofurlan

    Sto sulla mia 2080 che ormai ha quasi 6 anni proprio perché mi rifiuto di spendere quelle cifre… ma la aggiornerei solo per i modelli AI LLM. Che notoriamente lavorano meglio con CUDA. ROCm non sembra essere un’alternativa equivalente, sfortunatamente.

    Quanto mi piacerebbe la fine dell’era CUDA, ma forse qualcosa si sta muovendo. Oppure usciranno prima i chip AI consumer dedicati prima dell’avvento, e quindi… F*ck nVidia!

  7. Avatar Rickyx
    Rickyx

    Sì, purtroppo Cuda (e anche Optix) sono molto avanti.
    Come benchmark https://opendata.blender.org/ la prima Nvidia RTX 4090 ha uno score di 11293, la prima Radeon RX 7900 ha come punti 4798…

    Inoltre alcuni software funzionano esclusivamente con Cuda.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *