Multi-threading Κορομηνάς Κωνσταντίνος – Μ437 Χατζηανδρέου Ελένη - Μ400 Χήνου Διονυσία – Μ364
Εισαγωγή Multithreading Multithreading Simultaneous Multithreading (SM) Simultaneous Multithreading (SM) Simultaneous Subordinate Microthreading (SSMT) Simultaneous Subordinate Microthreading (SSMT) Speculative Data-Driven Multithreading Speculative Data-Driven Multithreading
Multithreaded Synchronization Unit (SU) Synchronization Unit (SU) Execution Unit (EU) Execution Unit (EU)
Synchronization Unit (SU) Είναι αρμόδιο για την έκδοση των σημάτων ενεργοποίησης (fire signals) στην EU Είναι αρμόδιο για την έκδοση των σημάτων ενεργοποίησης (fire signals) στην EU Fire signal : Fire signal : Ready thread poll Ready thread poll
Synchronization Signals
Μηνύματα SU Data Retrieval Data Retrieval – – Synchronization Synchronization – – Thread migration Thread migration – –
Execution Unit (EU)
Simultaneous Multithreading Μια τεχνική που επιτρέπει σε διάφορα ανεξάρτητα threads να παρέχουν εντολές σε πολλαπλές λειτουργικές μονάδες σε κάθε κύκλο Μια τεχνική που επιτρέπει σε διάφορα ανεξάρτητα threads να παρέχουν εντολές σε πολλαπλές λειτουργικές μονάδες σε κάθε κύκλο Στόχος είναι να αυξηθεί ουσιαστικά η χρησιμοποίηση επεξεργαστών Στόχος είναι να αυξηθεί ουσιαστικά η χρησιμοποίηση επεξεργαστών
Simultaneous Multithreading Machine Models Fine-Grain Multithreading Fine-Grain Multithreading SM:Full Simultaneous Issue SM:Full Simultaneous Issue SM:Single Issue,SM:Dual Issue, SM:Four Issue SM:Single Issue,SM:Dual Issue, SM:Four Issue SM:Limited Connection SM:Limited Connection
Machine Models Διαφορές Hardware Διαφορές Hardware
Cache Design [total I cache size in KB] [private or shared].[D cache size] [private or shared]
SM vs. Single-Chip MP
Πλεονεκτήματα SM έναντι MP Απόδοση με λίγα threads Απόδοση με λίγα threads Granularity και ευελιξία σχεδιασμού Granularity και ευελιξία σχεδιασμού
Πλεονεκτήματα SM Καλύτερη ρυθμαπόδοση (throughput) Καλύτερη ρυθμαπόδοση (throughput) Καλύτερη από finegrain multithreaded Καλύτερη από finegrain multithreaded Καλύτερη στην απόδοση από πολυεπεξεργαστή multipleissue Καλύτερη στην απόδοση από πολυεπεξεργαστή multipleissue
Μέρος Β΄ Ή Με στόχο την αύξηση της ταχύτητας εκτέλεσης ενός προγράμματος, με άξονα την Threaded-tech.
Εντοπίζοντας το πρόβλημα… Αύξηση της αποδοτικότητας μιας multiprocessing αρχιτεκτονικής μέσω Threads – Multithreaded αρχιτεκτονική (γιατί;). Συνέπειες ως προς το χρόνο ολοκλήρωσης εκτέλεσης ενός προγράμματος μεμονωμένα;
Εντοπίζοντας το πρόβλημα(2)... ΖΗΤΕΙΤΑΙ : επιτάχυνση της εκτέλεσης των Threads μεμονωμένα. Υπάρχει «χώρος» γι αυτό;
Simultaneous Subordinate Microthreading (SSMT) Δηλαδή η παραγωγή επιπρόσθετων microthreads για τη βελτίωση του χρόνου εκτέλεσης ενός – του κυρίως – Thread του προγράμματος. Τα micro- γεννώνται και εκτελούνται εκ παραλλήλου με το κυρίως Thread. Branch prediction accuracy – cache hit rate – prefetch effectiveness
Micro-thread spawning Spawn instruction ως μέρος της ISA (Instruction Set Architecture) Event spawning : ένα προκαθορισμένο γεγονός κατά την εκτέλεση του κυρίως thread προκαλεί τη γέννηση του microthread.
Πλεονεκτήματα της SSMT SSMT vs Hardware based μηχανισμοί Hardware πολυπλοκότητα; - αδιαφορία Hardware πολυπλοκότητα; - αδιαφορία Ευελιξία Ευελιξία Microthreads vs απλά Threads Fetch – issue – ISA Fetch – issue – ISA Νέος επεξεργαστής;
Τα απαραίτητα υλικά ISA υποστήριξη (εντολές για τη micro- RAM, spawn εντολή, microcontext) ISA υποστήριξη (εντολές για τη micro- RAM, spawn εντολή, microcontext) Compiler και OS υποστήριξη Compiler και OS υποστήριξη Hardware υποστήριξη (Micro- RAM,decode/rename, microcontext support, register sets) Hardware υποστήριξη (Micro- RAM,decode/rename, microcontext support, register sets)
Βελτιστοποιημένη εκτέλεση BP : compiler synthesis of dynamic branch prediction taken over by microthreads Prefetching : prefetch explicitly (via spawn instruction + routine ) or implicitly (spawn on events + routine ) Cache management : e.g. adaptive replacement policy
Παράδειγμα : BP Hybrid scheme : processor hardware predictor + microthread based + microthread based predictor (SSMT) SPAWN => παραπάνω δουλειά. Τι πρέπει να προσέχει κανείς;
Πειράματα BP hardware predictor – 16KB gshare Microthread routine – PAg implementation Ποιές branches αναλαμβάνονται από microthreads; Compiler Selection Heuristic
Speculative Data-Driven Multithreading Microthread >Data-driven thread Primary thread>Control-driven thread SPAWN>FORK Critical instructions (branches, loads) Prediction cache>integration
Extracting Threads from a Program Trace (algo) Work backwards: Misbehaving instance of a critical instruction is a DDT candidate (1) add more a) such instances or b) their memory dependences(3) I3->I2 add more a) such instances or b) their memory dependences(3) I3->I2 Trigger: last added instr.
Life cycle of a Data-Driven Thread
Register Integration Μηχανισμός που επιτρέπει την απο κοινού επαναχρησιμοποίηση ήδη υπολογισμένων αποτελεσμάτων μεταξύ διαφορετικών execution contexts ενός προγράμματος Thread <- DDT DDT<-other DDT DDT<-Thread
Performance Evaluation 8-wide SMT DDTC, cloaking table Targeting Cache misses : latencies in L1
Performance Evaluation (contnd.) Targeting Branch Mispredict ions