Mesa layihəsi üçün hazırlanmış Rust dilində yazılmış yeni OpenCL tətbiqi (rusticl) OpenCL 3.0 spesifikasiyası ilə uyğunluğu qiymətləndirmək üçün Khronos konsorsiumu tərəfindən istifadə edilən CTS (Kronos Uyğunluq Test Paketi) test paketindən uğurla keçdi. Layihə Mesa, Nouveau sürücüsü və OpenCL açıq yığınının hazırlanmasında iştirak edən Red Hat-dan Karol Herbst tərəfindən hazırlanır. Qeyd olunur ki, Kerol rustik dildə OpenCL 3.0 dəstəyinin rəsmi sertifikatlaşdırılması ilə bağlı Khronosla əlaqə saxlayıb.
Testlər 12-ci nəsil Intel GPU (Alder Lake) ilə sistemdə tamamlandı. İş Mesa Iris sürücüsündən istifadə etməklə həyata keçirilib, lakin layihə NIR şeyderlərinin tipsiz aralıq təmsilçiliyindən (IR) istifadə edən digər Mesa sürücüləri ilə də işləməlidir. Rusticle-nin Mesa ilə birləşməsi tələbi hələ də nəzərdən keçirilir və Rust kodunu Mesa-ya daxil edib-etməmək barədə qərar qəbul edilməyib. Rusticl əsas Mesa tərkibinə qəbul edilməzdən əvvəl, tikinti üçün ayrıca bir filialdan istifadə edə bilərsiniz, onu tərtib edərkən quraşdırma parametrlərini təyin etməlisiniz “-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= doğru".
Rusticle Mesa-nın OpenCL frontend Clover-in analoqu kimi çıxış edir və həmçinin Mesa-da təqdim olunan Gallium interfeysindən istifadə etməklə hazırlanmışdır. Clover payı uzun müddətdir ki, tərk edilib və rustikl onun gələcək əvəzi kimi yerləşdirilib. OpenCL 3.0 uyğunluğuna nail olmaqdan əlavə, Rusticle layihəsi təsvirin işlənməsi üçün OpenCL genişləndirmələrini dəstəkləməkdə Clover-dən fərqlənir, lakin hələ FP16 formatını dəstəkləmir.
Rustcl, Mesa və OpenCL üçün bindings yaratmaq üçün rust-bindgen istifadə edir və bu da Rust funksiyalarının C kodundan və əksinə çağırılmasına imkan verir. Mesa layihəsində Rust dilindən istifadə imkanı 2020-ci ildən bəri müzakirə olunur. Rust-u dəstəkləməyin üstünlükləri arasında ümumi yaddaş problemlərinin aradan qaldırılması səbəbindən sürücü təhlükəsizliyinin və keyfiyyətinin artırılması, eləcə də Kazan (Vulkanın Rust tətbiqi) kimi üçüncü tərəf inkişaflarını Mesa-ya daxil etmək imkanı var. Dezavantajlara artan quraşdırma sisteminin mürəkkəbliyi, yük qablaşdırma sisteminə etibar etmək istəməməsi, genişləndirilmiş quraşdırma mühiti tələbləri və əsas masaüstü komponentlərinin qurulması üçün tələb olunan quraşdırma asılılıqlarına Rust kompilyatorunun daxil edilməsi ehtiyacı daxildir. Linux.
Mənbə: opennet.ru
