Die in rust geschriebene OpenCL-Implementierung von Mesa hat bereits CTS-Tests bestanden

Die neue Implementierung von OpenCL (rustikal) entwickelt für das Mesa-Projekt, geschrieben in Rust, hat die CTS-Tests erfolgreich bestanden (Kronos Conformance Test Suite), die vom Khronos-Konsortium zum Testen der Kompatibilität mit den OpenCL 3.0-Spezifikationen verwendet wird.

Wer »Rusticl« noch nicht kennt, sollte wissen, dass es als veröffentlicht wurde eine neue Implementierung von Mesa OpenCL eingeschrieben Programmiersprache Rost.

rustikal wurde vom bekannten Mesa-Mitarbeiter Karol Herbst ins Leben gerufen von Red Hat, der während seiner Zeit bei Red Hat als Ingenieur für den Open-Source-Treiber „Nouveau“ von NVIDIA begann und am IT-Support von Mesa für Clover und anderen Unternehmungen arbeitete. Rusticl ist ein Versuch von Herbst, die Programmiersprache Rust zu lernen und auch eine neue (und hoffentlich überlegene) Implementierung von OpenCL bereitzustellen.

Rusticl ist viel moderner und konzentriert sich auf OpenCL im Vergleich zum alten Clover-Code und es ist bemerkenswert, dass Rusticl zu diesem Zeitpunkt noch keine OpenCL-Image-Unterstützung bietet, was ein weiteres Problem mit Clover darstellt.

rustikal verlässt sich auf clc, um OpenCL-Quellcode in SPIR-V zu kompilieren. Rusticl hängt auch von den NIR-kompatiblen Mesa Gallium3D-Treibern ab, aber alle wichtigen Treiber tun dies bereits. Es sollte beachtet werden, dass Carol Khronos kontaktiert hat, um eine offizielle Zertifizierung der OpenCL 3.0-Kompatibilität in rusticl zu erhalten.

Und nun hat rusticl erfolgreich die Kronos Conformance Test Suite bestanden, um die Kompatibilität mit den OpenCL 3.0-Spezifikationen zu bewerten, wie Neil Trevett auf Twitter mitteilte:

Khronos ist stolz darauf, im Laufe der Jahre auf alle MESA-Einführungsgebühren verzichtet zu haben, und viele MESA-Implementierungen sind offiziell konform. Toll, dass MESAs OpenCL 3.0 CTS besteht! Teilen Sie uns mit, wann MESA bereit ist, die OCL 3.0-Einführungsvereinbarung auszuführen, und wir können mit dem Prozess beginnen …

Die Tests wurden auf einem System mit der 12. Intel-GPU durchgeführt build (Alder Lake), die Arbeit wurde mit dem Mesa Iris-Treiber durchgeführt, es wird jedoch erwähnt, dass das Projekt mit anderen Mesa-Treibern funktionieren sollte, die die untypisierte Zwischendarstellung (IR) von NIR-Shadern verwenden.

Rusticl fungiert als Gegenstück zur OpenCL Clover-Schnittstelle von Mesa und wird ebenfalls unter Verwendung der Gallium-Schnittstelle von Mesa entwickelt. Clover wurde lange Zeit vernachlässigt und Rusticl wird als zukünftiger Ersatz positioniert. Neben der Erreichung von OpenCL 3.0-Kompatibilität unterscheidet sich das Rusticl-Projekt von Clover dadurch, dass es OpenCL-Erweiterungen für die Bildverarbeitung unterstützt, aber noch nicht das FP16-Format unterstützt.

Rusticl verwendet Rostbindemittel um Bindungen für Mesa und OpenCL zu generieren, die den Aufruf von Rust-Funktionen aus C-Code und umgekehrt ermöglichen.

Die Möglichkeit, die Rust-Sprache im Mesa-Projekt zu verwenden, wird seit 2020 diskutiert. Zu den Vorteilen der Rust-Unterstützung zählen die Verbesserung der Sicherheit und Qualität der Treiber durch die Beseitigung typischer Probleme bei der Arbeit mit dem Speicher sowie die Möglichkeit, Drittentwicklungen wie Kazan (eine Implementierung von Vulkan in Oxide) in Mesa einzubinden.

Zu den Mängeln gehören eine Komplikation des Build-Systems, die mangelnde Bereitschaft, eine Verbindung zum Ladepaketsystem herzustellen, ein Anstieg der 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.

Schließlich Es wird erwähnt, dass der Antrag auf Fusion von Rusticl mit Mesa noch anhängig ist und es wurde noch keine Entscheidung darüber getroffen, den Rust-Sprachcode in Mesa aufzunehmen, aber es wird erwartet, dass er in der Mesa 22.2-Version verfügbar sein wird

Aus diesem Grund kann vor der Aufnahme von Rusticl in die Mesa-Hauptkomposition ein separater Zweig zum Erstellen verwendet werden. Beim Kompilieren müssen Sie die Kompilierungsparameter „-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm =true“ angeben.

Wenn Sie daran interessiert, mehr darüber zu erfahren Über diese neue Spezifikation können Sie die Details überprüfen im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.