ece 571 { advanced microprocessor-based design lecture...

21
ECE 571 – Advanced Microprocessor-Based Design Lecture 1 Vince Weaver http://web.eece.maine.edu/ ~ vweaver [email protected] 23 January 2018

Upload: others

Post on 22-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

ECE 571 – AdvancedMicroprocessor-Based Design

Lecture 1

Vince Weaver

http://web.eece.maine.edu/~vweaver

[email protected]

23 January 2018

Page 2: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Introduction

• Distribute and go over syllabus

http://web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_2018s.pdf

1

Page 3: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Advanced Microprocessor Based Design

• *NOT* a direct continuation of ECE471 (Embedded

Systems) No blinking LEDs on embedded boards.

More of a mix of 471 and 473 ideas.

• Power and Energy concerns on modern systems.

• Will involve some computer architecture. Don’t worry if

not a Computer Engineer, will try to review completely.

• Will involve reading some papers.

• Will involve logging into Linux boxes and running

experiments.

2

Page 4: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Advanced Microprocessor Based Design

What is an Advanced Microprocessor?

• Desktop?

• Server?

• Supercomputer?

• Embedded?

• They are all converging.

3

Page 5: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Moore’s Law

• Memory Wall

• Power Wall

• Tiny tiny transistors

• More and More Cores

• Something’s Got To Give

4

Page 6: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

What do people want out of aMicroprocessor?

• Performance?

• How do you analyze performance?

5

Page 7: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

What is Performance?

• Getting results as quickly as possible?

• Getting correct results as quickly as possible?

• What about Budget?

• What about Development Time?

• What about Hardware Usage?

• What about Power Consumption?

• What about Security?

6

Page 8: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Motivation for HPC Optimization

HPC environments are expensive:

• Procurement costs: ∼$40 million

• Operational costs: ∼$5 million/year

• Electricity costs: 1 MW / year ∼$1 million

• Air Conditioning costs: ??

7

Page 9: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Know Your Limitation

• CPU Constrained

• Memory Constrained (Memory Wall)

• I/O Constrained

• Thermal Constrained

• Energy Constrained

8

Page 10: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Performance Optimization Cycle

Code

Develop

Usage /Production

Modify / Tune

Analyze

Measure

Functionally Complete/Correct Code

Correct/Optimized CodeFunctionally Complete/

9

Page 11: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Wisdom from Knuth

“We should forget about small efficiencies, say about 97%

of the time:

premature optimization is the root of all evil.

Yet we should not pass up our opportunities in that

critical 3%. A good programmer will not be lulled into

complacency by such reasoning, he will be wise to look

carefully at the critical code; but only after that code has

been identified” — Donald Knuth

10

Page 12: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Amdahl’s Law

Time

Original

Speed up Blue 100x

Speed up Red 2x

11

Page 13: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Gathering Performance Info

• Aggregate counts (total instructions, total cycles, etc)

Actual measurements: perf, time

DBI measurements: valgrind, qemu

Simulators: gem5, simplescalar

• Sampled counts – periodically interrupt program, note

the instruction pointer. Can use info to statistically

determine which part of code where most time (or other

metric) is spent

hardware: perf

12

Page 14: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

DBI: valgrind

compiler: gprof

• Tracing – gather a record of every event (instruction?)

that is executed. Can then replay this trace through

various tools for analysis.

13

Page 15: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Performance Data Analysis

Manual Analysis• Visualization, Interactive Exploration, Statistical

Analysis

• Examples: TAU, Vampir

Automatic Analysis• Try to cope with huge amounts of data by automatic

analysis

• Examples: Paradyn, KOJAK, Scalasca, Perf-expert

14

Page 16: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Software Tools for Performance Analysis

15

Page 17: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Simulators

• Architectural Simulators

• Can generate traces, profiles, or modeled metrics

• Slow, often 1000x or more slower

• Not real hardware, only a model

• Did I mention, slow?

• m5, gem5, simplescalar, etc

16

Page 18: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Dynamic Binary Instrumentation

• Pin, Valgrind (cachegrind), Qemu

• Still slow (10-100x slower)

• Can model things like cache behavior (can model

parameters other than system running on)

• Complicated fine-tuned instrumentation can be created

• Architecture availability – Pin (no longer ARM),

Valgrind, Qemu most architectures, hardest to use

17

Page 19: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

Compiler Profiling

• gprof

• gcc -pg

• Adds code to each function to track time spent in each

function.

• Run program, gmon.out created. Run “gprof

executable” on it.

• Adds overhead, not necessarily fine-tuned, only does

time based measurements.

• Pro: available wherever gcc is.

18

Page 20: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

time

19

Page 21: ECE 571 { Advanced Microprocessor-Based Design Lecture 1web.eece.maine.edu/~vweaver/classes/ece571_2018s/ece571_lec01.pdfAdvanced Microprocessor Based Design *NOT* a direct continuation

perf

20