De Rust-implementatie van OpenCL voor Mesa biedt ondersteuning voor OpenCL 3.0

De nieuwe OpenCL-implementatie (rusticl), geschreven in Rust en ontwikkeld voor het Mesa-project, heeft met succes de CTS-testsuite (Kronos Conformance Test Suite) doorstaan ​​die door het Khronos-consortium wordt gebruikt om de compatibiliteit met de OpenCL 3.0-specificaties te beoordelen. Het project wordt ontwikkeld door Karol Herbst van Red Hat, die betrokken is bij de ontwikkeling van Mesa, de Nouveau-driver en de OpenCL open stack. Opgemerkt wordt dat Carol contact heeft opgenomen met Khronos met betrekking tot de officiΓ«le certificering van OpenCL 3.0-ondersteuning in Rusticl.

De tests zijn uitgevoerd op een systeem met een 12e generatie Intel GPU (Alder Lake). Het werk werd uitgevoerd met behulp van de Mesa Iris-driver, maar het project zou ook moeten werken met andere Mesa-drivers die gebruik maken van de typeloze tussenweergave (IR) van NIR-shaders. Het verzoek om Rusticle met Mesa te fuseren wordt nog beoordeeld en er is nog geen beslissing genomen over het al dan niet opnemen van de Rust-code in Mesa. Voordat Rusticl wordt geaccepteerd in de hoofdsamenstelling van Mesa, kunt u een aparte branch gebruiken voor het bouwen. Bij het compileren moet u de buildparameters specificeren β€œ-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= WAAR".

Rusticle fungeert als een analoog van Mesa's OpenCL frontend Clover en is ook ontwikkeld met behulp van de Gallium-interface die in Mesa wordt geleverd. De Clover-staak is al lange tijd verlaten en rustiek is gepositioneerd als toekomstige vervanging. Naast het bereiken van OpenCL 3.0-compatibiliteit, verschilt het Rusticle-project van Clover wat betreft de ondersteuning van OpenCL-extensies voor beeldverwerking, maar ondersteunt het nog niet het FP16-formaat.

Om bindingen voor Mesa en OpenCL te genereren, zodat u Rust-functies kunt aanroepen vanuit C-code en omgekeerd, wordt rust-bindgen gebruikt in Rusticle. De mogelijkheid om de Rust-taal te gebruiken in het Mesa-project wordt sinds 2020 besproken. Onder de voordelen van Rust-ondersteuning wordt de verhoogde veiligheid en kwaliteit van stuurprogramma's genoemd vanwege het wegnemen van typische problemen bij het werken met geheugen, evenals de mogelijkheid om ontwikkelingen van derden in Mesa op te nemen, zoals Kazan (een implementatie van Vulkan in Roest). Nadelen zijn onder meer de toegenomen complexiteit van het bouwsysteem, de onwil om gebonden te zijn aan het cargopakketsysteem, uitgebreide vereisten voor de bouwomgeving en de noodzaak om de Rust-compiler op te nemen in de bouwafhankelijkheden die nodig zijn om belangrijke desktopcomponenten op Linux te bouwen.

Bron: opennet.ru

Voeg een reactie