Εικασίες για Προσομοίωση. Καινοτομία στην επαλήθευση

Εικασίες για Προσομοίωση. Καινοτομία στην επαλήθευση

Κόμβος πηγής: 2547459

Αυτή είναι μια ενδιαφέρουσα ιδέα, χρησιμοποιώντας κερδοσκοπικό παραλληλισμό που υποστηρίζεται από υλικό για να επιταχύνει την προσομοίωση, με μια ανατροπή που απαιτεί προσαρμοσμένο υλικό. Ο Paul Cunningham (Senior VP/GM, Verification at Cadence), ο Raúl Camposano (Silicon Catalyst, επιχειρηματίας, πρώην CTO της Synopsys και νυν CTO Silvaco) και εγώ συνεχίζουμε τη σειρά μας για ερευνητικές ιδέες. Όπως πάντα, τα σχόλια είναι ευπρόσδεκτα.

Εικασίες για Προσομοίωση

Η Καινοτομία

Η επιλογή αυτού του μήνα είναι Chronos: Efficient Speculative Parallelism for Accelerators. Οι συγγραφείς παρουσίασαν την εργασία στο Συνέδριο του 2020 για την Αρχιτεκτονική Υποστήριξη για Γλώσσες Προγραμματισμού και Λειτουργικά Συστήματα και προέρχονται από το MIT.

Η εκμετάλλευση του παραλληλισμού χρησιμοποιώντας επεξεργαστές πολλαπλών πυρήνων είναι μια επιλογή για εφαρμογές όπου ο παραλληλισμός είναι αυτονόητος. Άλλοι αλγόριθμοι μπορεί να μην χωρίζονται τόσο εύκολα, αλλά μπορεί να ωφεληθούν από την κερδοσκοπική εκτέλεση που εκμεταλλεύεται τον εγγενή παραλληλισμό. Συνήθως, η κερδοσκοπική εκτέλεση εξαρτάται από τη συνοχή της κρυφής μνήμης, ένα υψηλό κόστος ειδικά για την προσομοίωση. Αυτή η μέθοδος παρακάμπτει την ανάγκη για συνοχή, τοπικό εντοπισμό της εκτέλεσης εργασιών για τον υπολογισμό των πλακιδίων με στόχο το αντικείμενο ανάγνωσης-εγγραφής, διασφαλίζοντας ότι η ανίχνευση σύγκρουσης μπορεί να ανιχνευθεί τοπικά, χωρίς την ανάγκη για συνολική διαχείριση συνοχής. Οι εργασίες μπορούν να εκτελεστούν κερδοσκοπικά παράλληλα. Οποιαδήποτε διένεξη ανιχνεύεται μπορεί να ξεδιπλωθεί από μια εργασία μέσω των θυγατρικών εργασιών της και στη συνέχεια να εκτελεστεί ξανά χωρίς να χρειάζεται να σταματήσουν άλλα νήματα.

Ένα άλλο σημείο αναφοράς εδώ. Αυτή η μέθοδος υποστηρίζει προσομοίωση που βασίζεται σε καθυστέρηση, σε αντίθεση με τις περισσότερες τεχνικές επιτάχυνσης υλικού.

Η άποψη του Παύλου

Ουάου, τι υπέροχο χαρτί υψηλών οκτανίων από το MIT! Όταν με ρωτούν για παράλληλους υπολογισμούς, σκέφτομαι αμέσως τα νήματα, τα mutexes και τη συνοχή της μνήμης. Αυτός είναι φυσικά ο τρόπος με τον οποίο σχεδιάζονται οι σύγχρονοι πολυπύρηνες CPU. Αλλά δεν είναι ο μόνος τρόπος για να υποστηρίξετε την παραλληλοποίηση σε υλικό.

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

Οι εργασίες στην ουρά εκχωρούνται σε πολλαπλά στοιχεία επεξεργασίας (PE) παράλληλα – πράγμα που σημαίνει ότι το Chronos εκτελεί κερδοσκοπικά μελλοντικές εργασίες πριν ολοκληρωθεί η τρέχουσα εργασία. Εάν η τρέχουσα εργασία ακυρώσει οποιεσδήποτε μελλοντικές εργασίες που εκτελούνται κερδοσκοπικά, τότε οι ενέργειες αυτών των μελλοντικών εργασιών "αναιρούνται" και τοποθετούνται εκ νέου στην ουρά. Η σωστή εφαρμογή αυτής της ιδέας στο υλικό δεν είναι εύκολη, αλλά για τον εξωτερικό χρήστη είναι όμορφη: απλώς κωδικοποιείτε τον αλγόριθμό σας σαν να εκτελείται η ουρά εργασιών σειριακά σε ένα μόνο PE. Δεν χρειάζεται να κωδικοποιήσετε τυχόν mutexes ή να ανησυχείτε για αδιέξοδο.

Οι συγγραφείς εφαρμόζουν το Chronos στο SystemVerilog και το μεταγλωττίζουν σε ένα FPGA. Μεγάλο μέρος της εργασίας είναι αφιερωμένο στην εξήγηση του τρόπου με τον οποίο έχουν εφαρμόσει την ουρά εργασιών και κάθε απαραίτητο ξετύλιγμα στο υλικό για μέγιστη απόδοση. Το Chronos έχει συγκριθεί με τέσσερις αλγόριθμους κατάλληλους για μια αρχιτεκτονική βασισμένη σε ουρά εργασιών. Κάθε αλγόριθμος υλοποιείται με δύο τρόπους: πρώτον χρησιμοποιώντας ένα αποκλειστικό PE για συγκεκριμένο αλγόριθμο και, δεύτερον, χρησιμοποιώντας έναν ανοιχτό κώδικα ανοιχτού κώδικα 32-bit ενσωματωμένου CPU RISC-V ως PE. Η απόδοση του Chronos συγκρίνεται στη συνέχεια με εφαρμογές λογισμικού πολλαπλών νημάτων των αλγορίθμων που εκτελούνται σε διακομιστή Intel Xeon με παρόμοια τιμή με το FPGA που χρησιμοποιείται για το Chronos. Τα αποτελέσματα είναι εντυπωσιακά – το Chronos κλιμακώνεται 3x έως 15x καλύτερα από τη χρήση του διακομιστή Xeon. Ωστόσο, η σύγκριση του Πίνακα 3 με το Σχήμα 14 με κάνει να ανησυχώ λίγο ότι τα περισσότερα από αυτά τα κέρδη προήλθαν από τα PE ειδικά για τον αλγόριθμο και όχι από την ίδια την αρχιτεκτονική του Chronos.

Δεδομένου ότι αυτό είναι ένα ιστολόγιο επαλήθευσης, φυσικά μεγέθυνσα το σημείο αναφοράς προσομοίωσης σε επίπεδο πύλης. Η βιομηχανία EDA έχει επενδύσει πολλά για να προσπαθήσει να παραλληλίσει τη λογική προσομοίωση και έχει αποδειχθεί δύσκολο να δει μεγάλα κέρδη πέρα ​​από μερικές συγκεκριμένες περιπτώσεις χρήσης. Αυτό οφείλεται κυρίως στο ότι η απόδοση των περισσότερων προσομοιώσεων πραγματικού κόσμου κυριαρχείται από οδηγίες φόρτωσης/αποθήκευσης που λείπουν στην κρυφή μνήμη L3 και βγαίνουν στη μνήμη DRAM. Υπάρχει μόνο μία δοκιμαστική περίπτωση που έχει συγκριθεί σε αυτό το έγγραφο και είναι ένας μικροσκοπικός αθροιστής αποθήκευσης μεταφοράς 32 bit. Εάν διαβάζετε αυτό το ιστολόγιο και θα σας ενδιαφέρει να κάνετε κάποια πιο ενδελεχή συγκριτική αξιολόγηση, ενημερώστε με – εάν το Chronos μπορεί πραγματικά να κλιμακωθεί καλά σε προσομοιώσεις πραγματικού κόσμου, θα είχε τεράστια εμπορική αξία!

Η άποψη του Ραούλ

Η κύρια συμβολή της παρούσας εργασίας είναι η Μοντέλο εκτέλεσης Spatially Located Ordered Tasks (SLOT). που είναι αποτελεσματικό για επιταχυντές υλικού που εκμεταλλεύονται τον παραλληλισμό και την εικασία και για εφαρμογές που δημιουργούν εργασίες δυναμικά κατά το χρόνο εκτέλεσης. Η υποστήριξη δυναμικού παραλληλισμού είναι αναπόφευκτη για την προσομοίωση και ο κερδοσκοπικός συγχρονισμός είναι μια ελκυστική επιλογή, αλλά το κόστος συνοχής είναι πολύ υψηλό.

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

Η Chronos Το σύστημα υλοποιήθηκε στο πλαίσιο AWS FPGA ως σύστημα με 16 πλακίδια, το καθένα με 4 στοιχεία επεξεργασίας για συγκεκριμένες εφαρμογές (PE), που λειτουργούν στα 125 MHz. Αυτό το σύστημα συγκρίνεται με μια γραμμή βάσης που αποτελείται από 20-core/40-thread 2.4 GHz Intel Xeon E5-2676v3, που επιλέχθηκε ειδικά επειδή η τιμή του είναι συγκρίσιμη με το FPGA (περίπου 2 $/ώρα). Εκτελώντας μια μεμονωμένη εργασία σε ένα PE, το Chronos είναι 2.45 φορές ταχύτερο από τη γραμμή βάσης. Καθώς ο αριθμός των ταυτόχρονων εργασιών αυξάνεται, η υλοποίηση του Chronos κλιμακώνεται σε μια αυτοσχετική επιτάχυνση 44.9x σε 8 πλακίδια, που αντιστοιχεί σε επιτάχυνση 15.3x σε σχέση με την υλοποίηση της CPU. Συνέκριναν επίσης μια υλοποίηση που βασίζεται σε RISC-V γενικού σκοπού και όχι σε PE ειδικά για εφαρμογές. Τα PE ήταν 5 φορές ταχύτερα από το RISC-V.

Βρήκα το χαρτί εντυπωσιακό γιατί καλύπτει τα πάντα, από μια ιδέα μέχρι τον ορισμό του μοντέλου εκτέλεσης SLOT έως την υλοποίηση του υλικού και τη λεπτομερή σύγκριση με μια παραδοσιακή CPU Xeon για 4 εφαρμογές. Η προσπάθεια είναι σημαντική, το Chronos είναι πάνω από 20,000 γραμμές SystemVerilog. Το αποτέλεσμα είναι μια μέση επιτάχυνση 5.4 φορές (από τις 4 εφαρμογές) σε σχέση με τις παράλληλες εκδόσεις λογισμικού, λόγω του μεγαλύτερου παραλληλισμού και της μεγαλύτερης χρήσης της κερδοσκοπικής εκτέλεσης. Η εργασία αξίζει επίσης να διαβαστεί για εφαρμογή σε εργασίες μη προσομοίωσης. η εργασία περιλαμβάνει τρία παραδείγματα.

Μοιραστείτε αυτήν την ανάρτηση μέσω:

Σφραγίδα ώρας:

Περισσότερα από Semiwiki