HPVM, ένας μεταγλωττιστής LLVM για CPU, GPU, FPGA και επιταχυντές υλικού

Το έργο πρόσφατα Η LLVM ανακοίνωσε την κυκλοφορία του τη νέα έκδοση του μεταγλωττιστή HPVM 2.0 (Ετερογενής Παράλληλη Εικονική Μηχανή), στόχος της οποίας είναι η απλοποίηση του προγραμματισμού για συστήματα και παρέχουν εργαλεία για τη δημιουργία κώδικα για CPU, GPU, FPGA και επιταχυντές υλικού για συγκεκριμένους τομείς.

Ο προγραμματισμός ετερογενών παράλληλων συστημάτων είναι πολύπλοκος λόγω της παρουσίας σε ένα σύστημα στοιχείων που χρησιμοποιούν διαφορετικά μοντέλα για την επίτευξη παραλληλισμού (πυρήνες CPU, διανυσματικές εντολές, GPU, κ.λπ.), διαφορετικά σύνολα εντολών και διαφορετικές ιεραρχίες μνήμης. Κάθε σύστημα χρησιμοποιεί τον δικό του συνδυασμό αυτών των στοιχείων.

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

Σε αντίθεση με άλλα συστήματα, Ο HPVM προσπάθησε να συνδυάσει τρεις πιθανότητες για την οργάνωση ετερογενών υπολογιστών: μια ενδιάμεση αναπαράσταση (IR), μια αρχιτεκτονική εικονικού συνόλου εντολών (V-ISA) και προγραμματισμός χρόνου εκτέλεσης, ανεξάρτητα από τη γλώσσα προγραμματισμού και το υλικό.

Η ενδιάμεση αναπαράσταση HPVM επεκτείνει την ενδιάμεση αναπαράσταση των εντολών LLVM χρησιμοποιώντας ένα ιεραρχικό γράφημα ροής δεδομένων να καταγράψει τον παραλληλισμό σε επίπεδο εργασιών, δεδομένων και υπολογιστικών γραμμών. Η ενδιάμεση αναπαράσταση HPVM περιλαμβάνει επίσης διανυσματικές οδηγίες και κοινόχρηστη μνήμη. Ο κύριος στόχος της χρήσης μιας ενδιάμεσης αναπαράστασης είναι η αποτελεσματική παραγωγή κώδικα και η βελτιστοποίηση για ετερογενή συστήματα.

Το Virtual Instruction Set Architecture (V-ISA) αφαιρεί υλικό χαμηλού επιπέδου και ενοποιεί διάφορες μορφές παραλληλισμού και αρχιτεκτονικές μνήμης χρησιμοποιώντας μόνο το υποκείμενο μοντέλο ταυτόχρονης χρήσης, το γράφημα ροής δεδομένων.

Το V-ISA επιτρέπει τη φορητότητα μεταξύ διαφορετικών τύπων υλικού για παράλληλους υπολογιστές και καθιστά δυνατή τη μη απώλεια απόδοσης κατά τη χρήση διαφορετικών στοιχείων ετερογενών συστημάτων. Το εικονικό ISA μπορεί επίσης να χρησιμοποιηθεί για την παράδοση γενικού εκτελέσιμου κώδικα προγράμματος που μπορεί να εκτελεστεί σε CPU, GPU, FPGA και διάφορους επιταχυντές.

Οι ευέλικτες πολιτικές προγραμματισμού υπολογιστών εφαρμόζονται κατά το χρόνο εκτέλεσης και υλοποιούνται με βάση πληροφορίες σχετικά με το πρόγραμμα (γραφική δομή) και με τη σύνταξη μεμονωμένων κόμβων προγράμματος για εκτέλεση σε οποιαδήποτε από τις διαθέσιμες υπολογιστικές συσκευές στόχου στο σύστημα.

Οι γεννήτριες κώδικα που αναπτύχθηκαν από το έργο είναι σε θέση να μεταφράζουν κόμβους εφαρμογών που ορίζονται από το εικονικό ISA για να εκτελούνται σε GPU NVIDIA (cuDNN και OpenCL), διανυσματικές οδηγίες Intel AVX, FPGA και επεξεργαστές πολλαπλών πυρήνων x86. Σημειώνεται ότι η απόδοση εξόδου των μεταφραστών HPVM είναι συγκρίσιμη με τον χειρόγραφο κώδικα OpenCL για συσκευές GPU και διανυσματικά υπολογιστές.

Κύρια νέα χαρακτηριστικά του HPVM 2.0

Για το μέρος από τις καινοτομίες που παρουσιάζονται Στη νέα αυτή έκδοση ξεχωρίζουν τα εξής:

  • Προτείνεται η διεπαφή γλώσσας Hetero-C++, η οποία απλοποιεί την παραλληλοποίηση του κώδικα εφαρμογής σε γλώσσες C/C++ για μεταγλώττιση σε HPVM. Το Hetero-C++ ορίζει επεκτάσεις για παραλληλισμό επιπέδου δεδομένων και ιεραρχικές εργασίες που αντιστοιχίζονται σε γραφήματα νημάτων HPVM.
  • Έχει προστεθεί ένα σύστημα υποστήριξης FPGA για την υποστήριξη του τρέχοντος κώδικα σε ένα Intel FPGA. Για την ενορχήστρωση της εκτέλεσης, χρησιμοποιείται το Intel FPGA SDK για OpenCL.
  • Προστέθηκε το πλαίσιο DSE (Design Space Exploration), το οποίο περιλαμβάνει βελτιστοποιήσεις μεταγλωττιστή και μηχανισμούς ανίχνευσης σημείων συμφόρησης για αυτόματη ρύθμιση εφαρμογών για μια δεδομένη πλατφόρμα υλικού.
  • Το πλαίσιο περιέχει ένα εξωγενές μοντέλο απόδοσης για Intel FPGA και σας επιτρέπει να συνδέσετε τους δικούς σας επεξεργαστές για να βελτιστοποιήσετε οποιαδήποτε συσκευή με δυνατότητα HPVM.
  • Οι βελτιστοποιήσεις μπορούν να εφαρμοστούν τόσο σε επίπεδο γραφήματος ροής δεδομένων HPVM όσο και σε επίπεδο LLVM.
  • Ενημερώθηκαν τα στοιχεία LLVM στην έκδοση 13.0.
  • Ο κώδικας έχει αναδιοργανωθεί για να διευκολύνει την πλοήγηση στη βάση κώδικα, τις βιβλιοθήκες και τα βοηθητικά προγράμματα.
  • Η υποδομή για δοκιμές έχει βελτιωθεί, έχουν προστεθεί νέες δοκιμές για διάφορα στοιχεία HPVM.

Τέλος, Εάν ενδιαφέρεστε να μάθετε περισσότερα για τον HPVM, μπορείτε να δείτε τις λεπτομέρειες στο τον ακόλουθο σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.