Influence of Compiler Optimizations on System Power - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Influence of Compiler Optimizations on System Power

Description:

with row-major memory layouts... Iteration Space (Loop) Tiling. for(I=0; I n; I ) ... for(I1=0; I1 n; I1 =t) for(j1=0; j1 n; j1 =t) for(k1=0; k1 n; k1 =t) ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 18
Provided by: vijaynaray
Category:

less

Transcript and Presenter's Notes

Title: Influence of Compiler Optimizations on System Power


1
Influence of Compiler Optimizations on System
Power
  • M. Kandemir, N. Vijaykrishnan, M. J. Irwin, W. Ye
  • Microsystems Design Lab
  • The Pennsylvania State University
  • http//www.cse.psu.edu/mdl

2
Outline
  • Motivation
  • Energy Estimation Framework
  • Compiler Optimizations
  • Experimental Results
  • Conclusions

3
Motivation
  • Energy is a critical design constraint
  • Increasing software content inembedded devices
  • Compilers traditionally consider performance

Are performance-oriented optimizations suitable
for energy?
4
SimplePower Framework
compiler transformations
5
Memory System Model
Addr Pads
SimplePower Datapath
Memory
Data Pads
6
Compiler Optimizations
  • Linear Loop Transformations
  • Iteration Space Tiling
  • Loop Unrolling
  • Loop Fusion and Fission (Distribution)
  • Scalar Expansion

These transformations are used for enhancing data
locality and improving coarse/fine-grain
parallelism!
7
Compiler Framework
Input Code
Parafrase-II
Omega Library
Output Code
Native Compiler (cc,gcc,MIPSpro,)
Executable
8
Loop Fusion and Fission
for(I0 Iltn I) UIXVI for(I0 Iltn
I) UIUIUI
for(I0 Iltn I) UIXVI UIUIU
I
9
Linear Loop Transformations
for(j0 jltn j) for(l0 lltn
l) UjIVjI
for(I0 Iltn I) for(j0 jltn
j) UjIVjI
with row-major memory layouts
10
Iteration Space (Loop) Tiling
  • for(I0 Iltn I)
  • for(j0 jltn j)
  • for(k0 kltn k)
  • UIjVIkWkj

(t is the tile size)
for(I10 I1ltn I1t) for(j10 j1ltn
j1t) for(k10 k1ltn k1t)
for(Il1 Iltmin(l1t, n) I)
for(jj1 jltmin(j1t, n) j)
for(kk1 kltmin(k1t, n) k)
UIjVIkWkj
11
Loop Unrolling
  • for(I0 Iltn I)
  • for(j0 jltn j)
  • for(k0 kltn k)
  • UIjVIkWkj

(b is the unrolling factor)
for(I0 Iltn Ib) for(j0 jltn j)
for(k0 kltn k)
UIjVIkWkj
UI1jVI1kWkj . .
. UIb-1jVIb-1kWkj

12
Scalar Expansion
for(I0 Iltn I) KIUIUI-1
VIKI1/KI
for(I0 Iltn I) KUIUI-1
VIK1/K
Scalar Expansion
13
Core Energy Consumption (J)
Matrix Multiplication
14
Memory Energy Consumption (J)
Matrix Multiplication
15
Memory Energy Consumption (J)
Matrix Multiplication
16
Memory Energy Consumption (J)
17
Conclusions
  • Original Codes Energy consumed in memory is
    higher than core energy
  • Optimized Codes The gap is reduced
  • Memory energy is reduced
  • Core energy is increased
  • Miss rate is not a good indicator for energy

More information
http//www.cse.psu.edu/mdl
Write a Comment
User Comments (0)
About PowerShow.com