Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf ·...

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

Transcript of Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf ·...

Page 1: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

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

Αρης  Ευθυμίου  

Page 2: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Το  σημερινό  μάθημα  

  Οργανωτικά/διαδικαστικά  του  μαθήματος  –  θέματα  που  θα  καλύψουμε  –  οργάνωση/βαθμολογία  

  Εισαγωγή  –  μέτρα  επίδοσης  υπολογιστών  –  χρόνος  εκτέλεσης  –  CPI,IPC  –  Νόμος  του  Amdhal  

–  Μετροπρογράμματα  

–  Προσομοίωση  

2

Page 3: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Θέματα  που  θα  καλύψουμε  

  Σύντομη  επισκόπιση  των  βασικών  –  διοχέτευση,  κρυφές  μνήμες  

  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

Page 4: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

 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”,  4th/5th  edi`on,  MKP  

Αρθρα:  

  για  παρουσίαση,  prooject.  θα  δοθούν  αργότερα  

4

Page 5: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Οργάνωση  μαθήματος  

  Διδάσκοντας:  Αρης  Ευθυμίου  (Β.29,  e�hym  AT  cs…)  

  Διαλέξεις  –  Αιθ.  B2,  Πέμπτη  10.00  -­‐  13.00    –  Ως    μεταπτυχιακοί    φοιτητές,    δεν    επιτρέπεται    καμία    απουσία,    

χωρίς    συνεννόηση    με      το    διδάσκοντα    ΑΠΟ    ΠΡΙΝ  

  Μελέτη    papers,    προετοιμασία    παρουσίασης    και    συζήτηση    στην    τάξη  –  Μετράει    η    συμμετοχή  

  Project  –  Υλοποίηση  και  μέτρηση  αρχιτεκτονικών  τεχνικών  σε/με  

προσομοιωτή  

–  Θα    πούμε    παραπάνω    πράγματα    σε    λίγο    καιρό  

5

Page 6: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Οργάνωση  μαθήματος  

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

  Βαθμολογία  –  Πάλι,    θα    εξαρτηθεί    από    τον    αριθμό    των    φοιτητών  

  Σε    2    εβδομάδες    θα    καθοριστούν    τα    παραπάνω  

6

Page 7: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Μοντέλο  von  Neumann  

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

7

Page 8: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Βελτίωση  επίδοσης  

  nn  

8

RISC

Move to multi-processor

Page 9: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

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

9

Page 10: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Επίδοση  υπολογιστή    

  Χρόνος  απόκρισης  ή  λανθάνον  χρόνος  (response  `me,  latency)  –  Ο  χρόνος  που  χρειάζεται  για  να  γίνει  μια  «δουλειά»  

  Ρυθμός  εκτέλεσης  (Throughput,  Bandwidth)  –  Δουλειές  ανά  μονάδα  χρόνου  

  e.g.,  tasks/transac`ons/…  per  hour    Αλλα  μέτρα  επίδοσης  

–  Κατανάλωση  ενέργειας  –  Αξιοπιστία  

10

Page 11: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Η  ferrari  και  το  αστικό  

  Ferrari:  2  επιβάτες,  100km/h  (στην  πόλη)  

  Αστικό:  70  επιβάτες,  10km/h  (με  τις  στάσεις)  

  Σπίτι/στάση-­‐  Πανεπιστήμιο  10km  

  Με  ποιό  μέσο  ένας  επιβάτης  θα  πάει  πιο  γρήγορα  στο  Πανεπιστήμιο?  

  Ποιό  μέσο  μεταφέρει  περισσότερους  επιβάτες  ανα  ώρα?  

  Επικεντρώνουμε  στο  χρόνο  απόκρισης  

11

Page 12: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Μέτρηση  χρόνου  εκτέλεσης  

  Πραγματικός  χρόνος  που  πέρασε  (Elapsed  `me)  –  Πλήρης  χρόνος  απόκρισης,  περιλαμβάνει  

  επεξεργασία,  είσοδο-­‐έξοδο,  χρόνο  Λ.Σ.,  άλλες  διεργασίες,  ...  –  Καθορίζει  την  επίδοση  του  συστήματος  

  Χρόνος  CPU  –  Χρόνος  επεξεργασίας  μιας  δουλειάς  

  Αγνοεί  χρόνο  εισόδου-­‐εξόδου,  άλλες  διεργασίες  –  Αποτελείται  από  το  χρόνο  CPU    χρήστη  και  συστήματος  (user,  

system  CPU  `me)  

12

Page 13: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

CPU  Time  

  Η  επίδοση  βελτιώνεται:  –  μειώνοντας  τον  αριθμό  κύκλων  ρολογιού  –  αυξάνοντας  το  ρυθμό  (συχνότητα)  ρολογιού  

  Δυστυχώς  συχνά  ο  σχεδιαστής  πρέπει  να  «ζυγίσει»  το  ρυθμό  ρολογιού  με  τον  αριθμό  κύκλων  

13

Page 14: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

CPU  Time,  Παράδειγμα    Computer  A:  ρολόι  2GHz,  10s  CPU  `me  

  Σχεδιάζουμε  Computer  B  –  Προσπαθούμε  για  6s  CPU  `me  

–  Μπορούμε  να  αυξήσουμε  το  ρυθμό  ρολογιού,  αλλά  αυτό  προκαλεί  αύξηση  κύκλων  ρολογιού  ×1.2  

  Πόση  πρέπει  να  είναι  η  συχνότητα  ρολογιού  του  Computer  B;  

14

Page 15: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Αριθμός  εντολών,  CPI  

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

  Μέσος  όρος  κύκλων  ανά  εντολή  (CPI)  –  Καθορίζεται  από  το  υλικό  

15

Page 16: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Instruc`ons  per  Cycle  (IPC)  

Το  αντίστροφο  του  CPI  

  Οι  συγχρονοι  υπολογιστές  που  εκτελούν  πολλές  εντολές  ταυτόχρονα  

  Εκφράζει  ρυθμό  εκτέλεσης  (throughput)      Ψυχολογικά  καλύτερο  να  προσπαθεί  κανείς  να  αυξήσει  

το  CPI  αντί  να  μειώσει  το  IPC  

16

Page 17: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Συνιστώσες  του  CPI  

  Σε  ένα  ιδανικό  επεξεργαστή  που  εκτελεί  1  εντολή  ανά  κύκλο,  CPI  =  1  

  Οποιοδήποτε  «πρόβλημα»  αυξάνει  το  CPI  

17

CPI =1+CPIcache +CPIbranches +CPIstalls + ...

  CPIx  είναι  ο  αριθμός  των  επιπλέον  κύκλων  που  προκαλεί  το  στοιχείο  x  

  Αντίστοιχα:  

IPC =1

1+ CPIxx∑

Page 18: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Παράγοντες  επίδοσης  

  Αλγόριθμος  –  Καθορίζει  αριθμό  πράξεων  

  Γλώσσα,  μεταφραστής,  αρχιτεκτονική  –  Καθορίζουν  αριθμό  εντολών  μηχανής  ανά  πράξη  (γλώσσας)  

  Επεξεργαστής  και  σύστημα  μνήμης  –  Καθορίζουν  ταχύτητα  εκτέλεσης  εντολών  

  Σύστημα  εισόδου-­‐εξόδου  (και  Λ.Σ.)  –  Καθορίζει  ταχύτητα  I/O  

18

CPU Time = Instruction Count ×CPI×Clock Cycle Time

Page 19: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Λεπτομέρειες  CPI  Αν  οι  διάφορες  κατηγορίες  εντολών  έχουν  διαφορετικό  αριθμό  

κύκλων  εκτέλεσης:  

Το  μέσο  CPI  πρέπει  να  χρησιμοποιεί  τη  σχετική  συχνότητα  εμφάνισης  εντολών  

Σχετική  συχνότητα  

19

Page 20: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

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

Page 21: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Σχετική  επίδοση    Ορίζουμε  Performance  =  1/Execu`on  Time  

  “X  είναι  n  φορές  ταχύτερος  από  τον  Y”  

PerformanceX PerformanceY

= Execution timeY Execution timeX = n  Παράδειγμα:  χρόνος  εκτέλεσης  προγράμματος  

  10s  στον  A,  15s  στον  B    Execu`on  TimeB  /  Execu`on  TimeA  =  15s  /  10s  =  1.5  

  Ο  A  είναι  1.5  φορές  ταχύτερος  από  τον  B  

21

Speedup =Performanceenhanced Performanceoriginal

= Execution timeoriginal Execution timeenhanced

Page 22: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

O  νόμος  του  Amdahl  

  Συχνά  αλλαγές  στην  αρχιτεκτονική  βελτιώνουν  ένα  μέρος  του  χρόνου  εκτέλεσης  

22

Speedup =Tunaffected + Taffected

Tunaffected + Taffected/improvement factor

  Αν  το  ποσοστό  του  χρόνου  που  βελτιστοποιεί  μία  τεχνική  είναι  p,  το  μέγιστο  speedup  που  μπορούμε  να  πάρουμε  είναι  1/(1-­‐p)  

Page 23: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Παγίδα:  ο  Νόμος  του  Amdahl    Βελτιώνοντας  ένα  τμήμα  του  υπολογιστή  περιμένουμε  η  συνολική  επίδοση  να  βελτιωθεί  κατά  το  ίδιο  μέγεθος  

  Είναι  αδύνατο!  

  Παράδειγμα:  ο  πολ/σμος  ευθύνεται  για  80s/100s    Πόσο  πρέπει  να  βελτιώσουμε  το  πολ/σμο  για  να  έχουμε  5×  μεγαλύτερη  επίδοση  συνολικά;  

23

Page 24: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Φόρτος  εργασίας  υπολογιστή  

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

  Αλλά  οι  υπολογιστές  είναι  γενικού  σκοπού:  τρέχουν  πολλές  εφαρμογές  –  και  οι  εφαρμογές  είναι  διαφορετικές  

  Υπάρχει  τρόπος  να  συγκρίνουμε  υπολογιστές  με  αυτές  τις  συνθήκες;  

24

Page 25: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Προγράμματα  αναφοράς  

  Φόρτος  εργασίας  (Workload):  Σύνολο  προγραμμάτων  που  τρέχουν    –  Σύνολο  πραγματικών  εφαρμογών  (για  κάποια  χρήση,  π.χ.  σχεδίαση  

κυκλωμάτων)  ή  προγραμμάτων  που  μοιάζουν  με  τις  εφαρμογές  

–  Καθορίζει  τα  προγράμματα  και  τις  σχετικές  συχνότητες  χρήσης  –  Τα  προγράμματα  περιλαμβάνουν  και  τυπικά  δεδομένα  

  Μετροπρόγραμμα  (Benchmark):  επιλεγμένο  πρόγραμμα  για  σύγκριση  επίδοσης  υπολογιστών  –  Συνήθως  «τυποποιημένα»  ώστε  να  μπορούν  να  χρησιμοποιηθούν  από  

πολλούς  

25

Page 26: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Αξιολόγηση  επίδοσης  

  Αναλυτικά  μοντέλα  –  μαθηματικές  συναρτήσεις  με  πολλές  παραμέτρους  –  συχνά  στηρίζονται  σε  θεωρία  ουράς  (queuing  theory)  

  Mετρήσεις  σε  πραγματικά  μηχανήματα  –  πρέπει  να  υπάρχουν!  –  δύσκολο  να  εξαχθεί  λεπτομερής  πληροφορία  

  Προσομοίωση  –  πρόγραμμα  που  διερμηνεύει  μετροπρογράμματα  στη  γλώσσα  

μηχανής  του,  προς  μελέτη,  επεξεργαστή  

–  χρειάζεται  πολύ  χρόνο  

26

Page 27: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Μετροπρογράμματα  SPEC  CPU    Standard  Performance  Evalua`on  Corp  (SPEC)  

–  Αναπτύσει  μετροπρογράμματα  για  CPU,  I/O,  Web,  …    Θεωρούνται  αντιπροσωπευτικά  αληθινού  φόρτου  εργασίας  

  SPEC  CPU2006  –  Πραγματικός  χρόνος  (elapsed)  εκτέλεσης  συλλογής  προγραμμάτων    Ελάχιστο  I/O,  για  να  μην  επηρεάζεται  η  επίδοση  της  CPU  

–  Κανονικοποιημένος  ως  προς  μηχανή  αναφοράς    SPECRa`o  

–  Χωριστές  κατηγορίες  για  προγράμματα  κινητής  υποδιαστολής  (SPECFp)  και  ακεραίων  (SPECInt)  

27

Page 28: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

CINT2006  for  Opteron  X4  2356  

Name Description IC×109 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

Page 29: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Συνόψιση  αποτελεσμάτων  

29

Χρειαζόμαστε  κάποιο  είδος  μέσου  όρου  

  Αριθμητικός  μ.ο.  (arithme`c  mean)    Ο  χρόνος  εκτέλεσης  μερικών  προγραμμάτων  διαφέρει  

πολύ  (56  φορές  gcc    mcf  στον  Opteron)  

  Σταθμισμένος  αριθμητικός  μ.ο.  (weighted  arithme`c  mean)  

  ποιός  καθορίζει  τους  συντελεστές;  

Page 30: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Συνόψιση  αποτελεσμάτων  (2)  

  Η  SPEC  απαιτεί  κανονικοποίηση  ως  προς  μηχανή  αναφοράς  

  Συνόψιση  όλων  των  μετροπρογραμμάτων  χρησιμοποιώντας  γεωμετρικό  μέσο  (geometric  mean)  

G =Ti

Refii=1

n

∏n =

Tii=1

n

∏n

Refii=1

n

∏n

30

  Για  σύγκριση  2  μηχανών  δεν  χρειάζονται  οι  χρόνοι  εκτέλεσης  της  μηχανής  αναφοράς  

Page 31: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Οι  κανονικοποιημένες  τιμές  θέλουν  προσοχή!  

Ποιό  σύστημα  είναι  καλύτερο;  

31

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  

Page 32: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Κανονικοποίηση  και  μέσος  όρος  

32

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  

ως  πρ

ος  Β  

Page 33: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Αριθμητικός  vs  Γεωμετρικός  μέσος  όρος  

Ποιό  σύστημα  είναι  καλύτερο;  

33

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  γιατί  οι  χρόνοι  εκτέλεσης  είναι  της  

ίδιας  τάξης  μεγέθους.  

Page 34: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Προσομοιωτές  

  Διαφορετικά  επίπεδα  λεπτομέρειας  –  διαφορετική  ταχύτητα  –  αναλογικά  κυκλώματα  (τάσεις,  ρεύματα,  ...)  –  ψηφιακά  κυκλωματα  (λογικές  τιμές)  –  Register  transfer  level  (RTL)  –  γλώσσες  περιγραφής  υλικού  –  επίπεδο  κύκλου  ρολογιού  –  επίπεδο  εντολής  

  Trace  vs  execu`on-­‐driven    –  επίπεδο  κύκλου:  προσομοίωση  μεταβολών  μικροαρχιτεκτονικής  

ανά  κύκλο  ρολογιού  

–  trace:  η  σειρά  εντολών  είναι  προκαθορισμένη  –  execu`on-­‐driven:  διερμηνευτής  εντολών  

34

Page 35: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Προβλήματα  προσομοιωτών  

  Προσομοίωση  I/O,  κώδικα  Λ.Σ.  –  υπάρχουν  full-­‐system  simulators  που  προσομοιώνουν  όλο  το  

υλικό  (κάρτες  δικτύου,  κτλ)  και  τρέχουν  Λ.Σ  χωρίς  αλλαγές  

–  μοιάζουν  με  εικονικές  μηχανές  (τύπου  VMware)  

  Χρόνος  προσομοίωσης  –  τάξεις  μεγέθους  πιο  αργή  εκτέλεση  σε  σχέση  με  πραγματική  

μηχανή  

–  υπάρχουν  μέχρι  και  επιταχυντές  σε  υλικό,  αλλά  ο  χρόνος  ανάπτυξής  τους  προσεγγίζει  το  χρόνο  πραγματικής  σχεδίασης  του  προσομοιούμενου  επεξεργαστή  

35

Page 36: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Πρακτική  χρήση  προσομοιωτών  1  

  Fast-­‐forwarding  –  func`onal  simula`on  (fast)  –  για  ένα  αριθμό  εντολών  ώστε  να  

περάσει  η  αρχικοποίηση  της  εφαρμογής    μόνο  οι  τιμές  καταχωρητών,  μνήμης  υπολογίζονται  

–  detailed  simula`on  για  ένα  μεγάλο  αριθμό  εντολών    προσομοίωση  όλων  των  λεπτομερειών  αρχιτεκτονικής  

  Phase-­‐detec`on  –  εύρεση  των  τμημάτων  εκτέλεσης  που  έχουν  ενδιαφέρον  με  

func`onal  simula`on  

–  αποθήκευση  της  κατάστασης  στην  αρχή  κάθε  φάσης  –  λεπτομερής  προσομοίωση  των  εντολών  της  φάσης  

36

Page 37: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Πρακτική  χρήση  προσομοιωτών  2  

Κατά  τη  λεπτομερή  προσομοίωση  συχνά  υπάρχουν  2  φάσεις  

1.  Warm-­‐up  –  Γίνεται  λεπτομερής  προσομοίωση,  αλλά  δεν  γίνονται  μετρήσεις  

επίδοσης  (π.χ.  αστοχίες  κρυφής  μνήμης)  

–  Ο  σκοπός  είναι  να  ενημερωθούν  (warm-­‐up)  διάφοροι  «πίνακες»  της  μικροαρχιτεκτονικής:  caches,  branch  predictors,  …  

2.  Measurement  –  Κρατούνται  δεδομένα  επίδοσης  (τα  τελικά  αποτελέσματα)  

37

Page 38: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

38

Page 39: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Που  ξοδεύει  χρόνο  το  δικό  σου  πρόγραμμα;  

  Ανάλυση  χαρακτηριστικών  (profiling)  ενός  προγράμματος  (με  gprof)  δείχνει  που  ξοδεύεται  ο  χρόνος  ανά  συνάρτηση  –  έτσι  μπορεί  να  δεί  κανείς  πιο  είναι  το  αργότερο  κομμάτι  και  να  το  

βελτιώσει  

  Συνήθως  βλέπουμε  ένα  90/10  ή  80/20:  –  το  10%  του  κώδικα  ευθύνεται  για  το  90%  του  χρόνου  

  Μετάφραση  και  σύνδεση  με  κατάλληλες  οδηγίες  –  gcc  –pg  progr.c  

  Εκτέλεση  κανονικά  (λίγο  πιο  αργά)  –  δημιουργεί  ένα  αρχείο  gmon.out  

  Τρέχουμε    gprof  για  να  δούμε  τα  αποτελέσματα  39

Page 40: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Βελτιστοποίηση  μετάφρασης  

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

προσπαθεί  να  βελτιστοποιήσει  τον  κώδικα  

  Μετά  το  debugging  καλό  είναι  κανείς  να  κάνει  μια  τελική  μετάφραση  με  μια  από  τις  -­‐Ο  επιλογές  

40

Page 41: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Αριθμός  εντολών  -­‐  υπολογισμός  

  Οι  σύγχρονοι  επεξεργαστές  έχουν  μετρητές  επίδοσης  –  μετρούν  διάφορα  γεγονότα  (π.χ.  cache  miss,  …)  

–  Συνήθως  χρειάζεται  ειδική  έκδοση  του  πυρήνα  του  Λ.Σ.  και  κάποια  ειδική  βιβλιοθήκη      ψάξτε  για  perfmon2,  Intel  performance  counter  monitor,  …  

–  Δεν  μπορούν  να  μετρήσουν  οτιδήποτε  θέλει  ένας  αρχιτέκτονας    Εναλλακτικά  τρέχουμε  το  πρόγραμμα  σε  έναν  γρήγορο  

προσομοιωτή  ή  εργαλείο  dynamic  binary  instrumenta`on  –  PIN  hyp://www.pintool.org      

41

Page 42: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Παράδειγμα  αριθμός  εντολών  

  Θα  χρησιμοποιήσουμε  το  μετροπρόγραμμα  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

Page 43: Υ0 1%Αρχιτεκτονική%Υπολογιστώνefthym/Site/gradCAR_files/intro.pdf · CINT2006!for!Opteron!X4!2356! Name Description IC×109 CPI Tc (ns) Exec time Ref time

Υπολογισμός  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