system benchmarking

24
1 System Benchmark [email protected]

Upload: raghav-nayak

Post on 20-Feb-2017

131 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: System Benchmarking

1

System [email protected]

Page 2: System Benchmarking

2

What is Benchmarking?

Defining Performance in Numeric Format

Page 3: System Benchmarking

3

How is it Implemented?

Page 4: System Benchmarking

4

WHY BENCHMARKING???

Page 5: System Benchmarking

5

Fact : IP’s are from different provider. We Integrate IP’s to create one SoC.

It is important to prove our New SoC gives same or better Performance compared to existing competitor SoC

Why Benchmarking?

Page 6: System Benchmarking

6

iPhone and Android Hardware

Page 7: System Benchmarking

7

Does the difference come from:

operating system (Windows, Linux, ...; 32/64 bit),

compiler (GCC, Intel, PathScale, ...), - options,

optimized libs (Libc...)?

Validating hardware configuration

Benchmarking Goals

Page 8: System Benchmarking

8

Comparing two systems

Checking for regressions

Capacity planning

Reproducing bad behaviour to solve it

Stress-testing to find bottlenecks

Benchmarking Goals

Page 9: System Benchmarking

9

Types of Benchmarking

Application -> Real World Software

Synthetic -> Impose the workload on the component like Processor, Memory, Network Devices etc

Parallel -> For Multicore Processors, Servers

Input/Ouput -> For Peripheral

Power -> For low power systems

Page 10: System Benchmarking

10

What is Performance?

Two Metrics Response Time (time per task) -> User Experience Throughput (tasks per time) -> Benchmarking

Performance

Page 11: System Benchmarking

11

For example: Consider a program which converts QVGA images from the

RGB colour space to YIQ.

An ST231 running at 300MHz can process 207 images a second.

A MIPS24K running at 550MHz can process 168 images a second.

MHz alone is not a good indicator of performance.

How do we benchmark Core Performance?

Page 12: System Benchmarking

12

Performance(Tasks/second) =(Avg No of Operations per Cycle) * ( MHz)

(No of Operations Needed to Complete Task)

Why is this? Do we need to consider other factors?

Page 13: System Benchmarking

13

The number of operations required to complete the task. This varies, for example, it may be necessary to replace a single floating-

point operation with shift, round and normalise operations to run on an integer core.

Average number of operations per cycle.

This can be improved by Pipelining, Parallelism, etc

Page 14: System Benchmarking

14

How we can improve performance?

Software Implementation Compiler Operating System Implementation

Hardware Design Cache Design Pipelining and Parallelism

Page 15: System Benchmarking

15

Compiler Optimizations

Optimize the common case -> using fast path

Avoid redundancy -> reuse results

Less code -> remove unnecessary computations

Parallelize -> reorder operations

Fewer jumps -> branch-free code

Loop optimizations -> operate on loops

Page 16: System Benchmarking

16

Operating System -> Symmetric Multiprocessing

Page 17: System Benchmarking

17

Operating System -> Symmetric Multithreading

Page 18: System Benchmarking

18

Hardware -> CPU Cache Design

Page 19: System Benchmarking

19

Hardware -> Pipelining and Parallelism Design

Unpipelined

Pipelined

Page 20: System Benchmarking

20

Parallelism:

Single Instruction Multiple Data(SIMD) ->

Multiple Instruction Multiple Data(MIMD) ->

Page 21: System Benchmarking

21

Interconnect/System Bus

Communication pathway connecting two or more devices

Throughput capacity = (bus clock speed in Hz) * (no of bits wide)

Page 22: System Benchmarking

22

Newman Performance Analysis

Page 23: System Benchmarking

23

Summary

Benchmarks are for comparing different hardware architectures.

Do not rely solely on microbenchmark results, also check Sanity check results Use a profiler Test your code in real life scenarios under

realistic load (macro-benchmark)

Page 24: System Benchmarking

24

QUESTIONS????