L'implementazione OpenCL di Mesa scritta in rust ha già superato i test CTS

La nuova implementazione da OpenCL (rustico) sviluppato per il progetto Mesa, scritto in Rust, ha superato con successo i test CTS (Kronos Conformance Test Suite) utilizzato dal consorzio Khronos per testare la compatibilità con le specifiche OpenCL 3.0.

Per coloro che non sono a conoscenza di »Rusticl» dovrebbero sapere che è stato pubblicato come una nuova implementazione di Mesa OpenCL scritta in il linguaggio di programmazione Ruggine.

rustico è stato avviato dal noto collaboratore di Mesa Karol Herbst di Red Hat, che ha iniziato come ingegnere del driver open source "Nouveau" di NVIDIA mentre lavorava in Red Hat, e ha lavorato al supporto IT di Clover di Mesa e ad altre attività. Rusticl è un tentativo di Herbst di apprendere il linguaggio di programmazione Rust e anche di fornire una nuova (e si spera superiore) implementazione di OpenCL.

Rusticl è molto più moderno incentrato su OpenCL rispetto al vecchio codice Clover ed è evidente però, è che Rusticl a questo punto non ha ancora il supporto per le immagini OpenCL, che è stato un altro problema con Clover.

rustico si basa su clc per compilare il codice sorgente OpenCL in SPIR-V. Rusticl dipende anche dai driver Mesa Gallium3D conformi a NIR, ma tutti i principali driver lo fanno già. Va notato che Carol ha contattato Khronos per ottenere la certificazione ufficiale della compatibilità OpenCL 3.0 in rusticl.

E ora, rusticl ha superato con successo la Kronos Conformance Test Suite per valutare la compatibilità con le specifiche OpenCL 3.0, come annunciato da Neil Trevett su Twitter:

Khronos è orgogliosa di aver rinunciato a tutte le tasse di adozione MESA nel corso degli anni e molte implementazioni MESA sono ufficialmente conformi. Fantastico che OpenCL 3.0 di MESA stia superando CTS! Facci sapere quando MESA è pronta per eseguire l'accordo di adozione OCL 3.0 e possiamo iniziare il processo...

Il test è stato eseguito su un sistema con GPU Intel di 12a generazione build (Alder Lake), con cui il lavoro è stato svolto con il driver Iris Mesa, ma si dice che il progetto dovrebbe funzionare con altri driver Mesa che utilizzano la rappresentazione intermedia non tipizzata (IR) degli shader NIR.

Rusticl funge da controparte dell'interfaccia OpenCL Clover di Mesa ed è anche sviluppato utilizzando l'interfaccia Gallium di Mesa. Il trifoglio è in stato di abbandono da molto tempo e rusticl si posiziona come suo futuro sostituto. Oltre a ottenere la compatibilità con OpenCL 3.0, il progetto Rusticl differisce da Clover in quanto supporta le estensioni OpenCL per l'elaborazione delle immagini, ma non supporta ancora il formato FP16.

Rusticl utilizza ruggine-legante per generare collegamenti per Mesa e OpenCL che consentono di chiamare le funzioni Rust dal codice C e viceversa.

La possibilità di utilizzare il linguaggio Rust nel progetto Mesa è stata discussa dal 2020. Tra i vantaggi del supporto Rust si citano il miglioramento della sicurezza e della qualità dei driver eliminando i problemi tipici quando si lavora con la memoria, nonché la possibilità di includere sviluppi di terze parti su Mesa, come Kazan (un'implementazione Vulkan su Rust).

Tra le carenze, c'è una complicazione del sistema di compilazione, una riluttanza a legarsi al sistema del pacchetto di carico utile, un aumento dei requisiti per l'ambiente di compilazione e la necessità di includere il compilatore Rust nelle dipendenze di compilazione fornite. per creare componenti desktop chiave su Linux.

Infine, si segnala che è ancora pendente la richiesta di fusione di Rusticl con Mesa e non è stata ancora presa alcuna decisione sull'inclusione del codice del linguaggio Rust in Mesa, ma dovrebbe arrivare nella versione Mesa 22.2

Questo è il motivo per cui prima che Rusticl venga accettato nella composizione principale di Mesa, è possibile utilizzare un ramo separato per compilare, durante la compilazione è necessario specificare i parametri di compilazione "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader -cache=true -Dllvm =vero».

Se si interessati a saperne di più su questa nuova specifica, puoi controllare i dettagli nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.