Odprtokodni gonilnik Rusticle je certificirano združljiv z OpenCL 3.0

Razvijalci projekta Mesa so sporočili, da je gonilnik rusticl certificiral Khronos. Uspešno je prestal vse teste v Kronos Conformance Test Suite (CTS) in velja za popolnoma skladnega s specifikacijo OpenCL 3.0, ki opredeljuje API-je in razširitve jezika C za vzporedno računalništvo na več platformah. Prejem tega certifikata omogoča Khronosu, da uradno izjavi skladnost s standardi in uporablja povezane blagovne znamke Khronos. Preverjanje je bilo izvedeno na sistemu z integriranimi grafičnimi procesorji Intel 12. generacije z uporabo gonilnika Gallium3D Iris.

Gonilnik je napisan v Rustu, razvila pa ga je Karol Herbst iz Red Hata, ki sodeluje pri razvoju Mese, gonilnika Nouveau in odprtokodnega sklada OpenCL. Rusticl deluje kot analog Mesinega vmesnika OpenCL, Cloverja, in je prav tako razvit z uporabo Mesinega vmesnika Gallium. Clover je že dolgo opuščen, rusticl pa je postavljen kot njegova prihodnja zamenjava. Poleg združljivosti z OpenCL 3.0 se Rusticl od Cloverja razlikuje po tem, da podpira razširitve OpenCL za obdelavo slik, vendar še ne podpira formata FP16. Rusticl uporablja rust-bindgen za ustvarjanje povezav za Meso in OpenCL, kar omogoča klic funkcij Rusta iz kode C in obratno.

Koda za podporo jeziku Rust in gonilnik rusticl sta bila sprejeta v jedro Mesa in bosta izdana v različici Mesa 22.3, ki se pričakuje konec novembra. Podpora za Rust in rusticl bo privzeto onemogočena in bo zahtevala eksplicitne možnosti gradnje, kot je "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021." Dodatne odvisnosti gradnje vključujejo prevajalnik rustc, bindgen, LLVM, SPIRV-Tools in SPIRV-LLVM-Translator.

Možnost uporabe jezika Rust v projektu Mesa se razpravlja že od leta 2020. Med prednostmi podpore za Rust so navedene izboljšana varnost in kakovost gonilnikov z odpravo pogostih težav s pomnilnikom, pa tudi možnost vključitve razvoja tretjih oseb v Meso, kot je Kazan (implementacija Vulkana v Rustu). Slabosti vključujejo večjo kompleksnost sistema gradnje, nepripravljenost zanašanja na sistem pakiranja cargo, razširjene zahteve okolja gradnje in potrebo po vključitvi prevajalnika Rust v odvisnosti gradnje, potrebne za gradnjo ključnih komponent namizja v Linuxu.

Poleg tega je omembe vredno delo Carol Herbst na gonilniku Nouveau. Gonilnik Nouveau dodaja osnovno podporo OpenGL za grafične procesorje NVIDIA GeForce RTX 30xx, ki temeljijo na mikroarhitekturi Ampere in so bili izdani maja 2020. Spremembe, povezane s podporo za te nove čipe, bodo vključene v jedro Linuxa 6.2 in Mesa 22.3.

Vir: opennet.ru

Dodaj komentar