bitvalue: detecting and exploiting narrow bitwidth computations mihai budiu carnegie mellon...

24
BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University [email protected] joint work with Majd Sakr, Kip Walker and Seth Copen Goldstein

Post on 20-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

BitValue: Detecting and Exploiting Narrow Bitwidth

Computations

Mihai BudiuCarnegie Mellon University

[email protected]

joint work with Majd Sakr, Kip Walker and Seth Copen Goldstein

Page 2: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 2

Word Size EvolutionYear CPU Word size

1971 4004 4

1972 8008 8

1978 8086 16

1985 80386 32

2000 Itanium 64

• Size increase recently driven by address space constraints• Claim: data often does not use the whole word width

• We present a technique for static width inference

Page 3: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 3

Motivation: Applications• Media processing

• Digital Signal Processing

FFT

Page 4: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 4

Motivation: Applications (2)

Source: Brooks & Martonosi, HPCA ‘99

Cumulative frequency Operations on <16 bitsTitle:martonosi-graph.epsCreator:fig2dev Version 3.2 Patchlevel 1Preview:This EPS picture was not savedwith a preview included in it.Comment:This EPS picture will print to aPostScript printer, but not toother types of printers.

bits

Page 5: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 5

• “MMX”

• CPU support for narrow widths

• Reconfigurable hardware

Motivation: Hardware

+ + + + +

(a & 0xf) | (b & 0x18)b a

Page 6: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 6

• No programming language support

• No compiler support

Motivation: Languages

int a;long b;

int a;a = (a >> 16) & 0xf0;

Page 7: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 7

Outline

• Motivation

• The width inference algorithm

• Implementations

• Results

• Conclusions

Page 8: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 8

The Width Inference Algorithm

• Data-flow at the bit level• Infer values for each bit of an integer• Forward and backward propagation

– Forward discover constant bits– Backward discover don’t care bits

• We use iterative DF analysis• Low time and space complexity

Page 9: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 9

Benefits of Bit Value Inference

• You don’t have to implement:– don’t care bits– constant bits

• Use hardware more efficiently increased performance

Page 10: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 10

The Lattices

x

u

0 1 0100 10

0u

uu

0x

xx

The bit lattice The bitstring lattice L

Pointwise

Page 11: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 11

u0uuu

+

u00uu u001u

Forward (Constant) Propagation

Page 12: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 12

Backward (Don’t Care) Propagation

+

xux

xux

xuu In

Out

xuuxuu

Page 13: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 13

Transfer Functions

f : intk -> int

Forward(f) : Lk -> L

Backward(f, in) : L x Lk-1 -> L

#

#

#

Given We show how to build

Page 14: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 14

Sample Forward Transfer Function

0u + x0

Worst

01 + x0

00 + x0

Worst

Best Best

01 + 00 00 + 00

01 + 10 00 + 10

Worst

Best Best

01 00

11 10

Worst

x1

x0

xu

We resort to conservative approximations

Page 15: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 15

Induction Variable Analysis

• We complement the data-flow with induction variable analysis

• We determine the range for the linear loop induction variables

• j’s range is 0-10, 4 bits: uuuu is an upper bound for its

value

for (i=0; i < 5; i++) j = 2*i;

Page 16: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 16

Implementation for C

• Suif compiler passes

• Intraprocedural, no pointer analysis

• 1100 lines/second on PIII/600

• “Validated” algorithm through code instrumentation

• We only deal with scalars

Page 17: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 17

Implementation for Reconfigurable Hardware

• Part of a standalone compiler/CAD tool for DIL, a hardware description language

• DIL allows widths to be unspecified

• Width inference is used to bound precision and reduce hardware

• Produce smaller and faster hardware

Page 18: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 18

0

5

10

15

20

25

30

35

40

45

bits

top bits

top bytes

SPECint 95

“Useless” Data (Dynamic)

Mediabench mean

Per

cent

Page 19: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 19

Size Histograms (Dynamic)

124.m88ksim

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

original induction bitvalue both

g721_d

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

original induction bitvalue both

32 bits

28 bits

24 bits

20 bits

16 bits

12 bits

8 bits

4 bits

Page 20: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 20

0

10

20

30

40

50

60

70

80

90

100

Perc

en

t im

pro

vem

en

t

8bit 1bit

Circuit Reduction forReconfigurable Hardware

Page 21: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 21

Conclusions (1)

• Wide data values often inappropriate

• Reducing width can lead to performance increase

• It is worth to explore architectures which can better exploit useless bits

Page 22: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 22

Conclusions (2)

• Static bit-value analysis is very powerful

• Efficient data-flow algorithm for bit-value inference

• Can pass to compiler width hints using masks

Page 23: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

Backup slides

Page 24: BitValue: Detecting and Exploiting Narrow Bitwidth Computations Mihai Budiu Carnegie Mellon University mihaib@cs.cmu.edu joint work with Majd Sakr, Kip

08/29/00 Narrow Bitwidths / Europar 00 24

Sources of Width Reduction

• Array index calculations

• Loop induction variables

• Masking and shifting