Jump to content


  • astrolabos
    astrolabos

    AMD ZLUDA: Φέρνοντας συμβατότητα CUDA στις GPU Radeon με το ROCm

      Τώρα πλέον είναι Ανοικτού Κώδικα!

    Τα τελευταία χρόνια, η AMD έχει καταβάλει προσπάθειες για τον εξορθολογισμό της διαδικασίας μετάφρασης του κώδικα που έχει σχεδιαστεί για το API CUDA της NVIDIA ώστε να τρέχει στο δικό της stack, το ROCm. Παρά τις βελτιώσεις στα εργαλεία, το έργο παραμένει μια πρόκληση για τους προγραμματιστές που επιδιώκουν τη βέλτιστη απόδοση. Ωστόσο, ένα έργο "skunkworks" που χρηματοδοτήθηκε από την AMD τα τελευταία δύο χρόνια είχε ως στόχο να προσφέρει μια λύση: τη binary συμβατότητα. Η πρωτοβουλία αυτή επιτρέπει σε πολλές εφαρμογές NVIDIA CUDA να εκτελούνται απρόσκοπτα στo ROCm σε επίπεδο βιβλιοθήκης, εξαλείφοντας την ανάγκη προσαρμογής (recompile) του πηγαίου κώδικα από τους προγραμματιστές. Σε αυτό το άρθρο, διερευνούμε τις λεπτομέρειες αυτού του έργου, την έκδοση ανοικτού κώδικα και τις επιπτώσεις για τους τελικούς χρήστες και τους προγραμματιστές.

     

    Το ZLUDA δεν είναι ένα νέο όνομα για όσους είναι εξοικειωμένοι με τις προσπάθειες για την ενεργοποίηση της υποστήριξης CUDA σε διάφορες αρχιτεκτονικές GPU. Αρχικά αναπτύχθηκε για τα γραφικά της Intel, το ZLUDA στόχευε στην παροχή μιας drop-in υλοποίησης CUDA σε GPU της Intel χρησιμοποιώντας τη διεπαφή oneAPI Level Zero. Μετά τη διακοπή του για ιδιωτικούς λόγους, ο αρχικός προγραμματιστής, Andrzej Janik, βρήκε νέα στέγη στην AMD το 2022. Η AMD ανέθεσε στον Janik να προσαρμόσει το ZLUDA για χρήση στις GPUs της με HIP/ROCm, επεκτείνοντας ουσιαστικά τις δυνατότητές του στις GPUs Radeon. Τα τελευταία δύο χρόνια, ο Andrzej Janik αφιέρωσε τις προσπάθειές του στο να φέρει το ZLUDA στις GPUs Radeon. Το αποτέλεσμα είναι μια λειτουργική υλοποίηση που επιτρέπει σε πολλές εφαρμογές λογισμικού CUDA να εκτελούνται σε HIP/ROCm χωρίς καμία τροποποίηση. Οι χρήστες μπορούν να εκτελούν τα binary αρχεία όπως θα έκαναν κανονικά, με τη βιβλιοθήκη ZLUDA να χρησιμεύει ως απρόσκοπτη αντικατάσταση της CUDA. Παρά το γεγονός ότι πρόκειται για προσπάθεια ενός μόνο προγραμματιστή, η υλοποίηση παρουσιάζει εκπληκτικές δυνατότητες.


    Ενώ η AMD αποφάσισε να διακόψει τη χρηματοδότηση του έργου ZLUDA το 2023, προέκυψε μια θετική τροπή. Μια ρήτρα στο συμβόλαιο επέτρεψε στον Janik να ανοίξει το έργο σε ανοικτό κώδικα, αν η χρηματοδότηση σταματούσε, οδηγώντας στην πρόσφατη κυκλοφορία του ZLUDA για AMD ROCm. Ο κώδικας ανοιχτού κώδικα έχει διπλή άδεια χρήσης υπό το Apache 2.0 ή το MIT και αξιοποιεί τη γλώσσα προγραμματισμού Rust.


    Οι αρχικές δοκιμές του ZLUDA σε GPU Radeon έδειξαν πολλά υποσχόμενα αποτελέσματα. Το λογισμικό με δυνατότητα CUDA εκτελείται ομαλά στο ROCm χωρίς να απαιτούνται αλλαγές, παρέχοντας μια βολική λύση για τους τελικούς χρήστες. Ωστόσο, είναι σημαντικό να σημειωθεί ότι το ZLUDA δεν είναι χωρίς περιορισμούς. Προς το παρόν απουσιάζει η πλήρης υποστήριξη NVIDIA OptiX και ορισμένα χαρακτηριστικά, όπως το λογισμικό που δεν χρησιμοποιεί κώδικα συναρμολόγησης PTX, δεν αντιμετωπίζονται. Παρά τους περιορισμούς αυτούς, το ZLUDA αποτελεί ένα σημαντικό βήμα προς τα εμπρός για την επίτευξη συμβατότητας CUDA στις GPU Radeon.


    Στο πλαίσιο της ανοικτής προμήθειας του ZLUDA στη Radeon, υπάρχουν σχέδια για την ενημέρωση του εκτεθειμένου ονόματος συσκευής για τις GPU Radeon μέσω του CUDA. Ενώ ιστορικά αναφερόταν ως "Graphics Device" για να αποκρύψει τη χρήση των GPU Radeon υπό CUDA, ο κώδικας θα τροποποιηθεί ώστε να εμφανίζει με ακρίβεια τη συμβολοσειρά της κάρτας γραφικών Radeon.


    Η κυκλοφορία του ZLUDA για την AMD ROCm αποτελεί ορόσημο για τη συμβατότητα του CUDA με τις GPU Radeon, παρέχοντας ένα πολύτιμο εργαλείο για τους χρήστες και τους προγραμματιστές. Η φύση του έργου ως ανοικτού κώδικα ανοίγει την πόρτα για περαιτέρω συνεισφορές και βελτιώσεις της κοινότητας. Καθώς το ZLUDA συνεχίζει να εξελίσσεται, παρουσιάζει μια συναρπαστική προοπτική για την ενσωμάτωση των GPU της AMD στις ροές εργασίας CUDA, διευρύνοντας τις δυνατότητες τόσο για παιχνίδια όσο και για επαγγελματικές εφαρμογές.


    Πηγή
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.