Υ- 01 Αρχιτεκτονική Υπολογιστών Εισαγωγή

Σχετικά έγγραφα
ΠΛΕ- 027 Μικροεπεξεργαστές

Αφηρημένες έννοιες και τεχνολογία υπολογιστών

Αρχιτεκτονική Υπολογιστών

Chapter 4 ( ή 1 στο βιβλίο σας)

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Προχωρηµένα Θέµατα Αρχιτεκτονικής

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Αρχιτεκτονική Υπολογιστών. ηµήτρης Γκιζόπουλος Καθηγητής

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 1. Αφηρηµένες έννοιες και τεχνολογία υπολογιστών. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

Απόδοση Υπολογιστικών Συστημάτων

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Κεφάλαιο 4 Εκτίμηση και Κατανόηση Απόδοσης (Assessing and Understanding Performance)

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 1. Αφηρηµένες έννοιες και τεχνολογία υπολογιστών

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Αρχιτεκτονική Υπολογιστών Ι (ένα)

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Αρχιτεκτονική και απόδοση Υπολογιστών

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΑρχιτεκτονικήΥπολογιστών. Ι (ένα) Δημήτρης Γκιζόπουλος. Καθηγητής

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Αρχιτεκτονική Υπολογιστών

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Αρχιτεκτονική Υπολογιστών

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

Κεντρική Μονάδα Επεξεργασίας

ΗΥ 232. Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 1. Εισαγωγή στο μάθημα. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α ΤΑΞΗ

Συστήματα VLSI. Εισαγωγή. Γιώργος Δημητρακόπουλος. Δημοκρίτειο Πανεπιστήμιο Θράκης. Άνοιξη 2014

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική


Αρχιτεκτονική Υπολογιστών

Τελική Εξέταση, Απαντήσεις/Λύσεις

Παραλληλισμός σε επίπεδο εντολών

Λειτουργικά Συστήματα (Λ/Σ)

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Διαφορές single-processor αρχιτεκτονικών και SoCs

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

ΠΡΟΗΓΜΕΝΕΣ ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΑΡΑΛΛΗΛΑ ΣΥΣΤΗΜΑΤΑ

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

Ψηφιακά ολοκληρωμένα κυκλώματα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

CE121 Προγραµµατισµός ΙΙ. Χρόνος εκτέλεσης. Βάνα Ντουφεξή

Υ- 01 Αρχιτεκτονική Υπολογιστών Πρόβλεψη διακλάδωσης

ΕΙΣΑΓΩΓΗ στους Η/Υ. Δρ. Β Σγαρδώνη. Τμήμα Τεχνολογίας Αεροσκαφών ΤΕΙ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ. Χειμερινό Εξάμηνο

Τεχνολογίες Κύριας Μνήμης

Οι τέσσερις αρχές για τον σχεδιασμό του συνόλου εντολών μιας μηχανής είναι:

ΗΥ 134. Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 1. Εισαγωγή. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

Αρχιτεκτονική Υπολογιστών

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

Ενσωματωμένα Συστήματα

Τ.Ε.Ι. ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΣΥΝΕΡΓΑΣΤΗΚΑΝ ΡΟΚΑ ΑΦΡΟΔΙΤΗ ΣΩΤΗΡΑΚΟΥ ΣΤΑΜΑΤΙΑ ΦΕΒΡΟΥΑΡΙΟΣ 2006

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

Αρχιτεκτονικη υπολογιστων

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός

Εισαγωγή Συμβόλαιο Μαθήματος

Βασίλειος Κοντογιάννης ΠΕ19

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

KOIOS SUMMER INTERNSHIP NETWORKS ON CHIP (NoC)

Αρχιτεκτονικές Συνόλου Εντολών

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Προγραμματισμός συστημάτων UNIX/POSIX. Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Τέτοιες λειτουργίες γίνονται διαμέσου του

Αρχιτεκτονική Υπολογιστών

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

Εισαγωγή στην Αρχιτεκτονική Η/Υ

Οργάνωση Υπολογιστών (IΙI)

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση

Transcript:

Υ- 01 Αρχιτεκτονική Υπολογιστών Εισαγωγή Αρης Ευθυμίου

Το σημερινό μάθημα Οργανωτικά/διαδικαστικά του μαθήματος θέματα που θα καλύψουμε οργάνωση/βαθμολογία Εισαγωγή μέτρα επίδοσης υπολογιστών χρόνος εκτέλεσης CPI,IPC Νόμος του Amdhal Μετροπρογράμματα Προσομοίωση 2

Θέματα που θα καλύψουμε Σύντομη επισκόπιση των βασικών διοχέτευση, κρυφές μνήμες Superscalar processors instruc`on level parallelism Front- end design Branch predic`on Register renaming Back- end design Instruc`on issue and scheduling Memory access instruc`ons Cache hierarchy Mul`processors/mul`threading 3

Reading list Βιβλία: Jean- Loup Baer, Microprocessor Architecture, from simple pipelines to chip mul`processors, Cambridge Un. Press, 2010 John Hennessy, David Payerson Computer Architecture, a quan`ta`ve approach, 4 th /5 th edi`on, MKP Αρθρα: για παρουσίαση, prooject. θα δοθούν αργότερα 4

Οργάνωση μαθήματος Διδάσκοντας: Αρης Ευθυμίου (Β.29, e hym AT cs ) Διαλέξεις Αιθ. B2, Πέμπτη 10.00-13.00 Ως μεταπτυχιακοί φοιτητές, δεν επιτρέπεται καμία απουσία, χωρίς συνεννόηση με το διδάσκοντα ΑΠΟ ΠΡΙΝ Μελέτη papers, προετοιμασία παρουσίασης και συζήτηση στην τάξη Μετράει η συμμετοχή Project Υλοποίηση και μέτρηση αρχιτεκτονικών τεχνικών σε/με προσομοιωτή Θα πούμε παραπάνω πράγματα σε λίγο καιρό 5

Οργάνωση μαθήματος Πρόοδος / τελικές εξετάσεις (???) Θα εξαρτηθούν από τον αριθμό των φοιτητών Πολλοί: εξετάσεις και (αναγκαστικά) ομαδικά project Λίγοι: project και παρουσιάσεις Βαθμολογία Πάλι, θα εξαρτηθεί από τον αριθμό των φοιτητών Σε 2 εβδομάδες θα καθοριστούν τα παραπάνω 6

Μοντέλο von Neumann Ακολουθείται από τη δεκαετία του 40 Παρόμοιο με αυτό του Babbage (19ο αιώνα) 7

Βελτίωση επίδοσης Move to multi-processor RISC nn 8

Ορισμός Επίδοσης Ποιό αεροπλάνο έχει καλύτερη επίδοση; 9

Επίδοση υπολογιστή Χρόνος απόκρισης ή λανθάνον χρόνος (response `me, latency) Ο χρόνος που χρειάζεται για να γίνει μια «δουλειά» Ρυθμός εκτέλεσης (Throughput, Bandwidth) Δουλειές ανά μονάδα χρόνου e.g., tasks/transac`ons/ per hour Αλλα μέτρα επίδοσης Κατανάλωση ενέργειας Αξιοπιστία 10

Η ferrari και το αστικό Ferrari: 2 επιβάτες, 100km/h (στην πόλη) Αστικό: 70 επιβάτες, 10km/h (με τις στάσεις) Σπίτι/στάση- Πανεπιστήμιο 10km Με ποιό μέσο ένας επιβάτης θα πάει πιο γρήγορα στο Πανεπιστήμιο? Ποιό μέσο μεταφέρει περισσότερους επιβάτες ανα ώρα? Επικεντρώνουμε στο χρόνο απόκρισης 11

Μέτρηση χρόνου εκτέλεσης Πραγματικός χρόνος που πέρασε (Elapsed `me) Πλήρης χρόνος απόκρισης, περιλαμβάνει επεξεργασία, είσοδο- έξοδο, χρόνο Λ.Σ., άλλες διεργασίες,... Καθορίζει την επίδοση του συστήματος Χρόνος CPU Χρόνος επεξεργασίας μιας δουλειάς Αγνοεί χρόνο εισόδου- εξόδου, άλλες διεργασίες Αποτελείται από το χρόνο CPU χρήστη και συστήματος (user, system CPU `me) 12

CPU Time Η επίδοση βελτιώνεται: μειώνοντας τον αριθμό κύκλων ρολογιού αυξάνοντας το ρυθμό (συχνότητα) ρολογιού Δυστυχώς συχνά ο σχεδιαστής πρέπει να «ζυγίσει» το ρυθμό ρολογιού με τον αριθμό κύκλων 13

CPU Time, Παράδειγμα Computer A: ρολόι 2GHz, 10s CPU `me Σχεδιάζουμε Computer B Προσπαθούμε για 6s CPU `me Μπορούμε να αυξήσουμε το ρυθμό ρολογιού, αλλά αυτό προκαλεί αύξηση κύκλων ρολογιού 1.2 Πόση πρέπει να είναι η συχνότητα ρολογιού του Computer B; 14

Αριθμός εντολών, CPI Αριθμός (δυναμικών) εντολών προγράμματος Καθορίζονται από το πρόγραμμα, ISA, μεταφραστή Μέσος όρος κύκλων ανά εντολή (CPI) Καθορίζεται από το υλικό 15

Instruc`ons per Cycle (IPC) Το αντίστροφο του CPI Οι συγχρονοι υπολογιστές που εκτελούν πολλές εντολές ταυτόχρονα Εκφράζει ρυθμό εκτέλεσης (throughput) Ψυχολογικά καλύτερο να προσπαθεί κανείς να αυξήσει το CPI αντί να μειώσει το IPC 16

Συνιστώσες του CPI Σε ένα ιδανικό επεξεργαστή που εκτελεί 1 εντολή ανά κύκλο, CPI = 1 Οποιοδήποτε «πρόβλημα» αυξάνει το CPI CPI =1+ CPI cache + CPI branches + CPI stalls +... CPI x είναι ο αριθμός των επιπλέον κύκλων που προκαλεί το στοιχείο x Αντίστοιχα: IPC = 1 x 1+ CPI x 17

Παράγοντες επίδοσης CPU Time = Instruction Count CPI Clock Cycle Time Αλγόριθμος Καθορίζει αριθμό πράξεων Γλώσσα, μεταφραστής, αρχιτεκτονική Καθορίζουν αριθμό εντολών μηχανής ανά πράξη (γλώσσας) Επεξεργαστής και σύστημα μνήμης Καθορίζουν ταχύτητα εκτέλεσης εντολών Σύστημα εισόδου- εξόδου (και Λ.Σ.) Καθορίζει ταχύτητα I/O 18

Λεπτομέρειες CPI Αν οι διάφορες κατηγορίες εντολών έχουν διαφορετικό αριθμό κύκλων εκτέλεσης: Το μέσο CPI πρέπει να χρησιμοποιεί τη σχετική συχνότητα εμφάνισης εντολών Σχετική συχνότητα 19

CPI Παράδειγμα 2 εναλλακτικά προγράμματα με εντολές κατηγοριών A, B, C Κατηγορία A B C CPI κατηγορίας 1 2 3 IC πρόγραµµα 1 2 1 2 IC πρόγραµµα 2 4 1 1 Πρόγραμμα 1: IC = 5 Κύκλοι = 2 1 + 1 2 + 2 3 = 10 μέσο CPI = 10/5 = 2.0 Πρόγραμμα 2: IC = 6 Κύκλοι = 4 1 + 1 2 + 1 3 = 9 μέσο CPI = 9/6 = 1.5 20

Σχετική επίδοση Ορίζουμε Performance = 1/Execu`on Time X είναι n φορές ταχύτερος από τον Y Performance X Performance Y = Execution time Y Execution time X = n Παράδειγμα: χρόνος εκτέλεσης προγράμματος 10s στον A, 15s στον B Execu`on Time B / Execu`on Time A = 15s / 10s = 1.5 Ο A είναι 1.5 φορές ταχύτερος από τον B Speedup =Performance enhanced Performance original = Execution time original Execution time enhanced 21

O νόμος του Amdahl Συχνά αλλαγές στην αρχιτεκτονική βελτιώνουν ένα μέρος του χρόνου εκτέλεσης Speedup = T unaffected + T affected T unaffected + T affected /improvement factor Αν το ποσοστό του χρόνου που βελτιστοποιεί μία τεχνική είναι p, το μέγιστο speedup που μπορούμε να πάρουμε είναι 1/(1- p) 22

Παγίδα: ο Νόμος του Amdahl Βελτιώνοντας ένα τμήμα του υπολογιστή περιμένουμε η συνολική επίδοση να βελτιωθεί κατά το ίδιο μέγεθος Παράδειγμα: ο πολ/σμος ευθύνεται για 80s/100s Πόσο πρέπει να βελτιώσουμε το πολ/σμο για να έχουμε 5 μεγαλύτερη επίδοση συνολικά; Είναι αδύνατο! 23

Φόρτος εργασίας υπολογιστή Αν το σύστημα τρέχει μία εφαρμογή, τελείωσαμε απλά μετράμε το χρόνο απόκρισης ή το ρυθμό (π.χ. για ένα διακομιστή) Αλλά οι υπολογιστές είναι γενικού σκοπού: τρέχουν πολλές εφαρμογές και οι εφαρμογές είναι διαφορετικές Υπάρχει τρόπος να συγκρίνουμε υπολογιστές με αυτές τις συνθήκες; 24

Προγράμματα αναφοράς Φόρτος εργασίας (Workload): Σύνολο προγραμμάτων που τρέχουν Σύνολο πραγματικών εφαρμογών (για κάποια χρήση, π.χ. σχεδίαση κυκλωμάτων) ή προγραμμάτων που μοιάζουν με τις εφαρμογές Καθορίζει τα προγράμματα και τις σχετικές συχνότητες χρήσης Τα προγράμματα περιλαμβάνουν και τυπικά δεδομένα Μετροπρόγραμμα (Benchmark): επιλεγμένο πρόγραμμα για σύγκριση επίδοσης υπολογιστών Συνήθως «τυποποιημένα» ώστε να μπορούν να χρησιμοποιηθούν από πολλούς 25

Αξιολόγηση επίδοσης Αναλυτικά μοντέλα μαθηματικές συναρτήσεις με πολλές παραμέτρους συχνά στηρίζονται σε θεωρία ουράς (queuing theory) Mετρήσεις σε πραγματικά μηχανήματα πρέπει να υπάρχουν! δύσκολο να εξαχθεί λεπτομερής πληροφορία Προσομοίωση πρόγραμμα που διερμηνεύει μετροπρογράμματα στη γλώσσα μηχανής του, προς μελέτη, επεξεργαστή χρειάζεται πολύ χρόνο 26

Μετροπρογράμματα SPEC CPU Standard Performance Evalua`on Corp (SPEC) Αναπτύσει μετροπρογράμματα για CPU, I/O, Web, Θεωρούνται αντιπροσωπευτικά αληθινού φόρτου εργασίας SPEC CPU2006 Πραγματικός χρόνος (elapsed) εκτέλεσης συλλογής προγραμμάτων Ελάχιστο I/O, για να μην επηρεάζεται η επίδοση της CPU Κανονικοποιημένος ως προς μηχανή αναφοράς SPECRa`o Χωριστές κατηγορίες για προγράμματα κινητής υποδιαστολής (SPECFp) και ακεραίων (SPECInt) 27

CINT2006 for Opteron X4 2356 Name Description IC 10 9 CPI Tc (ns) Exec time Ref time SPECratio perl Interpreted string processing 2,118 0.75 0.40 637 9,777 15.3 bzip2 Block-sorting compression 2,389 0.85 0.40 817 9,650 11.8 gcc GNU C Compiler 1,050 1.72 0.47 24 8,050 11.1 mcf Combinatorial optimization 336 10.00 0.40 1,345 9,120 6.8 go Go game (AI) 1,658 1.09 0.40 721 10,490 14.6 hmmer Search gene sequence 2,783 0.80 0.40 890 9,330 10.5 sjeng Chess game (AI) 2,176 0.96 0.48 37 12,100 14.5 libquantum Quantum computer simulation 1,623 1.61 0.40 1,047 20,720 19.8 h264avc Video compression 3,102 0.80 0.40 993 22,130 22.3 omnetpp Discrete event simulation 587 2.94 0.40 690 6,250 9.1 astar Games/path finding 1,082 1.79 0.40 773 7,020 9.1 xalancbmk XML parsing 1,058 2.70 0.40 1,143 6,900 6.0 Geometric mean 11.7 High cache miss rates 28

Συνόψιση αποτελεσμάτων Χρειαζόμαστε κάποιο είδος μέσου όρου Αριθμητικός μ.ο. (arithme`c mean) Ο χρόνος εκτέλεσης μερικών προγραμμάτων διαφέρει πολύ (56 φορές gcc mcf στον Opteron) Σταθμισμένος αριθμητικός μ.ο. (weighted arithme`c mean) ποιός καθορίζει τους συντελεστές; 29

Συνόψιση αποτελεσμάτων (2) Η SPEC απαιτεί κανονικοποίηση ως προς μηχανή αναφοράς Συνόψιση όλων των μετροπρογραμμάτων χρησιμοποιώντας γεωμετρικό μέσο (geometric mean) G = n T n i = i=1 Ref i n n n T i i=1 n i=1 Ref i Για σύγκριση 2 μηχανών δεν χρειάζονται οι χρόνοι εκτέλεσης της μηχανής αναφοράς 30

Οι κανονικοποιημένες τιμές θέλουν προσοχή! Computer A Computer B Computer C Program 1 1 10 20 Program 2 1000 100 20 Arithm mean 500.5 55 20 Geom mean 31.622 31.622 20 Ποιό σύστημα είναι καλύτερο; 31

Κανονικοποίηση και μέσος όρος Computer A Computer B Computer C Program 1 1 10 20 Program 2 1 0.1 0.02 Arithm mean 1 5.05 10.01 Geom mean 1 1 0.632 Computer A Computer B Computer C Program 1 0.1 1 2 Program 2 10 1 0.2 Arithm mean 5.05 1 1.1 Geom mean 1 1 0.632 ως προς Α ως προς Β 32

Αριθμητικός vs Γεωμετρικός μέσος όρος Computer A Computer B Computer C Program 1 1 5 10 Program 2 1 5 2 Arithm mean 1 5 6 Geom mean 1 5 4.5 Ποιό σύστημα είναι καλύτερο; Αν οι τιμές διαφέρουν πολύ, ο γεωμετρικός μ.ο. μπορεί να δώσει παραπλανητικό αποτέλεσμα! Αν το 2 γίνει 3, το B βγαίνει καλύτερο Δε συμβαίνει στο SPEC γιατί οι χρόνοι εκτέλεσης είναι της ίδιας τάξης μεγέθους. 33

Προσομοιωτές Διαφορετικά επίπεδα λεπτομέρειας διαφορετική ταχύτητα αναλογικά κυκλώματα (τάσεις, ρεύματα,...) ψηφιακά κυκλωματα (λογικές τιμές) Register transfer level (RTL) γλώσσες περιγραφής υλικού επίπεδο κύκλου ρολογιού επίπεδο εντολής Trace vs execu`on- driven επίπεδο κύκλου: προσομοίωση μεταβολών μικροαρχιτεκτονικής ανά κύκλο ρολογιού trace: η σειρά εντολών είναι προκαθορισμένη execu`on- driven: διερμηνευτής εντολών 34

Προβλήματα προσομοιωτών Προσομοίωση I/O, κώδικα Λ.Σ. υπάρχουν full- system simulators που προσομοιώνουν όλο το υλικό (κάρτες δικτύου, κτλ) και τρέχουν Λ.Σ χωρίς αλλαγές μοιάζουν με εικονικές μηχανές (τύπου VMware) Χρόνος προσομοίωσης τάξεις μεγέθους πιο αργή εκτέλεση σε σχέση με πραγματική μηχανή υπάρχουν μέχρι και επιταχυντές σε υλικό, αλλά ο χρόνος ανάπτυξής τους προσεγγίζει το χρόνο πραγματικής σχεδίασης του προσομοιούμενου επεξεργαστή 35

Πρακτική χρήση προσομοιωτών 1 Fast- forwarding func`onal simula`on (fast) για ένα αριθμό εντολών ώστε να περάσει η αρχικοποίηση της εφαρμογής μόνο οι τιμές καταχωρητών, μνήμης υπολογίζονται detailed simula`on για ένα μεγάλο αριθμό εντολών προσομοίωση όλων των λεπτομερειών αρχιτεκτονικής Phase- detec`on εύρεση των τμημάτων εκτέλεσης που έχουν ενδιαφέρον με func`onal simula`on αποθήκευση της κατάστασης στην αρχή κάθε φάσης λεπτομερής προσομοίωση των εντολών της φάσης 36

Πρακτική χρήση προσομοιωτών 2 Κατά τη λεπτομερή προσομοίωση συχνά υπάρχουν 2 φάσεις 1. Warm- up Γίνεται λεπτομερής προσομοίωση, αλλά δεν γίνονται μετρήσεις επίδοσης (π.χ. αστοχίες κρυφής μνήμης) Ο σκοπός είναι να ενημερωθούν (warm- up) διάφοροι «πίνακες» της μικροαρχιτεκτονικής: caches, branch predictors, 2. Measurement Κρατούνται δεδομένα επίδοσης (τα τελικά αποτελέσματα) 37

38

Που ξοδεύει χρόνο το δικό σου πρόγραμμα; Ανάλυση χαρακτηριστικών (profiling) ενός προγράμματος (με gprof) δείχνει που ξοδεύεται ο χρόνος ανά συνάρτηση έτσι μπορεί να δεί κανείς πιο είναι το αργότερο κομμάτι και να το βελτιώσει Συνήθως βλέπουμε ένα 90/10 ή 80/20: το 10% του κώδικα ευθύνεται για το 90% του χρόνου Μετάφραση και σύνδεση με κατάλληλες οδηγίες gcc pg progr.c Εκτέλεση κανονικά (λίγο πιο αργά) δημιουργεί ένα αρχείο gmon.out Τρέχουμε gprof για να δούμε τα αποτελέσματα 39

Βελτιστοποίηση μετάφρασης Ο gcc και άλλοι μεταφραστές, έχει διάφορες επιλογές βελτιστοποίησης Συνήθως - Ο[1-3]. Οσο μεγαλύτερος αριθμός τόσο περισσότερο προσπαθεί να βελτιστοποιήσει τον κώδικα Μετά το debugging καλό είναι κανείς να κάνει μια τελική μετάφραση με μια από τις - Ο επιλογές 40

Αριθμός εντολών - υπολογισμός Οι σύγχρονοι επεξεργαστές έχουν μετρητές επίδοσης μετρούν διάφορα γεγονότα (π.χ. cache miss, ) Συνήθως χρειάζεται ειδική έκδοση του πυρήνα του Λ.Σ. και κάποια ειδική βιβλιοθήκη ψάξτε για perfmon2, Intel performance counter monitor, Δεν μπορούν να μετρήσουν οτιδήποτε θέλει ένας αρχιτέκτονας Εναλλακτικά τρέχουμε το πρόγραμμα σε έναν γρήγορο προσομοιωτή ή εργαλείο dynamic binary instrumenta`on PIN hyp://www.pintool.org 41

Παράδειγμα αριθμός εντολών Θα χρησιμοποιήσουμε το μετροπρόγραμμα gzip (SPEC Int 2000) και το pin ~efthym/pin/pin*/pin \ -t ~efthym/pin/pin*/source/tools/ ManualExamples/obj-ia32/inscount2.so \ -- ~efthym/icarus/spec/gzip \ ~efthym/icarus/spec/input.source 60 Αποτέλεσματα στο αρχείο: inscount.out περίπου 70.5 εκατομύρια εντολές IA- 32 42

Υπολογισμός CPI (χονδρικά) Χώρις το pin, τρέχει σε 19.95sec στο hp6000ws12 /usr/bin/time --verbose ~efthym/ /gzip \ ~efthym/ /input.source 60 Κύκλος ρολογιού 376ps 2.66GHz more /proc/cpuinfo 19.95*10^12/376 = 53 εκατομύρια κύκλοι CPI = cycles/instruc`on count = 0.7526 στο παράδειγμα Ο επεξεργαστής εκτελεί πάνω από μία εντολή (1.33) ανά κύκλο 43