Abstract
Emerging fields like big data and IoT have brought a number of challenges for hardware as well as software design community. Some of the major challenges are to scale the computational and memory resources and the efficiency of the processing devices as per the growing needs. In the past few years, a number of fields have emerged for addressing these challenges. We focus on one of the prominent paradigms that have the potential to improve the resource efficiency regardless of the underlying technology, i.e., approximate computing (AC). AC aims at relaxing the bounds of exact computing to provide new opportunities for achieving gains in terms of energy, power, performance, and/or area efficiency at the cost of reduced output quality, typically within the tolerable range. We first provide an overview of AC and the techniques which are commonly being employed at different abstraction levels for alleviating the resource requirements of computationally intensive applications. Afterwards, a detailed discussion on component-level approximations and their probabilistic behavior by considering approximate adders and multipliers is presented. At the next step, a methodology used to construct efficient accelerators from these components will be discussed. The discussion will then be extended to approximate memories and runtime management systems. Toward the end of the chapter, we present a methodology for designing energy efficient many-core systems based upon approximate components followed by the challenges in adopting a cross-layer approach for designing highly energy, power, and performance-efficient systems.
Original language | English (US) |
---|---|
Title of host publication | Many-Core Computing |
Publisher | Institution of Engineering and Technology |
Pages | 497-522 |
Number of pages | 26 |
ISBN (Electronic) | 9781785615825 |
DOIs | |
State | Published - Jan 1 2019 |
Keywords
- AC
- Adders
- Approximate adders
- Approximate computing
- Approximate multipliers
- Component-level approximations
- Computational resources
- Computationally intensive applications
- Cross-layer approach
- Energy efficient many-core systems
- Exact computing
- Logic and switching circuits
- Memory architecture
- Memory resources
- Multiplying circuits
- Multiprocessing systems
- Multiprocessing systems
- Operating systems
- Output quality
- Parallel architecture
- Parallel architectures
- Power aware computing
- Processing devices
- Resource allocation
- Runtime management systems
- Storage system design
ASJC Scopus subject areas
- General Computer Science