Otvorený ovládač Rusticl certifikovaný na kompatibilitu s OpenCL 3.0

Vývojári projektu Mesa oznámili certifikáciu ovládača rusticl organizáciou Khronos, ktorý úspešne prešiel všetkými testami z balíka CTS (Kronos Conformance Test Suite) a bol uznaný za plne kompatibilný so špecifikáciou OpenCL 3.0, ktorá definuje API a rozšírenia jazyka C na organizovanie multiplatformových paralelných výpočtov. Získanie certifikátu umožňuje oficiálne tvrdiť o kompatibilite so štandardmi a využívať s nimi súvisiace ochranné známky Khronos. Overenie bolo vykonané na systéme s 12. generáciou integrovaných GPU Intel, na ktorom bol použitý ovládač Gallium3D Iris.

Ovládač je napísaný v jazyku Rust a vyvíja ho Karol Herbst z firmy Red Hat, ktorý sa podieľa na vývoji Mesa, ovládača Nouveau a otvoreného stacku OpenCL. Rusticl funguje ako ekvivalent OpenCL front-endu Clover, ktorý je tiež vyvinutý s použitím rozhrania Gallium poskytovaného v Mesa. Clover je už dlhodobo v stagnácii a rusticl je prezentovaný ako jeho budúca náhrada. Okrem dosiahnutia kompatibility s OpenCL 3.0 sa projekt Rusticl líši od Clover podporou OpenCL rozšírení pre spracovanie obrázkov, no zatiaľ nepodporuje formát FP16. Na generovanie bindingov pre Mesa a OpenCL, ktoré umožňujú vyvolávať Rust funkcie z kódu v C a naopak, Rusticl využíva rust-bindgen.

Kód na podporu jazyka Rust a ovládača rusticl bol prijatý do hlavnej zostavy Mesa a bude navrhnutý v verzii Mesa 22.3, ktorú očakávame na konci novembra. Podpora Rust a rusticl bude predvolene vypnutá a bude vyžadovať kompiláciu s jasným určením možností „-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021“. Pri kompilácii budú potrebné ďalšie závislosti, a to kompilátor rustc, generátor bindingov bindgen, LLVM, nástrojový balík SPIRV-Tools a prekladateľ SPIRV-LLVM-Translator.

Možnosť použitia jazyka Rust v projekte Mesa sa diskutuje od roku 2020. Medzi výhody podpory Rust patrí zvýšenie bezpečnosti a kvality ovládačov vďaka odstráneniu typických problémov pri práci s pamäťou, ako aj možnosť zapojenia do Mesa externých riešení, ako je Kazan (implementácia Vulkan na Rust). Medzi nevýhody patrí zložitosť systému zostavenia, neochota viazať sa na balíkový systém cargo, rozšírenie požiadaviek na zostavovacie prostredie a potreba zahrnúť kompilátor Rust do zostavovacích závislostí, ktoré sú povinné pre výstavbu kľúčových komponentov pracovnej plochy v Linuxe.

Ďalšie oblasti, na ktoré sa môžeme zamerať, sú práce na vývoji ovládača Nouveau, ktoré vykonal aj Carol Herbst. Do ovládača Nouveau bola pridaná základná podpora OpenGL pre GNU NVIDIA GeForce RTX 30xx založené na mikroarchitektúre Ampere, vyrábaných od mája 2020. Zmeny týkajúce sa podpory nových čipov budú zahrnuté v jadre Linux 6.2 a Mesa 22.3.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster