Der offene Treiber von Rusticl ist zertifiziert OpenCL 3.0-kompatibel

Die Entwickler des Mesa-Projekts gaben die Zertifizierung des Rusticl-Treibers durch die Khronos-Organisation bekannt, der alle Tests des CTS-Sets (Kronos Conformance Test Suite) erfolgreich bestanden hat und als vollständig kompatibel mit der OpenCL 3.0-Spezifikation anerkannt ist, die APIs und definiert Erweiterungen der C-Sprache zur Organisation plattformübergreifender paralleler Datenverarbeitung. Mit dem Erhalt eines Zertifikats erklären Sie offiziell die Einhaltung der Standards und nutzen die damit verbundenen Khronos-Marken. Der Test wurde auf einem System mit integrierten Intel-GPUs der 12. Generation unter Verwendung des Gallium3D Iris-Treibers durchgeführt.

Der Treiber ist in Rust geschrieben und wird von Karol Herbst von Red Hat entwickelt, der an der Entwicklung von Mesa, dem Nouveau-Treiber und dem OpenCL Open Stack beteiligt ist. Rusticle fungiert als Analogon zu Mesas OpenCL-Frontend Clover und wird ebenfalls unter Verwendung der in Mesa bereitgestellten Gallium-Schnittstelle entwickelt. Clover wurde lange Zeit aufgegeben und Rusticl wird als zukünftiger Ersatz positioniert. Neben der Erreichung der OpenCL 3.0-Kompatibilität unterscheidet sich das Rusticle-Projekt von Clover durch die Unterstützung von OpenCL-Erweiterungen für die Bildverarbeitung, unterstützt jedoch noch nicht das FP16-Format. Um Bindungen für Mesa und OpenCL zu generieren, die es Ihnen ermöglichen, Rust-Funktionen aus C-Code aufzurufen und umgekehrt, wird rust-bindgen in Rusticle verwendet.

Der Rust-Sprachunterstützungscode und der Rusticl-Treiber wurden in den Mesa-Mainstream aufgenommen und werden in der Mesa 22.3-Version angeboten, die für Ende November erwartet wird. Die Rust- und Rusticl-Unterstützung ist standardmäßig deaktiviert und erfordert einen Build mit den explizit angegebenen Optionen „-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021“. Beim Erstellen benötigen Sie den Rustc-Compiler, den Bindungsgenerator Bindgen, LLVM, SPIRV-Tools und SPIRV-LLVM-Translator als zusätzliche Abhängigkeiten.

Die Möglichkeit der Verwendung der Rust-Sprache im Mesa-Projekt wird seit 2020 diskutiert. Zu den Vorteilen der Rust-Unterstützung zählen die erhöhte Sicherheit und Qualität der Treiber durch die Beseitigung typischer Probleme bei der Arbeit mit dem Speicher sowie die Möglichkeit, Entwicklungen von Drittanbietern wie Kazan (eine Implementierung von Vulkan) in Mesa einzubinden in Rust). Zu den Nachteilen zählen die erhöhte Komplexität des Build-Systems, die mangelnde Bindung an das Cargo-Paketsystem, erweiterte Anforderungen an die Build-Umgebung und die Notwendigkeit, den Rust-Compiler in die Build-Abhängigkeiten einzubeziehen, die zum Erstellen wichtiger Desktop-Komponenten unter Linux erforderlich sind.

Darüber hinaus können wir die Arbeit an der Entwicklung des Nouveau-Treibers erwähnen, die ebenfalls von Carol Herbst durchgeführt wurde. Der Nouveau-Treiber bietet grundlegende OpenGL-Unterstützung für GNU NVIDIA GeForce RTX 30xx basierend auf der Ampere-Mikroarchitektur, die seit Mai 2020 veröffentlicht wird. Änderungen im Zusammenhang mit der Unterstützung neuer Chips werden im Linux 6.2-Kernel und Mesa 22.3 enthalten sein.

Source: opennet.ru

Kommentar hinzufügen