Simultaneous Multithreading
Καναβός Ανδρέας ΑΜ:638 Παπακηρύκου Ευάγγελος ΑΜ:640
Δομή παρουσίασης
Παρουσίαση simultaneous multithreading μοντέλων, Σύγκριση με άλλα μοντέλα : − − −
Wide superscalar (Υπερβαθμωτοί επεξεργαστές), Fine-grain multithreaded processor (Πολυνηματισμός), Single-chip, multiple-issue multiprocessor (Πολυεπεξεργαστές),
Τρόπος ρύθμισης της ιεραρχίας των cache,
Αποτίμηση σύγκρισης
Ορισμός
Μορφή δόμησης του κεντρικού επεξεργαστή, Διάφορα, ανεξάρτητα threads εκτελούν εντολές σε πολλαπλές επεξεργαστικές μονάδες, Όλα αυτά σ’ ένα κύκλο!
Ιδιότητες
Κάθε thread αντιστοιχίζεται δυναμικά με μια επεξεργαστική μονάδα, Αύξηση processor utilization, Εξάλειψη memory latencies και του παραλληλισμού ανά thread, Συνδυάζει χαρακτηριστικά σύγχρονων υπερβαθμωτών (εκτέλεση πολλών εντολών) και πολυνηματικών (μειωμένη καθυστέρηση) επεξεργαστών.
Ιδιότητες (2)
Σύγχρονοι υπερβαθμωτοί επεξεργαστές (DEC Alpha 21164, PowerPC 604, κ.α.), −
Αύξηση απόδοσης αλλά υποφέρει από εξαρτήσεις εντολών (π.χ. παραλληλισμός)
Πολυνηματικοί επεξεργαστές (HEP, Tera, MASA, κ.α.) −
Παραδοσιακές πολυνηματικές τεχνικές
Αντιμετωπίζουν οριζόντια + κάθετη σπατάλη
Ιδιότητες (3)
Οριζόντια σπατάλη, όταν δεν έχουν γεμίσει όλες οι θέσεις σ’ ένα κύκλο, Κάθετη σπατάλη, όταν δεν υπάρχει καμία εντολή σ’ ένα κύκλο.
Χαρακτηριστικά αρχιτεκτονικής Η αρχιτεκτονική βελτιώνει τις υπάρχουσες −
στην μεθοδολογία, συμπεριλαμβανομένης της λεπτομέρειας στην προσομοίωση, της βασικής αρχιτεκτονικής, του φόρτου εργασίας και της βελτιστοποίησης του compiler,
−
στην ποικιλία των μοντέλων που προσομοιώνονται και
−
στην ανάλυση της αλληλεπίδρασης της cache με την αρχιτεκτονική.
Χαρακτηριστικά αρχιτεκτονικής (2) Η αρχιτεκτονική είναι βέλτιστη για τους εξής λόγους : −
ο αριθμός των βαθμίδων του pipeline που απαιτούνται για τις εντολές,
−
ο χρόνος προσπέλασης της data cache (shared) ή αλλιώς η καθυστέρηση λόγω load instructions.
Περιβάλλον προσομοίωσης
Ο προσομοιωτής μοντελοποιεί execution pipelines, ιεραρχία μνήμης και πρόβλεψη διακλαδώσεων, Βασίζεται στο μοντέλο Alpha AXP21164, 300MHz, Περιέχει 10 λειτουργικές μονάδες 4 τύπων (ακέραιοι, κινητής υποδιαστολής, load/store και διακλάδωση) και μέγιστο ρυθμό εκτέλεσης εντολών 8 instr./cycle
Workload (Φόρτος εργασίας)
SPEC92 benchmark suite, Σε single-thread περιβάλλον χρησιμοποιήθηκαν τα default data sets του SPEC, Σε multithreaded περιβάλλον έγιναν κάποιες αλλαγές (κάθε benchmark τρέχει μόνο μία φορά σε θέση προτεραιότητας), Multiflow trace scheduling compiler, Χρησιμοποιήθηκε το εκτελέσιμο με το καλύτερο single-thread χρόνο εκτέλεσης.
Superscalar
Issue utilization (%filled slots κάθε κύκλο) Οι λειτουργικές μονάδες ενός wide superscalar υποχρησιμοποιούνται, Το utilization φτάνει μόνο στο 19% (μέσος αριθμός εκτέλεσης εντολών/κύκλο < 1.5), Μεγαλύτερος παράγοντας waste: οι short Fixed Pointer εντολές, Γενικά, δεν υπάρχει κάποιος (dominant) παράγοντας για τους wasted κύκλους!
Superscalar (2)
Superscalar (3)
Δεν υπάρχει ούτε dominant λύση! Η χρήση παραδοσιακού multithreading αντιμετωπίζει μόνο το vertical waste εξαιτίας της ανικανότητας ενός νήματος να γεμίσει τα slots σ’ ένα κύκλο, Αντίθετα, ο S.M. μπορεί να αντιμετωπίσει τόσο το horizontal όσο και το vertical waste.
S.M. υλοποιήσεις
Διάφορες υλοποιήσεις Κριτήριο: πώς τα threads αξιοποιούν τα slots και τις επεξεργαστικές μονάδες,
5.
Fine-grain multithreading
7.
SM-Full Simultaneous issue
9.
SM-Single/Dual/Four issue
11.
SM-Limited Connection
Fine-grain multithreading
Μόνο ένα thread εκτελεί εντολές σε κάθε κύκλο,
Αντιμετωπίζει το vertical waste,
Αγνοεί το horizontal waste,
Ουσιαστικά δεν είναι S.M. υλοποίηση,
Μοιάζει στον επεξεργαστή Tera.
SM-Full Simultaneous issue
Όλα τα threads “ανταγωνίζονται” για τα issue slots κάθε κύκλου, Το λιγότερο “ρεαλιστικό” μοντέλο όσον αφορά την πολυπλοκότητα του υλικού, Δείχνει όλο το δυναμικό της τεχνολογίας.
SM-Single/Dual/Four issue
Αναφέρεται στο πλήθος των εντολών που κάθε thread μπορεί να υποβάλλει ή να έχει ενεργές, σε κάθε κύκλο, Π.χ. dual issue: 2 εντολές/κύκλο minimum_threads = issue_slots/2.
SM-Limited Connection
Κάθε επεξεργαστής αντιστοιχίζεται μόνο σε μια επεξεργαστική μονάδα, Partitioning: περισσότερο στατικό παρά δυναμικό, Μοιάζει λιγότερο με το βασικό μοντέλο.
Απόδοση S.M.
#εντολών/κύκλο ως προς #threads
Ένα διάγραμμα/υλοποίηση
Fine-grain multithreading: δίνει speedup μόνο 2.1 Δεν βοηθάει ιδιαίτερα η αύξηση των threads.
Απόδοση S.M. (2)
SM-Full simultaneous Issue: ο ανταγωνισμός μεταξύ των threads οδηγεί σε πλήρη αξιοποίηση των υπολογιστικών πόρων Αυτό φαίνεται στο σχήμα Επίσης φαίνεται και πόσο αποδίδει ο διαμοιρασμός και άλλων μεγεθών.
Απόδοση S.M. (3)
SM-Single Issue per thread: μια “μετριοπαθής” υλοποίηση. Φανερή βελτίωση.
Απόδοση S.M. (4)
Ακόμα και μικρές cache δίνουν τα παραπάνω αποτελέσματα! Γενικά, ο S.M. είναι σε θέση να ξεπεράσει τους περιορισμούς στην απόδοση τόσο του single-thread execution,όσο και του finegrain multithreading. Αυτό ισχύει ακόμα και για απλοποιημένες εκδοχές.
Απόδοση S.M. (5)
Υπάρχει #threads για το οποίο το F.G.M. κάνει καλύτερη δουλειά! Γενικότερα, φαίνεται πόσο καλά διαχειρίζονται τα διαθέσιμα resources κάθε παραλλαγή του S.M.
Caches παίζουν βασικό ρόλο στην απόδοση
L1 caches, Private vs. shared cache(instructions & data), [μέγεθος I cache σε KB][shared ή private].[μέγεθος D cache σε KB][shared ή private]
Caches (2)
Οι shared caches είναι βέλτιστες για μικρό #threads, Οι private λειτουργούν καλύτερα με μεγάλο #threads, 64private.64shared → 8 private Instruction caches των 8 KB + 1 shared 64 KB data cache, Για μικρό αριθμό threads, καλύτερη επιλογή είναι η 64shared.64shared.
Simultaneous Multithreading (SM) vs. Single-Chip Multiprocessing (MP)
Ο S.M. αποτελεί μία πολύ ελκυστική εναλλακτική απέναντι στους πολλαπλούς επεξεργαστές (single-chip multiprocessors) Και οι 2 αρχιτεκτονικές αυξάνουν τους πόρους της εκτέλεσης, SM > MP στην αξιοποίηση των πόρων του επεξεργαστή.
Simultaneous Multithreading (SM) vs. Single-Chip Multiprocessing (MP) (2)
Πειραματική διαδικασία: ισοδύναμα configurations, Σε κάποιες περιπτώσεις δόθηκε “πλεονέκτημα” στο MP, Ωστόσο, το SM αποδείχτηκε καλύτερο από 2 απόψεις: Xρόνος για προγραμματισμό των εντολών στις επεξεργαστικές μονάδες και Χρόνος πρόσβασης στις shared caches.
Simultaneous Multithreading (SM) vs. Single-Chip Multiprocessing (MP) (3)
Το MP υπερτερεί στις αποστάσεις load/store units-data caches, Οι εναλλακτικoί SM σχηματισμοί εξαλείφουν αυτό το μειονέκτημα, Στον πίνακα φαίνονται οι 2 σχηματισμοί συγκριτικά :
Simultaneous Multithreading (SM) vs. Single-Chip Multiprocessing (MP) (4)
Simultaneous Multithreading (SM) vs. Single-Chip Multiprocessing (MP) (5)
Το SM υπερέχει γιατί : Κάνει partitioning στις επεξεργαστικές μονάδες καθώς και Απαιτεί λιγότερους πόρους.
Τι καταφέρνουμε;
Αύξηση απόδοσης,
Αύξηση CPU utilization,
Εξάλειψη memory latencies,
“Παράκαμψη” των περιορισμών του παραλληλισμού,
Τι καταφέρνουμε; (2)
“Οικονομία” στη χρήση threads,
Παραμετροποίηση,
Λεπτομέρεια και
Eυελιξία στο σχεδιασμό.
Μειονεκτήματα S.M.
Αυξάνει την πολυπλοκότητα του σχεδιασμού σε σχέση με τους υπερβαθμωτούς επεξεργαστές, Αυξάνει την πολυπλοκότητα του instruction scheduling,
Shared resource contention στην μνήμη,
Μετατροπές του βασικού μοντέλου.
Συγκρίσεις
instruction throughput : − −
S.M. > single-threaded wide superscalar (4 times), S.M. > fine-grain multithreading (2 times), λόγω της αδυναμίας του να αναπληρωθεί η οριζόντια σπατάλη
για register sets + functional units : − −
S.M. > multiple-issue multiprocessor, για επίτευξη συγκεκριμένης απόδοσης, ο S.M. χρειάζεται λιγότερους υπολογιστικούς πόρους
Συγκρίσεις (2) – Πλεονεκτήματα S.M.
Εκτινάσσει το utilization αναθέτοντας δυναμικά επεξεργαστικές μονάδες σε νήματα Αυξάνει την ευελιξία της σχεδίασης του υλικού αφού διαχειρίζεται καλύτερα τους διαθέσιμους υπολογιστικούς πόρους