Dark Silicon and Architecture Support for Disciplined Approximate Programming

30
Dark Silicon & Architecture Support for Disciplined Approximate Programming Department of Computer Engineering University of Guilan October 2012 Mehran Alidoost Nia Advanced Computer Architecture

Transcript of Dark Silicon and Architecture Support for Disciplined Approximate Programming

Dark Silicon &

Architecture Support for

Disciplined Approximate

Programming

Department of Computer Engineering University of Guilan October 2012

Mehran Alidoost Nia

Advanced Computer Architecture

Overview

• Background of Architecture Support

• Introduction to Disciplined Approximate

Programming

• Precise and approximate computation

• ISA extension for Approximation

• Design Space

• Truffle: A Dual-Voltage Microarchitecture

for Disciplined Approximation

Architecture Support for Disciplined Approximate Programming 2

Overview (cont)

• Truffle’s Microarchitectural Constructs

• Experimental Results

• Related Work

• Conclusion

Architecture Support for Disciplined Approximate Programming 3

Backgrounds of Architecture Support

• emerging platforms in all forms and scales, from sensor

networks to exascale systems

• power, energy, and thermal management

• distributed and cloud computing

• heterogeneous architectures; graphics and media processing

• memory and storage technologies and architectures

• security, reliability and availability

• new computing models, including molecular, biological, and

quantum computing

Architecture Support for Disciplined Approximate Programming 4

Introduction

• What is Disciplined Approximate Programming?

Disciplined approximate programming lets

programmers declare which parts of a program

can be computed approximately and

consequently at a lower energy cost.

• Energy consumption is a first-class concern in

computer systems design.

Architecture Support for Disciplined Approximate Programming 5

Approximate VS Precise Programming

• The idea is that power use can be reduced by

allowing processing components to make a

few mistakes. By managing the probability of

errors and limiting which calculations produce

errors, it’s possible to both cut energy

demands and boost performance.

• like hardware for adding and multiplying

numbers with a few mistakes!!!

Architecture Support for Disciplined Approximate Programming 6

Compiler RequirementsSoft Slices Problem

• Soft Slices Problem- the parts of programs that

may be safely subjected to approximate

computation.

• Compiler should be able to detect and realize

these sections of programs.

• The hardware is free to use approximate storage

and computation for the soft slices without

performing dynamic safety checks.

Architecture Support for Disciplined Approximate Programming 7

Dark Silicon ProblemWhen Moore's Law gets too hot to handle

Dark silicon refers to the huge swaths of silicon

transistors on today’s chips that are underused

because there is not enough power to utilize all

the transistors at the same time.

power density- The overall effect is to force the chip

with many cores to shut most of these cores down to

avoid over-heating, and to move work from core to

core to spread the heat across the chip.

Architecture Support for Disciplined Approximate Programming 8

Architecture Support for Disciplined Approximate Programming 9

We have relied on multicore scaling for over five years.

2000 2005 2010 2015

Pentium

Extreme

Dual-Core

Core 2

Quad-Core

i7 980x

Hex-Core

?

Overview of Multicore Scaling

Solutions …

Architecture Support for Disciplined Approximate Programming 10

Throttling, is a technique in computer

architecture whereby the frequency of a

microprocessor can be automatically adjusted to

conserve power or to reduce the amount of heat

Migrate tasks from one core to another

Greendroid project, which replaces frequently

executed program sections with hard-coded

circuits

Truffle (An Approximate Architecture)

ISA Extension for Approximation

Architecture Support for Disciplined Approximate Programming 11

With disciplined approximate programming, a

program is decomposed into two components:

one that runs precisely and another that runs

approximately

We propose an ISA that enables a compiler to

communicate where approximation is allowed.

Guarantee

Architecture Support for Disciplined Approximate Programming 12

Approximation carrying no guarantees but only

an expectation of best effort computation!!

By providing no guarantees for approximate

computation, the ISA permits a full range of

approximation techniques.

Requirements for the ISA

Architecture Support for Disciplined Approximate Programming 13

• Approximate computation must be

controllable at an instruction

• The ISA must support approximate storage.

(in registers, caches, and main memory)

• It must be possible to transition data between

approximate and precise storage.

• Precise instructions, where approximation is

not explicitly enabled,must carry traditional

semantic guarantees.

Requirements for the ISA (cont)

Architecture Support for Disciplined Approximate Programming 14

• Approximation must be confined to

predictable areas. For example, address

computation for memory accesses must

always be precise; approximate store

instructions should not be allowed to write to

arbitrary memory locations.

ISA Extensions for Approximation

Architecture Support for Disciplined Approximate Programming 15

These instructions are based on the Alpha instruction set.

Approximate Operations

Architecture Support for Disciplined Approximate Programming 16

• Approximate Operations The extended ISA

provides approximate versions of all integer,

floating-point, and bitwise operation

instructions provided by the original ISA.

• These instructions have the same form as their

precise equivalents but carry no guarantees

about their output values.

Approximate Registers

Architecture Support for Disciplined Approximate Programming 17

• Each register in the architecture is, at any

point in time, in either precise mode or

approximate mode.

• The compiler does not explicitly set register

modes. Instead, the precision of a register is

implicitly defined based on the precision of

the last instruction that wrote to it.

Design Space

Architecture Support for Disciplined Approximate Programming 18

• all fetched instructions need to be decoded

precisely and their target and source register indices

need to be identified without error. However, the

content of those registers may be approximate and

the functional units operating on the data may

operate approximately.

• Memory addresses must be error-free, but the data

retrieved from the memory system can be incorrect

when that data is marked as approximate.

OOO pipeline

Architecture Support for Disciplined Approximate Programming 19

• The data movement/processing plane of the processor pipeline.

• Approximation-aware structures are shaded.

• The instruction control plane is kept precise. (not shown)

Dual-Voltage

Architecture Support for Disciplined Approximate Programming 20

• One way to provide precise behavior is to run critical

structures at a safe voltage.

• Error correction mechanisms could be used for critical

structures and disabled for the data

movement/processing plane while executing

approximate instructions.

• Using two voltage lines: one for precise operation and

one for approximate operation.

• VddL & VddH (that VddL must be determined

dynamic or static by accuracy of approximation)

Truffle’s Microarchitectural Constructs

Architecture Support for Disciplined Approximate Programming 21

• dual-voltage microarchitecture, called Truffle.

Experimental Results

Architecture Support for Disciplined Approximate Programming 22

• goals in evaluating Truffle are to determine

the energy savings brought by disciplined

approximation and where the energy goes.

• EnerJ is a programming language supporting

disciplined approximation. Using a type

system, EnerJ provides a static guarantee,

ensuring that the approximate part of a

program cannot affect the precise portion.

Benchmarks

Architecture Support for Disciplined Approximate Programming 23

We examine nine benchmark programs written in the

EnerJ language, which is an extension to Java.

Energy Saving Statistics

Architecture Support for Disciplined Approximate Programming 24

Percentage of Approximate Events

Architecture Support for Disciplined Approximate Programming 25

Percentage energy reduction (VddL=0.75)

Architecture Support for Disciplined Approximate Programming 26

error detection/correction for the microarchitectural

structures that need to behave precisely.

Conclusion

Architecture Support for Disciplined Approximate Programming 27

• Dual-voltage microarchitectures can realize

energy savings by providing both approximate

and precise computation to be controlled at a

fine grain by the compiler

• high-level microarchitecture that supports

interleaved high- and low-voltage operations

• Experimental results show energy savings up

to 43%

References

Architecture Support for Disciplined Approximate Programming 28

1. H.Esmaeilzadeh, A.Sampson, L.Ceze, D.Burger, Architecture support for disciplined

approximate programming, ASPLOS '12 Proceedings of the seventeenth

international conference on Architectural Support for Programming Languages and

Operating Systems, 2012.

2. H.Esmaeilzadeh, A.Sampson, M.Ringenburg, D.Grossman, D.Burger, Addressing

Dark Silicon Challenges with Disciplined Approximate Computing, Dark Silicon

Workshop, 2012.

3. A.Sampson, W.Dietl, E.Fortuna, D.Gnanapragasam, D.Grossman, EnerJ:

approximate data types for safe and general low-power computation, Proceedings

of the 32nd ACM SIGPLAN conference on Programming language design and

implementation, 2011.

4. Green IT review, Approximate computation means greener computer chips,

http://www.thegreenitreview.com, 2012.

5. Ch.Crispin, Dark Silicon - When Moore's Law gets too hot to handle,

http://www.cs.york.ac.uk, 2012.

6. Green Droid, Using Dark Silicon to Improve Smartphone Processors,

http://greendroid.ucsd.edu/, 2011.

Question?

Architecture Support for Disciplined Approximate Programming 29

Thanks

Architecture Support for Disciplined Approximate Programming 30