Constructing Summary Statistics for Approximate Bayesian ...
Dark Silicon and Architecture Support for Disciplined Approximate Programming
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.
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.