Otwarty sterownik Rusticl certyfikowany pod kątem zgodności z OpenCL 3.0

Deweloperzy projektu Mesa ogłosili certyfikację sterownika rusticl przez organizację Khronos, który pomyślnie przeszedł wszystkie testy z zestawu CTS (Kronos Conformance Test Suite) i został uznany za w pełni zgodny ze specyfikacją OpenCL 3.0, określającą API i rozszerzenia języka C dla organizacji obliczeń równoległych na wielu platformach. Uzyskanie certyfikatu umożliwia oficjalne ogłaszanie zgodności z normami oraz korzystanie z związanych z nimi znaków towarowych Khronos. Weryfikacja została przeprowadzona na systemie z zintegrowanymi GPU Intel 12. generacji, na którym używano sterownika Gallium3D Iris.

Sterownik napisany jest w języku Rust i jest rozwijany przez Karola Herbsta (Karol Herbst) z firmy Red Hat, biorącego udział w rozwoju Mesa, sterownika Nouveau oraz otwartego stosu OpenCL. Rusticl działa jako analog obecnego w Mesa front-endu OpenCL Clover i również został stworzony z wykorzystaniem interfejsu Gallium dostarczanego przez Mesa. Clover od dawna jest w zaniedbaniu, a rusticl jest postrzegany jako jego przyszły następca. Oprócz osiągnięcia zgodności z OpenCL 3.0, projekt Rusticl różni się od Clover obsługą rozszerzeń OpenCL do przetwarzania obrazów, ale jak dotąd nie obsługuje formatu FP16. Do generowania powiązań dla Mesa i OpenCL, które pozwalają na wywoływanie funkcji Rust z kodu w C i vice versa, w rusticl wykorzystano rust-bindgen.

Kod wspierający język Rust i sterownik rusticl został przyjęty do głównej gałęzi Mesa i będzie dostępny w wydaniu Mesa 22.3, które spodziewane jest pod koniec listopada. Wsparcie dla Rust i rusticl będzie domyślnie wyłączone i wymagać będzie kompilacji z wyraźnym wskazaniem opcji „-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021”. Podczas kompilacji jako dodatkowe zależności będą wymagane kompilator rustc, generator powiązań bindgen, LLVM, narzędzia SPIRV-Tools oraz translator SPIRV-LLVM-Translator.

Możliwość wykorzystania języka Rust w projekcie Mesa jest omawiana od 2020 roku. Do zalet wsparcia dla Rust należy zwiększenie bezpieczeństwa i jakości sterowników poprzez eliminację typowych problemów z pamięcią, a także możliwość włączenia zewnętrznych zasobów, takich jak Kazan (implementacja Vulkan na Rust). Do wad zalicza się skomplikowanie systemu kompilacji, niechęć do uzależniania się od systemu pakietów cargo, rozszerzenie wymagań dotyczących środowiska kompilacji oraz konieczność włączenia kompilatora Rust w zależności kompilacyjne, które są obowiązkowe do budowy kluczowych komponentów pulpitu w systemie Linux.

Dodatkowo warto wspomnieć o pracach nad rozwojem sterownika Nouveau, również prowadzonych przez Carol Herbst. W sterowniku Nouveau dodano podstawowe wsparcie dla OpenGL dla GNU NVIDIA GeForce RTX 30xx opartego na mikroarchitekturze Ampere, produkowanych od maja 2020 roku. Zmiany związane z wsparciem nowych układów wejdą w skład jądra Linux 6.2 i Mesa 22.3.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster