In der auf Rust basierenden OpenCL-Implementierung fĂŒr Mesa wird die UnterstĂŒtzung von OpenCL 3.0 ermöglicht.

Die fĂŒr das Mesa-Projekt entwickelte neue Implementierung von OpenCL (rusticl), die in Rust geschrieben wurde, hat erfolgreich eine Reihe von CTS-Tests (Kronos Conformance Test Suite) bestanden, die vom Khronos-Konsortium zur Bewertung der KompatibilitĂ€t mit den OpenCL 3.0-Spezifikationen verwendet werden. Das Projekt wird von Karol Herbst von Red Hat geleitet, der an der Entwicklung von Mesa, dem Nouveau-Treiber und dem offenen OpenCL-Stack beteiligt ist. Karol hat sich mit Khronos in Verbindung gesetzt, um die offizielle Zertifizierung der UnterstĂŒtzung von OpenCL 3.0 in rusticl zu erfragen.

Die Tests wurden auf einem System mit einem 12. Generation GPU Intel (Alder Lake) durchgefĂŒhrt. Die Arbeit wurde unter Verwendung des Mesa-Treibers Iris durchgefĂŒhrt, aber das Projekt sollte auch mit anderen Mesa-Treibern funktionieren, die das typelose Intermediate Representation (IR) der NIR-Shader verwenden. Der Merge-Antrag fĂŒr Rusticl mit Mesa befindet sich derzeit in der PrĂŒfung, und eine Entscheidung ĂŒber die Einbindung von Rust-Code in Mesa wurde noch nicht getroffen. Bis Rusticl in die Hauptentwicklung von Mesa aufgenommen wird, kann eine separate Branch fĂŒr den Build verwendet werden, wobei bei der Kompilierung die Build-Parameter „-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=true“ angegeben werden sollten.

Rusticl fungiert als das Pendant zum in Mesa vorhandenen OpenCL-Frontend Clover und wurde ebenfalls unter Verwendung der von Mesa bereitgestellten Gallium-Schnittstelle entwickelt. Clover befindet sich seit langem in einem vernachlĂ€ssigten Zustand, und Rusticl wird als dessen zukĂŒnftiger Ersatz positioniert. Neben der Erreichung der KompatibilitĂ€t mit OpenCL 3.0 zeichnet sich das Rusticl-Projekt durch die UnterstĂŒtzung von OpenCL-Erweiterungen fĂŒr die Bildverarbeitung aus, unterstĂŒtzt jedoch derzeit noch nicht das FP16-Format.

FĂŒr die Generierung von Bindings fĂŒr Mesa und OpenCL, die es ermöglichen, Rust-Funktionen aus C-Code und umgekehrt aufzurufen, kommt in Rusticl rust-bindgen zum Einsatz. Die Möglichkeit, die Programmiersprache Rust im Mesa-Projekt zu nutzen, wird seit 2020 diskutiert. Vorteile der Rust-UnterstĂŒtzung sind die Erhöhung der Sicherheit und QualitĂ€t von Treibern durch die Beseitigung typischer Probleme im Umgang mit dem Speicher sowie die Möglichkeit, externe Entwicklungen wie Kazan (eine Vulkan-Implementierung in Rust) in Mesa zu integrieren. Zu den Nachteilen gehören die KomplexitĂ€t des Build-Systems, die AbhĂ€ngigkeit von der Paketverwaltung cargo, erweiterte Anforderungen an die Build-Umgebung und die Notwendigkeit, den Rust-Compiler in die Build-AbhĂ€ngigkeiten aufzunehmen, die fĂŒr den Bau wesentlicher Komponenten des Desktops in Linux erforderlich sind.

Quelle: opennet.ru

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster