L'implementazione Rust di OpenCL di Mesa ora supporta OpenCL 3.0

La nuova implementazione OpenCL (rusticl), scritta in Rust, in fase di sviluppo per il progetto Mesa, ha superato con successo la suite di test CTS (Kronos Conformance Test Suite) utilizzata dal consorzio Khronos per valutare la compatibilità con le specifiche OpenCL 3.0. Il progetto è stato sviluppato da Karol Herbst di Red Hat, coinvolto nello sviluppo di Mesa, del driver Nouveau e dell'open stack OpenCL. Si noti che Carol ha contattato Khronos in merito alla certificazione ufficiale del supporto OpenCL 3.0 in rusticl.

I test sono stati completati su un sistema con GPU Intel di 12a generazione (Alder Lake). Il lavoro è stato svolto utilizzando il driver Mesa Iris, ma il progetto dovrebbe funzionare anche con altri driver Mesa che utilizzano la rappresentazione intermedia senza tipo (IR) degli shader NIR. La richiesta di fondere Rusticle con Mesa è ancora in fase di revisione e non è stata presa alcuna decisione sull'opportunità di includere il codice Rust in Mesa. Prima che Rusticl venga accettato nella composizione principale di Mesa, puoi utilizzare un ramo separato per la creazione, durante la compilazione del quale dovresti specificare i parametri di creazione “-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= VERO".

Rusticle funge da analogo del frontend OpenCL di Mesa Clover ed è anch'esso sviluppato utilizzando l'interfaccia Gallium fornita in Mesa. Il palo di Clover è stato abbandonato da molto tempo e Rusticl è posizionato come il suo futuro sostituto. Oltre a raggiungere la compatibilità con OpenCL 3.0, il progetto Rusticle differisce da Clover nel supportare le estensioni OpenCL per l'elaborazione delle immagini, ma non supporta ancora il formato FP16.

Для генерации биндингов для Mesa и OpenCL, позволяющих вызывать Rust-функции из кода на Си и наоборот, в Rusticl задействован rust-bindgen. Возможность использования языка Rust в проекте Mesa обсуждается с 2020 года. Из плюсов поддержки Rust упоминается повышение безопасности и качества драйверов за счёт избавления от типовых проблем при работе с памятью, а также возможность включения в состав Mesa сторонних наработок, таких как Kazan (реализация Vulkan на Rust). Из недостатков отмечается усложнение системы сборки, нежелание привязываться к пакетной системе cargo, расширение требований к сборочному окружению и необходимость включения компилятора Rust в сборочные зависимости, обязательные для построения ключевых компонентов рабочего стола в Linux.

Fonte: opennet.ru

Acquista hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting web affidabile con protezione DDoS, server VPS e VDS | ProHoster