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

Το έργο LLVM ανακοίνωσε την κυκλοφορία του HPVM 2.0 (Heterogeneous Parallel Virtual Machine), ενός μεταγλωττιστή που στοχεύει στην απλοποίηση του προγραμματισμού για ετερογενή συστήματα και στην παροχή εργαλείων παραγωγής κώδικα για CPU, GPU, FPGA και επιταχυντές υλικού για συγκεκριμένους τομείς. Ο κώδικας του έργου διανέμεται με την άδεια Apache 2.0.

Ο προγραμματισμός για ετερογενή παράλληλα συστήματα περιπλέκεται από την παρουσία στοιχείων στο ίδιο σύστημα που χρησιμοποιούν διαφορετικά μοντέλα για την επίτευξη παραλληλισμού (πυρήνες 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), το οποίο περιλαμβάνει βελτιστοποιήσεις μεταγλωττιστή και μηχανισμούς για τον εντοπισμό σημείων συμφόρησης για τον αυτόματο συντονισμό εφαρμογών για μια δεδομένη πλατφόρμα υλικού. Το πλαίσιο περιέχει ένα έτοιμο μοντέλο απόδοσης για FPGA από την Intel και καθιστά δυνατή τη σύνδεση των δικών σας επεξεργαστών για βελτιστοποίηση για όλες τις συσκευές που υποστηρίζονται από το HPVM. Οι βελτιστοποιήσεις μπορούν να εφαρμοστούν και στα επίπεδα γραφήματος ροής δεδομένων HPVM και LLVM.
  • Τα στοιχεία LLVM έχουν ενημερωθεί στην έκδοση 13.0.
  • Ο κώδικας έχει αναδιοργανωθεί για να διευκολύνει την πλοήγηση στη βάση κώδικα, τις βιβλιοθήκες και τα βοηθητικά προγράμματα.
  • Η υποδομή δοκιμών έχει βελτιωθεί, έχουν προστεθεί νέες δοκιμές για διάφορα εξαρτήματα HPVM.

Πηγή: opennet.ru

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