Performance ICS 233 Computer Architecture and Assembly Language

Slides:



Advertisements
Similar presentations
CS1104: Computer Organisation School of Computing National University of Singapore.
Advertisements

CS2100 Computer Organisation Performance (AY2014/2015) Semester 2.
TU/e Processor Design 5Z032 1 Processor Design 5Z032 The role of Performance Henk Corporaal Eindhoven University of Technology 2009.
Performance COE 308 Computer Architecture Prof. Muhamed Mudawar Computer Engineering Department King Fahd University of Petroleum and Minerals.
Computer Organization and Architecture (AT70.01) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology Instructor: Dr. Sumanta Guha Slide Sources: Patterson.
Chapter 1 CSF 2009 Computer Performance. Defining Performance Which airplane has the best performance? Chapter 1 — Computer Abstractions and Technology.
CSCE 212 Chapter 4: Assessing and Understanding Performance Instructor: Jason D. Bakos.
CPU Performance Evaluation: Cycles Per Instruction (CPI)
Performance ICS 233 Computer Architecture and Assembly Language Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of.
Chapter 4 Assessing and Understanding Performance Bo Cheng.
EECC550 - Shaaban #1 Lec # 3 Spring Computer Performance Evaluation: Cycles Per Instruction (CPI) Most computers run synchronously utilizing.
1 CSE SUNY New Paltz Chapter 2 Performance and Its Measurement.
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)
Computer ArchitectureFall 2007 © September 17, 2007 Karem Sakallah CS-447– Computer Architecture.
Chapter 4 Assessing and Understanding Performance
1 Chapter 4. 2 Measure, Report, and Summarize Make intelligent choices See through the marketing hype Key to understanding underlying organizational motivation.
Performance ICS 233 Computer Architecture and Assembly Language Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of.
1 Computer Performance: Metrics, Measurement, & Evaluation.
Where Has This Performance Improvement Come From? Technology –More transistors per chip –Faster logic Machine Organization/Implementation –Deeper pipelines.
Benchmarks Prepared By : Arafat El-madhoun Supervised By:eng. Mohammad temraz.
CDA 3101 Fall 2013 Introduction to Computer Organization Benchmarks 30 August 2013.
C OMPUTER O RGANIZATION AND D ESIGN The Hardware/Software Interface 5 th Edition Chapter 1 Computer Abstractions and Technology Sections 1.5 – 1.11.
10/19/2015Erkay Savas1 Performance Computer Architecture – CS401 Erkay Savas Sabanci University.
1 CS/EE 362 Hardware Fundamentals Lecture 9 (Chapter 2: Hennessy and Patterson) Winter Quarter 1998 Chris Myers.
Performance.
Performance Lecture notes from MKP, H. H. Lee and S. Yalamanchili.
CEN 316 Computer Organization and Design Assessing and Understanding Performance Mansour AL Zuair.
Lecture2: Performance Metrics Computer Architecture By Dr.Hadi Hassan 1/3/2016Dr. Hadi Hassan Computer Architecture 1.
1  1998 Morgan Kaufmann Publishers How to measure, report, and summarize performance (suorituskyky, tehokkuus)? What factors determine the performance.
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.
September 10 Performance Read 3.1 through 3.4 for Wednesday Only 3 classes before 1 st Exam!
Lec2.1 Computer Architecture Chapter 2 The Role of Performance.
L12 – Performance 1 Comp 411 Computer Performance He said, to speed things up we need to squeeze the clock Study
Performance COE 301 Computer Organization Dr. Muhamed Mudawar College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
EGRE 426 Computer Organization and Design Chapter 4.
CMSC 611: Advanced Computer Architecture Performance & Benchmarks Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr 2003 course slides Some.
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.
BITS Pilani, Pilani Campus Today’s Agenda Role of Performance.
Lecture 3. Performance Prof. Taeweon Suh Computer Science & Engineering Korea University COSE222, COMP212, CYDF210 Computer Architecture.
BITS Pilani, Pilani Campus Today’s Agenda Role of Performance.
Measuring Performance and Benchmarks Instructor: Dr. Mike Turi Department of Computer Science and Computer Engineering Pacific Lutheran University Lecture.
Computer Organization
CS161 – Design and Architecture of Computer Systems
Performance Lecture notes from MKP, H. H. Lee and S. Yalamanchili.
September 2 Performance Read 3.1 through 3.4 for Tuesday
Assessing and Understanding Performance
Defining Performance Which airplane has the best performance?
Prof. Hsien-Hsin Sean Lee
Morgan Kaufmann Publishers
CSCE 212 Chapter 4: Assessing and Understanding Performance
CS2100 Computer Organisation
Performance COE 301 Computer Organization
Chapter 1 Computer Abstractions & Technology Performance Evaluation
Computer Performance He said, to speed things up we need to squeeze the clock.
Serial versus Pipelined Execution
CMSC 611: Advanced Computer Architecture
CMSC 611: Advanced Computer Architecture
COMS 361 Computer Organization
Parameters that affect it How to improve it and by how much
Computer Performance Read Chapter 4
Performance.
Benchmarks Programs specifically chosen to measure performance
CS161 – Design and Architecture of Computer Systems
Computer Organization and Design Chapter 4
CS2100 Computer Organisation
Presentation transcript:

Performance ICS 233 Computer Architecture and Assembly Language Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals [Adapted from slides of Dr. M. Mudawar, ICS 233, KFUPM]

Outline Response Time and Throughput Performance and Execution Time Clock Cycles Per Instruction (CPI) Single- vs. Multi-cycle CPU Performance Amdahl’s Law Benchmarks

What is Performance? How can we make intelligent choices about computers? Why some computer hardware performs better at some programs, but performs less at other programs? How do we measure the performance of a computer? What factors are hardware related? software related? How does machine’s instruction set affect performance? Understanding performance is key to understanding underlying organizational motivation

Response Time and Throughput Time between start and completion of a task, as observed by end user Response Time = CPU Time + Waiting Time (I/O, OS scheduling, etc.) Throughput Number of tasks the machine can run in a given period of time Decreasing execution time improves throughput Example: using a faster version of a processor Less time to run a task  more tasks can be executed Increasing throughput can also improve response time Example: increasing number of processors in a multiprocessor More tasks can be executed in parallel Execution time of individual sequential tasks is not changed But less waiting time in scheduling queue reduces response time Have them raise their hands when answering questions

Book’s Definition of Performance For some program running on machine X X is n times faster than Y Execution timeX 1 PerformanceX = PerformanceY PerformanceX Execution timeX Execution timeY = n =

What do we mean by Execution Time? Real Elapsed Time Counts everything: Waiting time, Input/output, disk access, OS scheduling, … etc. Useful number, but often not good for comparison purposes Our Focus: CPU Execution Time Time spent while executing the program instructions Doesn't count the waiting time for I/O or OS scheduling Can be measured in seconds, or Can be related to number of CPU clock cycles

Clock Cycles Clock cycle = Clock period = 1 / Clock rate Clock rate = Clock frequency = Cycles per second 1 Hz = 1 cycle/sec 1 KHz = 103 cycles/sec 1 MHz = 106 cycles/sec 1 GHz = 109 cycles/sec 2 GHz clock has a cycle time = 1/(2×109) = 0.5 nanosecond (ns) We often use clock cycles to report CPU execution time Cycle 1 Cycle 2 Cycle 3 CPU Execution Time = CPU cycles × cycle time Clock rate CPU cycles =

Improving Performance To improve performance, we need to Reduce number of clock cycles required by a program, or Reduce clock cycle time (increase the clock rate) Example: A program runs in 10 seconds on computer X with 2 GHz clock What is the number of CPU cycles on computer X ? We want to design computer Y to run same program in 6 seconds But computer Y requires 10% more cycles to execute program What is the clock rate for computer Y ? Solution: CPU cycles on computer X = 10 sec × 2 × 109 cycles/s = 20 × 109 CPU cycles on computer Y = 1.1 × 20 × 109 = 22 × 109 cycles Clock rate for computer Y = 22 × 109 cycles / 6 sec = 3.67 GHz

Clock Cycles Per Instruction (CPI) Instructions take different number of cycles to execute Multiplication takes more time than addition Floating point operations take longer than integer ones Accessing memory takes more time than accessing registers CPI is an average number of clock cycles per instruction Important point Changing the cycle time often changes the number of cycles required for various instructions (more later) 1 I1 cycles I2 I3 I6 I4 I5 I7 2 3 4 5 6 7 8 9 10 11 12 13 14 CPI = 14/7 = 2

Performance Equation To execute, a given program will require … Some number of machine instructions Some number of clock cycles Some number of seconds We can relate CPU clock cycles to instruction count Performance Equation: (related to instruction count) CPU cycles = Instruction Count × CPI Time = Instruction Count × CPI × cycle time

Factors Impacting Performance Time = Instruction Count × CPI × cycle time I-Count CPI Cycle Program X Compiler ISA Organization Technology

Using the Performance Equation Suppose we have two implementations of the same ISA For a given program Machine A has a clock cycle time of 250 ps and a CPI of 2.2 Machine B has a clock cycle time of 500 ps and a CPI of 1.0 Which machine is faster for this program, and by how much? Solution: Both computers execute same count of instructions = I CPU execution time (A) = I × 2.2 × 250 ps = 550 × I ps CPU execution time (B) = I × 1.0 × 500 ps = 500 × I ps Computer B is faster than A by a factor = = 1.1 550 × I 500 × I

Determining the CPI Different types of instructions have different CPI Let CPIi = clocks per instruction for class i of instructions Let Ci = instruction count for class i of instructions Designers often obtain CPI by a detailed simulation Hardware counters are also used for operational CPUs CPI = (CPIi × Ci) i = 1 n ∑ Ci CPU cycles = (CPIi × Ci) i = 1 n ∑

Example on Determining the CPI Problem A compiler designer is trying to decide between two code sequences for a particular machine. Based on the hardware implementation, there are three different classes of instructions: class A, class B, and class C, and they require one, two, and three cycles per instruction, respectively. The first code sequence has 5 instructions: 2 of A, 1 of B, and 2 of C The second sequence has 6 instructions: 4 of A, 1 of B, and 1 of C Compute the CPU cycles for each sequence. Which sequence is faster? What is the CPI for each sequence? Solution CPU cycles (1st sequence) = (2×1) + (1×2) + (2×3) = 2+2+6 = 10 cycles CPU cycles (2nd sequence) = (4×1) + (1×2) + (1×3) = 4+2+3 = 9 cycles Second sequence is faster, even though it executes one extra instruction CPI (1st sequence) = 10/5 = 2 CPI (2nd sequence) = 9/6 = 1.5

Second Example on CPI Given: instruction mix of a program on a RISC processor What is average CPI? What is the percent of time used by each instruction class? Classi Freqi CPIi ALU 50% 1 Load 20% 5 Store 10% 3 Branch 20% 2 CPIi × Freqi 0.5×1 = 0.5 0.2×5 = 1.0 0.1×3 = 0.3 0.2×2 = 0.4 %Time 0.5/2.2 = 23% 1.0/2.2 = 45% 0.3/2.2 = 14% 0.4/2.2 = 18% Average CPI = 0.5+1.0+0.3+0.4 = 2.2 How faster would the machine be if load time is 2 cycles? What if two ALU instructions could be executed at once?

Single- vs. Multi-cycle CPU Drawbacks of Single Cycle Processor: Long cycle time All instructions take as much time as the slowest Alternative Solution: Multicycle implementation Break down instruction execution into multiple cycles ALU Instruction Fetch Reg Read ALU Reg Write longest delay Load Instruction Fetch Reg Read ALU Memory Read Reg Write Store Instruction Fetch Reg Read ALU Memory Write Branch Instruction Fetch Reg Read ALU Jump Instruction Fetch Decode

Single- vs. Multi-cycle CPU Break instruction execution into five steps Instruction fetch Instruction decode and register read Execution, memory address calculation, or branch completion Memory access or ALU instruction completion Load instruction completion One step = One clock cycle (clock cycle is reduced) First 2 steps are the same for all instructions Instruction # cycles ALU & Store 4 Branch 3 Load 5 Jump 2

Single- vs. Multi-cycle Performance Assume the following operation times for components: Instruction and data memories: 200 ps ALU and adders: 180 ps Decode and Register file access (read or write): 150 ps Ignore the delays in PC, mux, extender, and wires Which of the following would be faster and by how much? Single-cycle implementation for all instructions Multicycle implementation optimized for every class of instructions Assume the following instruction mix: 40% ALU, 20% Loads, 10% stores, 20% branches, & 10% jumps

Single- vs. Multi-cycle Performance Instruction Class Memory Register Read ALU Operation Data Write Total 200 150 180 680 ps Load 880 ps Store 730 ps Branch 530 ps Jump 350 ps decode and update PC For fixed single-cycle implementation: Clock cycle = For multi-cycle implementation: Average CPI = Speedup = 880 ps determined by longest delay (load instruction) max (200, 150, 180) = 200 ps (maximum delay at any step) 0.4×4 + 0.2×5 + 0.1×4+ 0.2×3 + 0.1×2 = 3.8 880 ps / (3.8 × 200 ps) = 880 / 760 = 1.16

ExTime with E = ExTime before × (f /s + (1 – f )) Amdahl’s Law Amdahl's Law is a measure of Speedup How a computer performs after an enhancement E Relative to how it performed previously Enhancement improves a fraction f of execution time by a factor s and the remaining time is unaffected Performance with E Performance before ExTime before ExTime with E Speedup(E) = = ExTime with E = ExTime before × (f /s + (1 – f )) Speedup(E) = (f /s + (1 – f )) 1

Example on Amdahl's Law Suppose a program runs in 100 seconds on a machine, with multiply instruction responsible for 80 seconds of this time. How much do we have to improve the speed of multiplication if we want the program to run 4 times faster? Solution: suppose we improve multiplication by a factor s 25 sec (4 times faster) = 80 sec / s + 20 sec s = 80 / (25 – 20) = 80 / 5 = 16 Improve the speed of multiplication by s = 16 times How about making the program 5 times faster? 20 sec ( 5 times faster) = 80 sec / s + 20 sec s = 80 / (20 – 20) = ∞ Impossible to make 5 times faster!

Benchmarks Performance best obtained by running a real application Use programs typical of expected workload Representatives of expected classes of applications Examples: compilers, editors, scientific applications, graphics, ... SPEC (System Performance Evaluation Corporation) Funded and supported by a number of computer vendors Companies have agreed on a set of real programs and inputs Various benchmarks for … CPU performance, graphics, high-performance computing, client-server models, file systems, Web servers, etc. Valuable indicator of performance (and compiler technology)

The SPEC CPU2000 Benchmarks 12 Integer benchmarks (C and C++) 14 FP benchmarks (Fortran 77, 90, and C) Name Description gzip Compression wupwise Quantum chromodynamics vpr FPGA placement and routing swim Shallow water model gcc GNU C compiler mgrid Multigrid solver in 3D potential field mcf Combinatorial optimization applu Partial differential equation crafty Chess program mesa Three-dimensional graphics library parser Word processing program galgel Computational fluid dynamics eon Computer visualization art Neural networks image recognition perlbmk Perl application equake Seismic wave propagation simulation gap Group theory, interpreter facerec Image recognition of faces vortex Object-oriented database ammp Computational chemistry bzip2 lucas Primality testing twolf Place and route simulator fma3d Crash simulation using finite elements sixtrack High-energy nuclear physics apsi Meteorology: pollutant distribution Wall clock time is used as metric Benchmarks measure CPU time, because of little I/O

SPEC 2000 Ratings (Pentium III & 4) l o c k r a t e i n M H z 5 1 3 2 4 6 8 P u m I N T F Note the relative positions of the CINT and CFP 2000 curves for the Pentium III & 4 SPEC rating = Geometric mean of SPEC ratios SPEC ratio = Execution time is normalized relative to Sun Ultra 5 (300 MHz) Pentium III does better at the integer benchmarks, while Pentium 4 does better at the floating-point benchmarks due to its advanced SSE2 instructions

Things to Remember Performance is specific to a particular program Any measure of performance should reflect execution time Total execution time is a consistent summary of performance For a given ISA, performance improvements come from Increases in clock rate (without increasing the CPI) Improvements in processor organization that lower CPI Compiler enhancements that lower CPI and/or instruction count Algorithm/Language choices that affect instruction count Pitfalls (things you should avoid) Using a subset of the performance equation as a metric Expecting improvement of one aspect of a computer to increase performance proportional to the size of improvement