Table of Contents
Fetching ...

Approximate Computing Survey, Part I: Terminology and Software & Hardware Approximation Techniques

Vasileios Leon, Muhammad Abdullah Hanif, Giorgos Armeniakos, Xun Jiao, Muhammad Shafique, Kiamal Pekmestzi, Dimitrios Soudris

TL;DR

This survey defines a rigorous framework for Approximate Computing, presenting a cross-stack taxonomy of software and hardware approximation techniques and a principled methodology for analyzing accuracy versus resource gains. It introduces foundational terminology and design principles, then categorizes software approaches (e.g., loop perforation, memory skipping, memoization, relaxed synchronization, precision scaling, data sampling, and programming languages) as well as hardware techniques (CFA, VOS, OC) with representative methods for adders, multipliers, dividers, and synthesis. A qualitative and limited quantitative comparison highlights workload- and architecture-dependent trade-offs, showing substantial energy/performance benefits in many light- to moderate-load scenarios and underscoring the need for cross-layer optimization. The paper argues that combining multiple knobs and cross-layer strategies yields the most significant gains, and sets the stage for Part II, which will delve into application-specific approximations and architecture-level designs in processors and memory systems. Overall, the work establishes a comprehensive, technique-rich foundation for advancing energy-efficient, approximate computing across the entire computing stack.

Abstract

The rapid growth of demanding applications in domains applying multimedia processing and machine learning has marked a new era for edge and cloud computing. These applications involve massive data and compute-intensive tasks, and thus, typical computing paradigms in embedded systems and data centers are stressed to meet the worldwide demand for high performance. Concurrently, over the last 15 years, the semiconductor industry has established power efficiency as a first-class design concern. As a result, the community of computing systems is forced to find alternative design approaches to facilitate high-performance and power-efficient computing. Among the examined solutions, Approximate Computing has attracted an ever-increasing interest, which has resulted in novel approximation techniques for all the layers of the traditional computing stack. More specifically, during the last decade, a plethora of approximation techniques in software (programs, frameworks, compilers, runtimes, languages), hardware (circuits, accelerators), and architectures (processors, memories) have been proposed in the literature. The current article is Part I of a comprehensive survey on Approximate Computing. It reviews its motivation, terminology and principles, as well it classifies the state-of-the-art software & hardware approximation techniques, presents their technical details, and reports a comparative quantitative analysis.

Approximate Computing Survey, Part I: Terminology and Software & Hardware Approximation Techniques

TL;DR

This survey defines a rigorous framework for Approximate Computing, presenting a cross-stack taxonomy of software and hardware approximation techniques and a principled methodology for analyzing accuracy versus resource gains. It introduces foundational terminology and design principles, then categorizes software approaches (e.g., loop perforation, memory skipping, memoization, relaxed synchronization, precision scaling, data sampling, and programming languages) as well as hardware techniques (CFA, VOS, OC) with representative methods for adders, multipliers, dividers, and synthesis. A qualitative and limited quantitative comparison highlights workload- and architecture-dependent trade-offs, showing substantial energy/performance benefits in many light- to moderate-load scenarios and underscoring the need for cross-layer optimization. The paper argues that combining multiple knobs and cross-layer strategies yields the most significant gains, and sets the stage for Part II, which will delve into application-specific approximations and architecture-level designs in processors and memory systems. Overall, the work establishes a comprehensive, technique-rich foundation for advancing energy-efficient, approximate computing across the entire computing stack.

Abstract

The rapid growth of demanding applications in domains applying multimedia processing and machine learning has marked a new era for edge and cloud computing. These applications involve massive data and compute-intensive tasks, and thus, typical computing paradigms in embedded systems and data centers are stressed to meet the worldwide demand for high performance. Concurrently, over the last 15 years, the semiconductor industry has established power efficiency as a first-class design concern. As a result, the community of computing systems is forced to find alternative design approaches to facilitate high-performance and power-efficient computing. Among the examined solutions, Approximate Computing has attracted an ever-increasing interest, which has resulted in novel approximation techniques for all the layers of the traditional computing stack. More specifically, during the last decade, a plethora of approximation techniques in software (programs, frameworks, compilers, runtimes, languages), hardware (circuits, accelerators), and architectures (processors, memories) have been proposed in the literature. The current article is Part I of a comprehensive survey on Approximate Computing. It reviews its motivation, terminology and principles, as well it classifies the state-of-the-art software & hardware approximation techniques, presents their technical details, and reports a comparative quantitative analysis.
Paper Structure (27 sections, 5 figures, 5 tables)

This paper contains 27 sections, 5 figures, 5 tables.

Figures (5)

  • Figure 1: The Approximate Computing stack: approximation techniques in the design abstraction layers.
  • Figure 2: Organization of the proposed two-part survey on Approximate Computing.
  • Figure 3: Classification of SW approximation techniques in 6 classes: Selective Task Skipping, Approximate Memoization, Relaxed Synchronization, Precision Scaling, Data Sampling, and Approximate Programming Languages.
  • Figure 4: Classification of HW approximation techniques in 3 classes: Circuit Functional Approximation, Voltage Over-Scaling and Over-Clocking.
  • Figure 5: Classification and comparative analysis of the most remarkable hardware approximation works with respect to their workload complexity, baseline bit precision and an accuracy loss threshold (1% and 5%). The leafs present the corresponding work along with their top results in energy reduction.