48
fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund Informatik 12 Germany 201401 14 These slides use Microsoft clip arts. Microsoft copyright restrictions apply. © Springer, 2010

Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

fakultät für informatik

informatik 12

technische universität dortmund

Optimizations

- Compilation for Embedded Processors -

Peter Marwedel

TU Dortmund

Informatik 12

Germany

2014年 01 月 14 日 These slides use Microsoft clip arts. Microsoft copyright restrictions apply.

© S

pringer,

2010

Page 2: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 2 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Structure of this course

2: Specification &

Modelling

3:

ES-hardware

4: system

software (RTOS,

middleware, …)

8:

Test

5: Evaluation &

validation & (energy,

cost, performance, …)

7: Optimization

6: Application

mapping

Applic

ation K

now

ledge

Design

repository Design

Numbers denote sequence of chapters

Page 3: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 3 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Compilers for embedded systems

Book section 7.3 Introduction

Energy-aware compilation

Memory-architecture-aware compilation

Reconciling compilers and timing analysis

Compilation for digital signal processors

Compilation for VLIW processors

Compiler generation, retargetable compilers, design

space exploration

Page 4: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 4 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

SPM+MMU (1)

How to use SPM in a system with virtual addressing?

Virtual SPM

Typically accesses MMU

+ SPM in parallel

not energy efficient

Real SPM

suffers from potentially

long VA translation

Egger, Lee, Shin (Seoul Nat. U.):

Introduction of small µTLB translating recent

addresses fast. [B. Egger, J. Lee, H. Shin: Scratchpad memory management for portable systems

with a memory management unit, CASES, 2006, p. 321-330 (best paper)]

Proc. $ SPM MMU

Page 5: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 5 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

SPM+MMU (2)

µTLB generates physical address

in 1 cycle

if address corresponds to SPM, it

is used

otherwise, mini-cache is accessed

Mini-cache provides reasonable

performance for non-optimized

code

µTLB miss triggers main

TLB/MMU

SPM is used only for instructions

instructions are stored in pages

pages are classified as

cacheable, non-cacheable, and

“pageable”

(= suitable for SPM)

CPU

core

MMU

unified TLB

minicache

TAG

RAM

DATA

RAM SPM

SPM base reg. comparator

µTLB

instruction VA

PA

Page 6: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 6 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

SPM+MMU (3)

Application binaries are modified:

frequently executed code put into

pageable pages.

Initially, page-table entries for

pageable code are marked invalid

If invalid page is accessed, a page

table exception invokes SPM

manager (SPMM).

SPMM allocates space in SPM and

sets page table entry

If SPMM detects more requests

than fit into SPM, SPM eviction is

started

Compiler does not need to know

SPM size virtual memory

SPM

main memory

physical memory

stack/heap

region

pageable

region

cached region

uncached

region

pageable

region

cached region

uncached

region

PC

Page 7: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 7 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Multi-processor ARM (MPARM) Framework

Homogenous SMP ~ CELL processor

Processing Unit : ARM7T processor

Shared Coherent Main Memory

Private Memory: Scratchpad Memory

SPM SPM SPM SPM

Interrupt

Device

Semaphore

Device

ARM ARM ARM ARM

Interconnect (AMBA or STBus)

Shared Main

Memory

Page 8: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 8 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Application Example: Multi-Processor Edge Detection

Source Sink Compute Processors

Source, sink and n compute processors

Each image is processed by an independent compute processor

• Communication overhead is minimized.

Page 9: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 9 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Results: Scratchpad Overlay for Edge Detection

0

500

1000

1500

2000

2500

128 256 512 1024 2048 4096 8192 16384

Scratchpad Size per Processor (Bytes)

To

tal

En

erg

y C

on

su

mp

tio

n

(mJ)

Energy (SO): 1 CP

Energy (SO): 2 CP

Energy (SO): 3 CP

Energy (SO): 4 CP

2 CPs are better than 1 CP, then energy consumption stabilizes

Best scratchpad size: 4kB (1CP& 2CP) 8kB (3CP & 4CP)

Page 10: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 10 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Results DES-Encryption

0

10

20

30

40

50

60

70

0 128 256 512 1k 2k 4k 8k 16k

Scratchpad Size [Bytes]

En

erg

y C

on

su

mp

tio

n [

µJ]

Energy Consumption [µJ]

DES-Encryption: 4 processors: 2 Controllers+2 Compute Engines

Energy values from ST

Microelectronics

Result of cooperation between U. Bologna and TU

Dortmund supported by ARTIST2 network of excellence.

Page 11: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 11 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Compilers for embedded systems

Book section 7.3 Introduction

Energy-aware compilation

Memory-architecture-aware compilation

Reconciling compilers and timing analysis

Compilation for digital signal processors

Compilation for VLIW processors

Compiler generation, retargetable compilers, design

space exploration

Page 12: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 12 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Code Layout Transformations (1)

Execution counts based approach: Sort the functions according to execution counts

f4 > f1 > f2 > f5 > f3

Place functions in decreasing order of execution

counts

f1

f2

f3

f4

f5

(1100)

(900)

(400)

(2000)

(700)

[S. McFarling: Program optimization for instruction caches, 3rd International Conference on

Architecture Support for Programming Languages and Operating Systems (ASPLOS), 1989]

Page 13: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 13 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Code Layout Transformations (2)

Execution counts based approach: Sort the functions according to execution counts

f4 > f1 > f2 > f5 > f3

Place functions in decreasing order of execution

counts

Transformation increases spatial locality.

Does not take in account calling order

f4

(1100)

(700)

(400)

(2000)

(900)

f4

f1

f2

f5

f3

f4

f2 f5

f1 f3

Page 14: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 14 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Code Layout Transformations (3)

Call-Graph Based Algorithm: Create weighted call-graph.

Place functions according to weighted depth-first

traversal.

f4 > f2 > f1 > f3 > f5

Increases spatial locality.

(2000) f4

f4

f2 f5

f1 f3 [W. W. Hwu et al.: Achieving high instruction cache performance with an optimizing

compiler, 16th Annual International Symposium on Computer Architecture, 1989]

Page 15: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 15 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Code Layout Transformations (3)

Call-Graph Based Algorithm: Create weighted call-graph.

Place functions according to weighted depth-first

traversal.

f4 > f2 > f1 > f3 > f5

Increases spatial locality.

(900)

(2000) f4

f2

f4

f2 f5

f1 f3

Page 16: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 16 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Code Layout Transformations (4)

Call-Graph Based Algorithm: Create weighted call-graph.

Place functions according to weighted depth-first

traversal.

f4 > f2 > f1 > f3 > f5

Increases spatial locality.

(900)

(1100)

(2000) f4

f2

f1

f4

f2 f5

f1 f3

Page 17: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 17 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Code Layout Transformations (5)

Call-Graph Based Algorithm: Create weighted call-graph.

Place functions according to weighted depth-first

traversal.

f4 > f2 > f1 > f3 > f5

Increases spatial locality.

f4

f2 f5

f1 f3

f4

(900)

(1100)

(400)

(2000) f4

f2

f1

f3

Page 18: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 18 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Code Layout Transformations (6)

Call-Graph Based Algorithm: Create weighted call-graph.

Place functions according to weighted depth-first

traversal.

f4 > f2 > f1 > f3 > f5

Combined with placing frequently executed

traces at the top of the code space for functions.

Increases spatial locality.

f4

(900)

(1100)

(400)

(2000)

(700)

f4

f2

f5

f1

f3

f4

f2 f5

f1 f3

Page 19: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 19 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Prefetching

Prefetch instructions load values into the cache

Pipeline not stalled for prefetching

Prefetching instructions introduced in ~1985-1995

Potentially, all miss latencies can be avoided

Disadvantages:

• Increased # of instructions

• Potential premature eviction of cache line

• Potentially pre-loads lines that are never used

Steps

• Determination of references requiring prefetches

• Insertion of prefetches (early enough!)

R. Allen, K. Kennedy: Optimizing Compilers for Modern Architectures, Morgan-Kaufman, 2002

Page 20: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 20 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Results for prefetching

Mowry, as cited by R. Allen & K. Kennedy

© Morgan-Kaufman, 2002

Not very impressive!

Page 21: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 21 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Memory Aware Compilation and Simulation

Framework (for C) MACC

M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS VI), 2006

Application C code

Source-level

memory optimizer

encc, ARM gcc,

M5 DSP

Array partitioning

SPM overlay

Executable binary Energy database Memory hierarchy

description

Compilation

Framework

Profile report

Memory simulator

Processor

simulators

(ARM7/M5)

Profiler

Simulation

Framework

MPSoC

simulator

Page 22: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 22 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Memory architecture description @ MACCv2

Query can include address, time stamp, value, …

Query can request energy, delay, stored values

Query processed along a chain of HW components, incl. busses, ports,

address translations etc., each adding delay & energy

R. Pyka et al.: Versatile System level

Memory Description Approach for

embedded MPSoCs, University of

Dortmund, Informatik 12, 2007

API query to model

simplifies

integration into

compiler

External XML

representation

REQ Energy= ?

Cycles= ?

+10 Energy

+5 Cycles

+1 Energy

+2 Cycles

+1 Energy

+0 Cycles

CPU1 MM

ASPC-1 - IFETCH

- DRD

- DWR

- MAINAS

ASPC-M - 0…ffff

ASPC-B - 0 … 3ffff

Page 23: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 23 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

MACC_System

Introduction of Memory Architecture-Aware Optimization

The MACC PMS (Processor/ Memory/Switch) Model

CPU1

SPM

MM2

CPU2

SPM

L1$

BRI

CPU3

SPM

L1$

L2$ MM3

BUS1

BUS2

MM1

Explicit memory architecture

API provides access to memory information

C

code

Page 24: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 24 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

MaCC Modeling Example via GUI

Page 25: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 25 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Memory hierarchies beyond main memory

Massive datasets are being collected everywhere

Storage management software is billion-$ industry

Examples (2002):

Phone: AT&T 20TB phone call

database, wireless tracking

Consumer: WalMart 70TB

database, buying patterns

WEB: Web crawl of 200M pages

and 2000M links, Akamai stores

7 billion clicks per day

Geography: NASA satellites

generate 1.2TB per day

[© Larse Arge, I/O-Algorithms, http://www.daimi.au.dk/~large/ioS07/]

More New Information Over Next 2

Years Than in All Previous History

Page 26: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 26 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Example: LIDAR Terrain Data

COWI A/S (and others) is currently scanning Denmark

[© Larse Arge, I/O-Algorithms, http://www.daimi.au.dk/~large/ioS07/]

Page 27: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 27 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Application Example: Flooding Prediction

+1 meter

+2 meter

[© Larse Arge, I/O-Algorithms, http://www.daimi.au.dk/~large/ioS07/]

Page 28: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 28 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Compilers for embedded systems

Book section 7.3 Introduction

Energy-aware compilation

Memory-architecture-aware compilation

Reconciling compilers and timing analysis

Compilation for digital signal processors

Compilation for VLIW processors

Compiler generation, retargetable compilers, design

space exploration

Page 29: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 29 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Worst case execution time (1)

Definition of worst case execution time:

WC

ET

ES

T

© Graphics: adopted from

R. Wilhelm + Microsoft Cliparts

WCETEST must be

1. safe (i.e. ≥ WCET) and

2. tight (WCETEST-WCET≪WCETEST)

Time

constraint

dis

rtribu

tion

of

tim

es

possible execution times

worst-case performance

worst-case guarantee

WC

ET

BC

ET

BC

ET

ES

T

timing predictability time

Page 30: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 30 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Current Trial-and-Error Based Development

1. Specification of CPS/ES system

2. Generation of Code (ANSI-C or similar)

3. Compilation of Code

4. Execution and/or simulation of code,

using a (e.g. random) set of input data

5. Measurement-based computation of “estimated worst

case execution time” (WCETmeas)

6. Adding safety margin m on top of WCETmeas: WCEThypo := (1 + m)* WCETmeas

7. If “WCEThypo” > deadline: change some detail, go back to

1 or 2.

Page 31: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 31 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Problems with this Approach

Dependability Computed “WCEThypo” not a safe approximation

Time constraint may be violated

Design time How to find necessary changes?

How many iterations until successful?

“Make the common case fast” a wrong approach for RT-

systems Computer architecture and compiler techniques focus on average

speed

Circuit designers know it’s wrong

Compiler designers (typically) don’t

“Optimizing” compilers unaware of cost

functions other than code size

Common case fast

Page 32: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 32 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Integration of WCET estimation and compilation

Computing

WCETEST after

code generation is

too late.

Why not consider

WCETEST as an

objective function

already in the

compiler?

Integration of aiT

and compiler

Page 33: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 33 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Challenges for WCETEST-Minimization

Worst-Case Execution Path (WCEP)

WCETEST of a program = Length of longest

execution path (WCEP) in that program

WCETEST-Minimization:

Reduction of the longest path

Other optimizations do not result

in a reduction of WCETEST

Optimizations need to know the WCEP

Page 34: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 34 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

WCET-oriented optimizations

Extended loop analysis (CGO 09)

Instruction cache locking (CODES/ISSS 07, CGO 12)

Cache partitioning (WCET-Workshop 09)

Procedure cloning (WCET-WS 07, CODES 07, SCOPES 08)

Procedure/code positioning (ECRTS 08, CASES 11 (2x))

Function inlining (SMART 09, SMART 10)

Loop unswitching/invariant paths (SCOPES 09)

Loop unrolling (ECRTS 09)

Register allocation (DAC 09, ECRTS 11))

Scratchpad optimization (DAC 09)

Extension towards multi-objective optimization (RTSS 08)

Superblock-based optimizations (ICESS 10)

Surveys (Springer 10, Springer 12)

Page 35: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 35 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Loop Unrolling as an Example

Unrolling replaces the original loop with

several instances of the loop body

Positive Effects

• Reduced overhead for loop control

• Enables instruction level parallelism (ILP)

• Offers potential for following optimizations

Unroll early in optimization chain

Negative Effects

• Aggressive unrolling leads to I-cache overflows

• Additional spill code instructions

• Control code may cancel positive effects

Consequences of transformation hardly known

Page 36: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 36 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

WCETEST-aware Loop Unrolling

via Back-annotation

WCETEST-information available at assembly level

Unrolling to be applied at internal representation

of source code

Solution: Back-annotation:

Experimental WCETEST-aware compiler

WCC allows copying information:

assembly code source code

• WCETEST data

• Assembly code size

• Amount of spill code

Memory architecture info available

High-Level IR

(Source Code)

Low-Level IR

(Assembly Code)

Back-

Annotation

Mem.

Spec.

Code

generation

Page 37: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 37 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

80

82

84

86

88

90

92

94

96

98

100

0.5 kByte 1 kByte 2 kByte 4 kByte 8 kByte 16 kByte 16 kByte

I-Cache Size

Results for unrolling: WCETEST

100%: Avg. WCETEST for all benchmarks with –O3 & no unrolling

WCETEST reduction between 10.2% and 15.4%

WCETEST-driven unrolling outperforms standard unrolling by 13.7%

Rela

tive

WC

ET

[%

]

STA

ND

AR

D

Page 38: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 38 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

WCET-aware superblock optimizations

WCC’s superblocks: proposed 1st time at ANSI-C code level,

rely on WCETEST timing data

WCETEST-aware superblock optimizations: Common Subexpression

Elimination (CSE) and Dead Code Elimination (DCE) ported to WCC

WCETEST-aware superblock optimizations

Page 39: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 39 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Results: Register allocation

Registers = fastest level in the memory hierarchy

Interest in good global register allocation techniques

Frequently based on coloring of interference graph

lifetimes

v1

v2 v3

v1

v2

v3

Page 40: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 40 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Register Allocation

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

110%

adpcm

_ver

ify

cjpeg

_tra

nsupp

com

pres

s crc

dijkst

raduff

edge_

detect ed

nep

ic

expin

tfd

ct

fft_1

024

fft_2

56 fir

fir2d

imgsm

gsm_e

ncode h26

3

h264d

ec_b

lock

h264d

ec_m

acro

iir_4_

64

iir_bi

quad_N

jfdct

int

latn

rm_3

2_64

lmsf

ir_8_

1

lmsf

ir_32

_64

lpc

ludcm

p

mat

mult

mat

rix2_

fixed

mat

rix2_

float

md5

min

ver

mult_

10_10

mult_

4_4

ndes

prime

qmf_

rece

ive

qmf_

tran

smit

qurt

rijndae

l_en

c

sele

ctsh

a

spec

tral

star

tup

v32_

benc

Ave

rage

Re

lati

ve

WC

ET

ES

T [

%]

(Op

tim

iza

tio

n L

ev

el -O

3)

100% = WCETEST using Standard Graph Coloring (highest degree)

93%

24%

69%

[H. Falk]

Page 41: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 41 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Improving predictability for caches

Loop caches

Mapping code to less used part(s) of the index space

Cache locking/freezing

Changing the memory allocation for code or data

Mapping pieces of software to specific ways

Methods:

- Way prediction in hardware

- Generating appropriate way in software

- Allocation of certain parts of the address space to a

specific way

- Including way-identifiers in virtual to real-address

translation

Page 42: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 42 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Relative WCETEST with I-Cache Locking

5 Benchmarks/ARM920T/Postpass-Opt

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

110%

64 128 256 512 1024 2048 4096 8192 16384

Cache Size [bytes]

Re

l. W

CE

T_

ES

T [

%]

ADPCM G723 Statemate Compress MPEG2

(ARM920T)

[S. Plazar et al.]

Page 43: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 43 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Potential cache thrashing

[S. Plazar: Memory-based Optimization Techniques for Real-Time Systems, PhD thesis, TU Dortmund, June 2012]

Page 44: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 44 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Avoiding cache thrashing

Key idea: selectively allocate code

to uncached memory

S. Plazar: Memory-based Optimization Techniques for Real-Time Systems, PhD thesis, TU Dortmund, June 2012

Page 45: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 45 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Results

S. Plazar: Memory-based Optimization Techniques for Real-Time Systems, PhD thesis, TU Dortmund, June 2012

Page 46: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 46 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Way prediction/selective direct mapping

[M. D. Powell, A. Agarwal, T. N.

Vijaykumar, B. Falsafi, K. Roy:

Reducing Set-Associative Cache

Energy via Way-Prediction and

Selective Direct-Mapping, MICRO-

34, 2001]

© ACM

Page 47: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 47 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Results for the paper on way prediction (2)

© ACM

Page 48: Optimizations - TU Dortmund€¦ · M. Verma, L. Wehmeyer, R. Pyka, P. Marwedel, L. Benini: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations, Workshop on

- 48 - technische universität

dortmund

fakultät für

informatik

p. marwedel,

informatik 12, 2014

TU Dortmund

Conclusion

SPM allocation:

• MMUs

• multi-cores

Code-Layout-Transformations

Prefetching

Reconciling Compilers and Timing Analysis

Improving Timing Predictability