תרגול מס' 1: פרמטרים של הערכת ביצועים חוק אמדל

Slides:



Advertisements
Similar presentations
Computer Organization Lab 1 Soufiane berouel. Formulas to Remember CPU Time = CPU Clock Cycles x Clock Cycle Time CPU Clock Cycles = Instruction Count.
Advertisements

A8 MIPS vs A8 Clock Sweep Simulation May A8 MIPS vs A8 clk sweep (L2 hit ratio of ~ 85%) L1 inst miss ratio = L1 load miss ratio = L1.
Performance of Cache Memory
Performance What differences do we see in performance? Almost all computers operate correctly (within reason) Most computers implement useful operations.
Comp Sci Floating Point Arithmetic 1 Ch. 10 Floating Point Unit.
Performance Evaluation of Architectures Vittorio Zaccaria.
100 Performance ENGR 3410 – Computer Architecture Mark L. Chang Fall 2006.
Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University Performance See: P&H 1.4.
CIS429.S00: Lec3 - 1 CPU Time Analysis Terminology IC = instruction count = number of instructions in the program CPI = cycles per instruction (varies.
ENGS 116 Lecture 21 Performance and Quantitative Principles Vincent H. Berk September 26 th, 2008 Reading for today: Chapter , Amdahl article.
CSCE 212 Quiz 4 – 2/16/11 *Assume computes take 1 clock cycle, loads and stores take 10 cycles and branches take 4 cycles and that they are running on.
CIS629 Fall Lecture Performance Overview Execution time is the best measure of performance: simple, intuitive, straightforward. Two important.
Performance D. A. Patterson and J. L. Hennessey, Computer Organization & Design: The Hardware Software Interface, Morgan Kauffman, second edition 1998.
Computer Performance Evaluation: Cycles Per Instruction (CPI)
9/16/2004Comp 120 Fall September 16 Assignment 4 due date pushed back to 23 rd, better start anywayAssignment 4 due date pushed back to 23 rd, better.
Multicycle Review Performance Examples. Single Cycle MIPS Implementation All instructions take the same amount of time Signals propagate along longest.
Chapter 4 Processor Technology and Architecture. Chapter goals Describe CPU instruction and execution cycles Explain how primitive CPU instructions are.
Computer Architecture Lecture 2 Instruction Set Principles.
1 Lecture 10: FP, Performance Metrics Today’s topics:  IEEE 754 representations  FP arithmetic  Evaluating a system Reminder: assignment 4 due in a.
CIS429/529 Winter 07 - Performance - 1 Performance Overview Execution time is the best measure of performance: simple, intuitive, straightforward. Two.
1 Measuring Performance Chris Clack B261 Systems Architecture.
CPU Performance Assessment As-Bahiya Abu-Samra *Moore’s Law *Clock Speed *Instruction Execution Rate - MIPS - MFLOPS *SPEC Speed Metric *Amdahl’s.
Lecture 2: Computer Performance
Copyright 1995 by Coherence LTD., all rights reserved (Revised: Oct 97 by Rafi Lohev, Oct 99 by Yair Wiseman, Sep 04 Oren Kapah) IBM י ב מ 7-1 Measuring.
Operation Frequency No. of Clock cycles ALU ops % 1 Loads 25% 2
B0111 Performance Anxiety ENGR xD52 Eric VanWyk Fall 2012.
PerformanceCS510 Computer ArchitecturesLecture Lecture 3 Benchmarks and Performance Metrics Lecture 3 Benchmarks and Performance Metrics.
1 Acknowledgements Class notes based upon Patterson & Hennessy: Book & Lecture Notes Patterson’s 1997 course notes (U.C. Berkeley CS 152, 1997) Tom Fountain.
Performance.
CDA 3101 Discussion Section 09 CPU Performance. Question 1 Suppose you wish to run a program P with 7.5 * 10 9 instructions on a 5GHz machine with a CPI.
Computer Organization and Architecture Tutorial 1 Kenneth Lee.
1 CS465 Performance Revisited (Chapter 1) Be able to compare performance of simple system configurations and understand the performance implications of.
CEN 316 Computer Organization and Design Assessing and Understanding Performance Mansour AL Zuair.
Morgan Kaufmann Publishers
CPU Performance using Different Parameters CS 250: Andrei D. Coronel, MS,CEH,PhD Cand.
Performance Enhancement. Performance Enhancement Calculations: Amdahl's Law The performance enhancement possible due to a given design improvement is.
CS /02 Semester II Help Session IIA Performance Measures Colin Tan S
Performance Performance
TEST 1 – Tuesday March 3 Lectures 1 - 8, Ch 1,2 HW Due Feb 24 –1.4.1 p.60 –1.4.4 p.60 –1.4.6 p.60 –1.5.2 p –1.5.4 p.61 –1.5.5 p.61.
Performance – Last Lecture Bottom line performance measure is time Performance A = 1/Execution Time A Comparing Performance N = Performance A / Performance.
Computer Engineering Rabie A. Ramadan Lecture 2. Table of Contents 2 Architecture Development and Styles Performance Measures Amdahl’s Law.
Performance Computer Organization II 1 Computer Science Dept Va Tech January 2009 © McQuain & Ribbens Defining Performance Which airplane has.
Computer Architecture CSE 3322 Web Site crystal.uta.edu/~jpatters/cse3322 Send to Pramod Kumar, with the names and s.
Performance COE 301 / ICS 233 Computer Organization Prof. Muhamed Mudawar College of Computer Sciences and Engineering King Fahd University of Petroleum.
Measuring Performance Based on slides by Henri Casanova.
Computer Organization Exam Review CS345 David Monismith.
Lecturer: Roni Kupershtok Prepared by Lihu Rappoport
CpE 442 Introduction to Computer Architecture The Role of Performance
Computer Organization
ECE 4100/6100 Advanced Computer Architecture Lecture 1 Performance
Execution time Execution Time (processor-related) = IC x CPI x T
CS 286 Computer Architecture & Organization
Exercise – Given information in the following table:
Defining Performance Which airplane has the best performance?
Lecture: Pipelining Basics
CS203 – Advanced Computer Architecture
Assembly Programming using MIPS R3000 CPU
Lecture: Pipelining Basics
Performance COE 301 Computer Organization
Performance of computer systems
Solutions Chapter 1.
Performance of computer systems
Computer Architecture
Arrays versus Pointers
August 30, 2000 Prof. John Kubiatowicz
Performance of computer systems
Assembly Programming using MIPS R3000 CPU
Execution time Execution Time (processor-related) = IC x CPI x T
Lecture: Pipelining Basics
Single Cycle MIPS Implementation
Presentation transcript:

תרגול מס' 1: פרמטרים של הערכת ביצועים חוק אמדל מבנה מחשבים ספרתיים 234267 תרגול מס' 1: פרמטרים של הערכת ביצועים חוק אמדל Last update: Nov 6th 2011 by Gil Einziger

ארכיטקטורה מול מיקרו ארכיטקטורה שני דברים שמשלימים זה את זה ארכיטקטורת המעבד מגדירה את הממשק בין המשתמש (קומפיילר או מתכנת) לבין המעבד הממשק:סט הפקודות (סוג פקודות, מספר אופרנדים, שיטות מיעון וכדומה). למעבדים שונים תתכן ארכיטקטורה שונה מיקרו ארכיטקטורה - המבנה הפנימי של המעבד. הארכיטקטורה גלויה לחלוטין למשתמש. מיקרו הארכיטקטורה לא ממש משנה למשתמש.

זמן CPU ומדידת ביצועים מושגים והגדרות CPU – יחידת העיבוד המרכזית של המחשב. זהו רכיב סינכרוני (עובד בהתאם לאות של שעון פנימי). ה- ALU הינו החלק ב- CPU שמבצע את החישובים האריתמטיים קצב השעון (Clock Rate - CR): מספר הפעימות שמבצע השעון הפנימי של המחשב בשנייה אחת. נמדד בהרצים (Hz)(מגה הרץ = מליון פעימות לשנייה) מחזור השעון (Clock Cycle –CC ): משך הזמן בין שתי פעימות עוקבות שמבצע השעון הפנימי של המחשב. נמדד בשניות (1nanosec = 10-9sec).

(IC) Instruction Count מחזורים לפקודה (CPI = Cycles Per Instruction) מספר פקודות המכונה (לא שורות!) בתכנית מחזורים לפקודה (CPI = Cycles Per Instruction) מספר מחזורי השעון הדרושים בממוצע לביצוע כל פקודה בתכנית. שימו לב – זהו פרמטר שתלוי בתוכנית. מחזורים לפקודהi (CPIi = Cycles Per Instruction i) מספר מחזורי השעון הדרושים לביצוע פקודה אחת מסוג i זמן ריצה או זמן CPU (execution time) הזמן שלוקח למעבד לבצע תכנית. נמדד בשניות. ניתן לחישוב ע"י להדגיש IC אינו מספר השורות.

חישוב CPI לתכנית מבחן (benchmark) Ii – מספר הפעמים שהפקודה i בוצעה בתכנית. IC – מספר ההוראות הכולל שבוצע בתכנית. שאלה: האם CPI נמוך יותר גורר בהכרח מחשב מהיר יותר? תשובה: לא, במחשב מסוים (לדוגמה MIPS single cycle) CPI נמוך אבל זמן מחזור ארוך יותר לכל פקודה. המטרה היא לבצע מינימיזציה של זמן ה- CPU עבור התוכנית כולה. למעשה במידה וניתן להשוות בין שני מעבדים באמצעות זמן ריצה של תוכנית זהו המדד הטוב ביותר ובו נשתמש, אולם לא תמיד דבר זה ניתן לביצוע (עקב ארכיטקטורה שונה, או רצון לקבל תוצאות אובייקטיביות) ולכן הומצאו מדדי הביצועים הסינטטיים.

מדדים "אובייקטיביים" MIPS = Millions of Instructions Per Second כמה מיליוני פעולות מבצע המעבד בשנייה בעיה: מדד MIPS תלוי בסט הפקודות של המכונה ובהרכב תכנית הבדיקה. אם במעבד מסוים יש פקודות אסמבלר מורכבות יותר, שלוקח הרבה זמן לבצע אותן, אבל עקב כך צריך להשתמש בפחות פקודות מאשר במעבדים אחרים כדי לבצע את אותם דברים, אז מדד ה- MIPS שיתקבל עבור אותו מחשב יהיה נמוך, ולא בהכרח בצדק.

MFLOPS – Millions of Floating Point Operations Per Second הכוונה היא לכמה פעולות floating point (פעולות אריתמטיות על משתנים מסוג float או double) בשפה עילית (כמו C) ולא בשפת אסמבלר. בעיה 1: MFLOPS מחושב ביחס לזמן הריצה של תכנית בשפה עילית ולכן תלוי בקומפיילר. קומפיילר טוב יבצע אופטימיזציה ולכן זמן הריצה יהיה קצר יותר. בעיה 2: פעולות שונות אורכות משכי זמן שונים (למשל: חיבור שני מספרי FP הוא מהיר לעומת חילוק). MFLOPS תלוי בסוג הפעולות המופיע בתוכנית.

פתרון: נגדיר מדד חדש: MFLOPS משוקלל - נוסיף שקלול של פעולות FP שונות עפ"י זמן הביצוע שלהן. כלומר, סופרים את מספר ההופעות בתכנית של סוגי הפעולות השונות, ונותנים להם משקל שונה בציון הסופי. לדוגמא: Add, sub cmp, mult 1 Div, sqrt 4 Exp, sin 8

בעיה משותפת לשני המדדים הקודמים: שניהם תלויים בתוכנית שבחרנו כ- benchmark. צריך תמיד להשקיע מחשבה בשאלה איזו תכנית נבחר. מדדים אמתיים – תכניות אמתיות (מעבד תמלילם, גיליון אלקטרוני, תכנת נווט) מדדים סינטטיים – אוסף פקודות שאמור לייצג תכנית ממוצעת (יש דבר כזה?). מדדים משולבים – אוסף תוכיות אמתיות וסינטטיות, משוקללות עפ"י מפתח כלשהו. שני המדדים שראינו הם מלאכותיים ובעייתיים, ולכן נשתדל להשוות בין מעבדים בתנאים כמה שיותר דומים: אותה תכנית בדיקה, אותו קומפיילר וכדומה. להגברת הדיוק, רצוי להריץ כמה תכניות ולשקלל את התוצאות. המדד הכי טוב יהיה השוואת זמני הביצוע של אותן תכניות ע"ג כל אחד מהמעבדים.

דירוג חווית המשתמש של ווינדווס: ובעולם האמתי... דירוג חווית המשתמש של ווינדווס:

דוגמא א' נתון מחשב בו כל הפקודות מתבצעות בין רגיסטרים, והגישה לזיכרון היא רק דרך load\store. שכיחות הפקודות בתכנית המבחן: בבדיקה נמצא שרבע מפקודות ה- ALU משתמשות באחד האופרנדים בנתון שהובא בפקודת LOAD קודמת ומשמש רק לפקודת ALU זאת שאלה: מוצע להוסיף לסט הפקודות פקודת ALU שמבצעת ישירות פעולה בין רגיסטר לבין תא בזיכרון (במקום LOAD ואחריו פקודת ALU בין שני רגיסטרים). פקודה זאת תבוצע עם CPI=2 אבל תגדיל את ה CPI של פקודת BRANCH ל- 3. האם השיפור כדאי? CPI שכיחות הפקודה 1 40% ALU 2 20% LOAD 10% STORE 30% BRANCH להסביר את ה- tradeoff: במקום שתי פקודות שלוקחות 3 מחזורי שעון נקבל פקודה אחת של שני מחזורי שעון. מצד שני פקודות שקודם לקחו 2 מחזורי שעון עכשיו לוקחות 3. ניתן לחזות זאת כי יש יותר פקודות branch מפקודות ALU שבאות מיד אחרי MEM

פתרון לפני השיפור: אחרי השיפור: CPI שכיחות הפקודה 1 40% ALU 2 20% LOAD 10% STORE 30% BRANCH פתרון לפני השיפור: CPI(old) = 0.4*1 + 0.2*2 + 0.1*2 + 0.3*2 = 1.6 CPU_Time(old) = IC(old) * CPI(old) * CC(old) = 1.6 * IC(old) * CC(old) אחרי השיפור:

דרך פתרון שונה, נוחה יותר, לחישוב זמן הריצה לאחר השינוי: נאמר שבתכנית המקורית יש 100 פקודות, ואז ע"פ האחוזים הנתונים, אפשר לדעת מהו מספר הפקודות מכל סוג: CPIi אחרי השינוי מספר פקודות אחרי השינוי CPIi לפני השינוי מספר פקודות לפני השינוי הפקודה 1 30 40 ALU 2 10 20 LOAD STORE 3 BRANCH MEM-ALU מתוך 40 פקודות ALU שהיו – עכשיו רק ¾ נשארו פקודות ALU, כלומר 100*0.4*¾=30 שאר ¼ פקודות ALU הפכו לפקודותMEM-ALU : 100*0.4*¼=10 כל פקודת MEM-ALU מחליפה גם פקודת LOAD, ולכן נותרו רק 20-10=10 פקודות LOAD

שימו לב! מספר הפקודות הכולל ירד עקב השינוי: CPIi אחרי השינוי מספר פקודות אחרי השינוי CPIi לפני השינוי מספר פקודות לפני השינוי הפקודה 1 30 40 ALU 2 10 20 LOAD STORE 3 BRANCH MEM-ALU שימו לב! מספר הפקודות הכולל ירד עקב השינוי: IC = 30 + 10 + 10 + 30 + 10 = 90. צריך להשוות מחזורי שעון לפני ואחרי השינוי: Cycles_new = 30*1 + 10*2 + 10*2 + 30*3 + 10*2 = 180 Cycles_old = 40*1 + 20*2 + 10*2 + 30*2 = 160 מכיוון שקצב השעון לא השתנה מספיק להשוות את מספר מחזורי השעון לפני ואחרי השינוי. אחרת היינו צריכים לחשב CPUtime, כלומר להכפיל ב- CC

דוגמא ב' נתונים שני מחשבים בעלי תדר שעון של 100MHz, המריצים אותה תכנית מבחן (benchmark) בעלת פילוג הפעולות (בשפה עילית) הבא: שכיחות פעולה 10% כפל FP 15% חיבור FP 5% חילוק FP 70% פעולות INT המחשב הראשון, מחשב MFP בעל חומרה ייעודית לחישוב פעולות FP מבצע כל פעולה במספר מחזורי שעון שונה. המחשב השני, מחשב NMFP יכול לבצע רק פעולות בשלמים, מריץ את התכנית באמולציה – המהדר (הקומפיילר) מתרגם כל פעולת FP למספר פעולות INT שאורכות כ"א 2 מחזורי שעון. מספר פעולות INT שמבוצעות לכל פקודת FP במחשב NMFP פעולה 30 כפל FP 20 חיבור FP 50 חילוק FP מספר מחזורי שעון במחשב MFP פעולה 6 כפל FP 4 חיבור FP 20 חילוק FP 2 פעולות INT

א. חשב את מדד ה- MIPS של שתי המכונות. להזכירכם: מספר פעולות INT שמבוצעות לכל פקודת FP במחשב NMFP פעולה 30 כפל FP 20 חיבור FP 50 חילוק FP מספר מחזורי שעון במחשב MFP פעולה 6 כפל FP 4 חיבור FP 20 חילוק FP 2 פעולות INT א. חשב את מדד ה- MIPS של שתי המכונות. להזכירכם: CPIMFP = (0.10 * 6) + (0.15 * 4) +(0.05 * 20) +(0.70 * 2) = 3.6 CPINMFP = 2 הסבר: מחשב ה- NMFP מבצע רק פעולות INT שאורכות 2 מחזורי שעון. שימו לב שמדד ה MIPS של מחשב NMFP גבוה מזה של MFP !

ג. מהו זמן הריצה של התכנית בשני המחשבים? ב. מחשב MFP מבצע את התכנית ב- 300*106 פקודות. כמה פקודות Integer נדרשות למחשב NMFP כדי לבצע את התכנית? פעולה שכיחות מספר פעולות MFP כמות פקודות באמולציה מספר פעולות NMFP כפל FP 10% 30*106 30 900*106 חיבור FP 15% 45*106 20 חילוק FP 5% 15*106 50 750*106 פעולות בשלמים 70% 210*106 1 סה"כ 300*106 2760*106 פעולה שכיחות מספר פעולות MFP כפל FP 10% חיבור FP 15% חילוק FP 5% פעולות בשלמים 70% סה"כ 300*106 פעולה שכיחות מספר פעולות MFP כפל FP 10% 30*106 חיבור FP 15% 45*106 חילוק FP 5% 15*106 פעולות בשלמים 70% 210*106 סה"כ 300*106 ג. מהו זמן הריצה של התכנית בשני המחשבים? שימו לב להבדלי זמן הריצה !

ד. מהו מדד MFLOPS של שני המחשבים? הסבר: מספר פעולות ה- FP בשני המחשבים שווה, כי סופריםFP בשפה עילית ולא חשוב איך הן ממומשות. הדבר השונה הוא חישוב זמן הביצוע שחישבנו בסעיף ג'. נשים לב שמדד MFLOPS של מחשב MFP גבוה יותר ממדד ממחשב NMFP , כלומר מכונה MFP מבצעת מהר יותר פעולות FP וזאת בניגוד למדד MIPS.

חוק אמדל ניקח מכונה כלשהי שזמן הריצה של תכנית P עליה הוא ExTimeold . נניח שאנו משפרים את המעבד כך שחלק Fraction מזמן ריצת התכנית ירוץ פי Speedup יותר מהר בזכות השיפור השאלה היא מה יהא זמן הריצה כעת? שימו לב: Fraction מתייחס לחלק הזמן, לא לחלק הפקודות או לחלק התכנית P.

חוק אמדל פועל יוצא הוא שחישוב ההאצה הכללית שהשגנו ניתן לחישוב באופן הבא:

דוגמא שינינו מעבד כלשהו באופן הבא: ההוראות שמטפלות בנקודה צפה (floating point) ירוצו פי 2.5 יותר מהר פעולות גישה לזיכרון פי 3 יותר מהר פעולות חיבור/חיסור בשלמים פי 1.5 יותר לאט מבדיקה עבור תוכנית מבחן עולה ש: פעולות נקודה צפה תופסות 15% זמן מכלל תכנית המבחן פעולות זיכרון 20% פעולות חיבור/חיסור בשלמים – 40% כמה שיפרנו בסך הכל?

Operation Speed up Frequency Floating point 2.5 15% Memory 3 20% Integer 1/ 1.5 40%

ניתן להכליל גם לחישוב CPI ניתן לשימוש רק כאשר מספר הפקודות לא השתנה (Fraction צריך להיות תקף בשני המקרים)

לדוגמא נתונה מכונה CISC-ית, רוצים להוציא דגם משופר מבוסס RISC כך שהוראות מסובכות יפורקו (בפנים) למספר הוראת פשוטות כמו כן הצליחו במעבד החדש להשיג ביצוע הוראות סיעוף מהיר פי 2 (במ"ש) מאשר במעבד המקורי. מהרצת תוכנית מבחן התברר ש: עבור 20% מזמן הביצוע של הקוד קיבלנו האטה של 70% במ"ש. אין שינוי בשאר ה-80%. הוראות סיעוף תופסות 10% מזמן הביצוע (שאינן נמנות על ה-20% שגרמו לגידול). פי כמה השתנה ה-CPI?

דוגמא (2) מהרצת תוכנית אחרת: מתברר כי מניין ההוראות בקוד הדינאמי גדל ב-50% תדר השעון לעומת זאת גדל פי 2 היחס בין הCPIold לCPInew נשאר כמו בתוכנית המבחן מהו שיפור הביצועים, אם בכלל, עבור תוכנית המבחן הנתונה? 25

שאלות א. נתונה תכנית מחשב בשפה עלית אשר מכילה 20 פעולות FP. התכנית רצה מהר יותר על מחשב A מאשר על מחשב B. אילו מהקביעות הבאות נכונה בהכרח לגבי המחשבים הנ"ל והתכנית הנתונה? למחשב A מדד MIPS גבוה או שווה לזה של מחשב B למחשב A מדד MFLOPS גבוה או שווה לזה של מחשב B ה- CPI של מחשב A גבוה או שווה ל- CPI של מחשב B ה- CPI של מחשב A נמוך או שווה ל- CPI של מחשב B קצב השעון של מחשב A גבוה או שווה לקצב השעון של מחשב B זמן המחזור של מחשב B ארוך או שווה לזמן המחזור של מחשב A אף תשובה אינה מתקיימת בוודאות. תשובה - 2

שאלות - המשך מה תהיה תשובתך לסעיף א' כאשר מדובר על תכנית אסמבלר זהה הרצה על שני המחשבים? למחשב A מדד MIPS גבוה או שווה לזה של מחשב B למחשב A מדד MFLOPS גבוה או שווה לזה של מחשב B ה- CPI של מחשב A גבוה או שווה ל- CPI של מחשב B ה- CPI של מחשב A נמוך או שווה ל- CPI של מחשב B קצב השעון של מחשב A גבוה או שווה לקצב השעון של מחשב B זמן המחזור של מחשב B ארוך או שווה לזמן המחזור של מחשב A אף תשובה אינה מתקיימת בוודאות. תשובות 1+2.

backups

דף נוסחאות לתרגול 1 1 nSec = 10-9 Sec 1 MHZ = 106 HZ CR[hz] = 1 / CC[sec] CPI = Cycles / IC CPU time = CC * Cycles = CC * CPI * IC