Implementimi i ri OpenCL (rusticl), i zhvilluar pĂ«r projektin Mesa dhe i shkruar nĂ« gjuhĂ«n Rust, ka pĂ«rfunduar me sukses njĂ« grup testesh CTS (Kronos Conformance Test Suite), tĂ« pĂ«rdorura nga konsorciumi Khronos pĂ«r tĂ« vlerĂ«suar pĂ«rputhshmĂ«rinĂ« me specifikimet OpenCL 3.0. Projekti po zhvillohet nga Karol Herbst nga Red Hat, qĂ« merr pjesĂ« nĂ« zhvillimin e Mesa, driverit Nouveau dhe stack-ut tĂ« hapur OpenCL. ĂshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet se Karol ka kontaktuar me Khronos pĂ«r certifikimin zyrtar tĂ« mbĂ«shtetjes OpenCL 3.0 nĂ« rusticl.
Testet janë kryer në një sistem me GPU Intel të gjeneratës 12 (Alder Lake). Puna është realizuar duke përdorur driverin Mesa Iris, por projekti duhet të funksionojë edhe me drivera të tjerë Mesa që përdorin përfaqësimin e ndërmjetëm pa tip (IR) të shaderave NIR. Kërkesa për bashkimin e Rusticl me Mesa është ende në proces shqyrtimi dhe vendimi për përfshirjen e kodit në gjuhën Rust në Mesa ende nuk është marrë. Derisa Rusticl të pranohet në bazën e kodit të Mesa, mund të përdoret një degë e veçantë për ndërtim, duke specifikuar parametrat e ndërtimit "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=true".
Rusticl shërben si një alternativë për front-end-in OpenCL të pranishëm në Mesa, Clover, dhe gjithashtu është zhvilluar duke përdorur ndërfaqen Gallium të ofruar në Mesa. Clover ka qenë prej kohësh në gjendje të braktisur, dhe rusticl pozicionohet si zëvendësimi i tij në të ardhmen. Përveç arritjes së kompatibilitetit me OpenCL 3.0, projekti Rusticl dallon nga Clover për mbështetje të zgjerimeve OpenCL për përpunimin e imazheve, por aktualisht nuk mbështet formatin FP16.
Për të gjeneruar lidhjet për Mesa dhe OpenCL, që lejojnë thirrjen e funksioneve Rust nga kodi në C dhe anasjelltas, Rusticl përdor rust-bindgen. Mundësia e përdorimit të gjuhës Rust në projektin Mesa është diskutuar që nga viti 2020. Në avantazhet e mbështetjes së Rust përmendet rritja e sigurisë dhe cilësisë së drivereve përmes eliminimit të problemeve tipike që lidhen me menaxhimin e memories, si dhe mundësia e përfshirjes në Mesa të zhvillimeve të palëve të treta, si Kazan (implementimi i Vulkan në Rust). Disavantazhet përfshijnë komplikimin e sistemit të ndërtimit, dëshirën për të mos u lidhur me sistemin e paketave cargo, zgjerimin e kërkesave për ambientin e ndërtimit dhe nevojën për përfshirjen e kompjuterit Rust në varësitë e ndërtimit që janë të detyrueshme për ndërtimin e komponentëve kyç të desktop-it në Linux.
Burimi: opennet.ru
