Die Rust-implementering van OpenCL vir Mesa bied ondersteuning vir OpenCL 3.0

Die nuwe OpenCL-implementering (rusticl), geskryf in Rust, wat ontwikkel word vir die Mesa-projek, het suksesvol die CTS (Kronos Conformance Test Suite)-toetssuite geslaag wat deur die Khronos-konsortium gebruik word om versoenbaarheid met die OpenCL 3.0-spesifikasies te assesseer. Die projek word ontwikkel deur Karol Herbst van Red Hat, wat betrokke is by die ontwikkeling van Mesa, die Nouveau-bestuurder en die OpenCL oop stapel. Daar word kennis geneem dat Carol Khronos gekontak het oor die amptelike sertifisering van OpenCL 3.0-ondersteuning in rusticl.

Toetse is voltooi op 'n stelsel met 'n 12de generasie Intel GPU (Alder Lake). Die werk is uitgevoer met behulp van die Mesa Iris-drywer, maar die projek behoort ook met ander Mesa-drywers te werk wat die tipelose intermediΓͺre voorstelling (IR) van NIR-shaders gebruik. Die versoek om Rusticle met Mesa saam te smelt, word nog hersien en geen besluit is geneem of Rust-kode by Mesa ingesluit gaan word nie. Voordat Rusticl in die hoof-Mesa-samestelling aanvaar word, kan jy 'n aparte tak vir bou gebruik, wanneer jy saamstel wat jy die bouparameters moet spesifiseer β€œ-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= waar”.

Rusticle dien as 'n analoog van Mesa se OpenCL-frontend Clover en word ook ontwikkel met behulp van die Gallium-koppelvlak wat in Mesa verskaf word. Die Clover-belang is lankal verlate en rusticl word as sy toekomstige plaasvervanger geposisioneer. Benewens die bereiking van OpenCL 3.0-versoenbaarheid, verskil die Rusticle-projek van Clover in die ondersteuning van OpenCL-uitbreidings vir beeldverwerking, maar ondersteun nog nie die FP16-formaat nie.

Om bindings vir Mesa en OpenCL te genereer, sodat jy Rust-funksies vanaf C-kode kan oproep en omgekeerd, word rust-bindgen in Rusticle gebruik. Die moontlikheid om die Rust-taal in die Mesa-projek te gebruik, word sedert 2020 bespreek. Onder die voordele van Rust-ondersteuning word die verhoogde sekuriteit en kwaliteit van bestuurders genoem as gevolg van die ontslae te raak van tipiese probleme wanneer daar met geheue gewerk word, sowel as die vermoΓ« om derdeparty-ontwikkelings in Mesa in te sluit, soos Kazan ('n implementering van Vulkan) in Rust). Nadele sluit in verhoogde kompleksiteit van die boustelsel, onwilligheid om aan die vragpakketstelsel gekoppel te word, uitgebreide vereistes vir die bou-omgewing, en die behoefte om die Rust-samesteller in te sluit in die bouafhanklikhede wat nodig is om sleutelrekenaarkomponente op Linux te bou.

Bron: opennet.ru

Voeg 'n opmerking