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

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

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

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

Για να δημιουργήσετε συνδέσμους για το Mesa και το OpenCL, επιτρέποντάς σας να καλέσετε συναρτήσεις Rust από τον κώδικα C και αντίστροφα, το rust-bindgen χρησιμοποιείται στο Rusticle. Η δυνατότητα χρήσης της γλώσσας Rust στο έργο Mesa συζητείται από το 2020. Μεταξύ των πλεονεκτημάτων της υποστήριξης Rust, αναφέρεται η αυξημένη ασφάλεια και ποιότητα των προγραμμάτων οδήγησης λόγω της απαλλαγής από τυπικά προβλήματα κατά την εργασία με μνήμη, καθώς και η δυνατότητα να συμπεριληφθούν εξελίξεις τρίτων στο Mesa, όπως το Kazan (μια υλοποίηση του Vulkan στη Σκουριά). Τα μειονεκτήματα περιλαμβάνουν αυξημένη πολυπλοκότητα του συστήματος κατασκευής, απροθυμία σύνδεσης με το σύστημα πακέτων φορτίου, διευρυμένες απαιτήσεις για το περιβάλλον κατασκευής και την ανάγκη συμπερίληψης του μεταγλωττιστή Rust στις εξαρτήσεις κατασκευής που απαιτούνται για τη δημιουργία βασικών στοιχείων επιφάνειας εργασίας στο Linux.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο