Η εφαρμογή Rust του OpenCL for Mesa παρέχει υποστήριξη για το OpenCL 3.0

Η νέα υλοποίηση OpenCL (rusticl), γραμμένη σε Rust, που αναπτύχθηκε για το έργο Mesa, πέρασε με επιτυχία τις δοκιμές Kronos Conformance Test Suite (CTS) που χρησιμοποιούνται από την κοινοπραξία Khronos για την αξιολόγηση της συμβατότητας με τις προδιαγραφές OpenCL 3.0. Το έργο αναπτύσσεται από την Karol Herbst της Red Hat, η οποία συμμετέχει στην ανάπτυξη του Mesa, του προγράμματος οδήγησης Nouveau και της ανοιχτής στοίβας OpenCL. Σημειώνεται ότι η Karol έχει επικοινωνήσει με την Khronos σχετικά με την επίσημη πιστοποίηση υποστήριξης για το OpenCL 3.0 σε rusticl.

Οι δοκιμές ολοκληρώθηκαν σε ένα σύστημα με GPU Intel 12ης γενιάς (Alder Lake). Η εργασία έγινε χρησιμοποιώντας το πρόγραμμα οδήγησης Iris Mesa, αλλά το έργο θα πρέπει επίσης να λειτουργεί με άλλα προγράμματα οδήγησης Mesa που χρησιμοποιούν μια μη τυποποιημένη ενδιάμεση αναπαράσταση (IR) των shaders NIR. Το αίτημα συγχώνευσης για το Rusticl με το Mesa βρίσκεται ακόμη υπό εξέταση και δεν έχει ακόμη ληφθεί απόφαση για την συμπερίληψη κώδικα Rust στο Mesa. Μέχρι να γίνει δεκτό το Rusticl στην κύρια σύνθεση του Mesa, μπορεί να χρησιμοποιηθεί ένας ξεχωριστός κλάδος για τη συναρμολόγηση, κατά τη μεταγλώττιση του οποίου θα πρέπει να καθοριστούν οι παράμετροι συναρμολόγησης "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=true".

Το Rusticl είναι ένα ανάλογο του Clover του frontend OpenCL της Mesa και έχει επίσης αναπτυχθεί χρησιμοποιώντας τη διεπαφή Gallium της Mesa. Το Clover έχει εγκαταλειφθεί εδώ και πολύ καιρό και το rusticl τοποθετείται ως η μελλοντική αντικατάστασή του. Εκτός από την επίτευξη συμβατότητας με OpenCL 3.0, το Rusticl διαφέρει από το Clover στο ότι υποστηρίζει επεκτάσεις OpenCL για επεξεργασία εικόνας, αλλά δεν υποστηρίζει ακόμη τη μορφή FP16.

Для генерации биндингов для Mesa и OpenCL, позволяющих вызывать Rust-функции из кода на Си и наоборот, в Rusticl задействован rust-bindgen. Возможность использования языка Rust в проекте Mesa обсуждается с 2020 года. Из плюсов поддержки Rust упоминается повышение безопасности и качества драйверов за счёт избавления от типовых проблем при работе с памятью, а также возможность включения в состав Mesa сторонних наработок, таких как Kazan (реализация Vulkan на Rust). Из недостатков отмечается усложнение системы сборки, нежелание привязываться к пакетной системе cargo, расширение требований к сборочному окружению и необходимость включения компилятора Rust в сборочные зависимости, обязательные для построения ключевых компонентов рабочего стола в Linux.

Πηγή: opennet.ru

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster