Survey Paper
SagTree: Towards efficient mutation in evolutionary circuit approximation

https://doi.org/10.1016/j.swevo.2021.100986Get rights and content

Highlights

  • We thoroughly investigate the performance of various mutation operators for Cartesian Genetic Programming in the context of automated design of complex arithmetic circuits.

  • We propose a novel mutation operator, so-called SagTree, that is tailored to circuit approximation and combines the classical single active gene mutation with a node deactivation operation.

  • We perform an extensive experimental comparison with existing mutation operators—our results, grounded on a rigorous statistical evaluation including 39 approximation problems and over 14,000 approximation runs, clearly demonstrate that the SagTree operator significantly outperforms the other operators in CGP-based circuit approximation.

  • Using the SagTree operator, we obtain complex approximate circuits providing significantly better trade-offs between energy savings and the incurred error compared to existing circuits obtained using both evolutionary and non-evolutionary state-of-the-art techniques.

Abstract

Approximate circuits that trade the chip area for the quality of results play a key role in the development of energy-aware systems. Designing complex approximate circuits is, however, a very difficult and computationally demanding process. Evolutionary approximation—in particular, the method of Cartesian Genetic Programming (CGP)—currently represents one of the most successful approaches for automated circuit approximation. In this paper, we thoroughly investigate mutation operators for CGP with respect to the performance of circuit approximation. We design a novel dedicated operator that combines the classical single active gene mutation with a node deactivation operation (eliminating a part of the circuit forming a tree from an active gate). We show that our new operator significantly outperforms other operators on a wide class of approximation problems (such as 16 bit multipliers and dividers) and thus improves the performance of the state-of-the-art approximation techniques. Our results are grounded on a rigorous statistical evaluation including 39 approximation scenarios and 14,000 runs.

Introduction

Approximate circuits are digital circuits that trade functional correctness (precision of computation) for other design objectives such as chip area or power consumption [1]. Such circuits play an important role in development of resource-efficient HW and SW systems including prominent applications such as image and video processing [2] or architectures for neural networks [3], [4]. A recent overview of techniques for design and application of approximate circuits is available in [5]. Designing approximate systems is, however, a very complex and time-demanding process trying to find optimal trade-offs between the approximation error and resource savings. Automated methods allowing one to develop such circuits are thus in high demand.

There exists a vast body of literature (see, e.g., [6], [7], [8], [9]) demonstrating that evolutionary-based algorithms are able to automatically design innovative implementations of complex approximate circuits. In particular, Cartesian Genetic Programming (CGP) [10] was able to provide high-quality trade-offs among the different design objectives [11].

There are two main challenges related to the CGP-driven circuit approximation: (1) Fast and reliable evaluation of candidate solutions that is essential for CGP to drive the exploration towards high-quality solutions. (2) Convergence of the search that directly determines the overall performance of the approximation process and thus the resulting scalability and applicability. While several circuit evaluation techniques, including parallel circuit simulation [12], formal methods [13], or statistical methods [14], have been proposed and successfully applied, dedicated search strategies or mutation operators have not yet been adequately addressed. Instead, state-of-the-art circuit approximation techniques based on CGP typically use standard CGP mutation operators to generate the offspring from the parent. This fact is also demonstrated by the existing benchmarks [8], [15] including approximate circuits that were obtained using these operators. At the same time, specific search operators and search strategies have been proposed for various other applications of CGP (see, e.g., [16], [17], [18], [19], [20], [21]). However, these operatos are not suitable for circuit approximation as they leverage various specific features of the domains for which they were introduced.

In this work, we first thoroughly study the impact of the standard mutation operators for CGP on the performance of the circuit approximation process. In the past, these operators were investigated in the context of evolutionary circuit design (from scratch) [22], [23], [24] or evolutionary circuit optimization (aiming at minimizing the number of gates) [25], [26]. Both of these tasks were previously targeted for relatively simple circuits. This paper addresses a different problem—namely, an efficient mutation mechanism for CGP-based approximation of complex circuits where the evolutionary process has to primarily remove some gates and possibly re-connect the remaining ones. In particular, we focus on the strategy that identifies the genes to be mutated and the new values of the altered genes, the mutation frequency, and the role of explicitly neutral mutations.

Further, we explore in which scenarios the so-called deactivation operations that only remove parts of the circuit can effectively drive the evolution towards high-quality circuit approximation. Note that removing a part of the circuit is a typical operation for non-evolutionary circuit approximation techniques like SALSA [27] and thus it seems promising to suitably leverage the deactivation in the mutation operator.

Finally, based on a very detailed experimental evaluation, we select the best mutation and deactivation strategy and propose a novel combined operator, called SagTree, that incorporates sub-tree deactivation into the mutation process.

In order to assess the performance and practical impact of the SagTree operator with respect to the existing operators, we consider a broad set of circuit approximation problems including several structurally different arithmetic circuits as well as various bit widths and target precisions. In total, our experiments include 39 approximation problems and over 14,000 approximation runs. We go beyond the standard analysis of the final approximate circuit and also assess the speed of convergence.

Using a rigorous statistical evaluation as well as a detailed analysis of selected results, we demonstrate that the SagTree operator provides a very robust and versatile circuit mutation strategy that significantly outperforms other existing operators used in the CGP-based approximation so far [11]. In particular, there are some hard approximation problems where our newly proposed operator is the only one able to achieve the required reduction within the given limit of 1 million generations. Moreover, for many problems, the SagTree operator improves the performance (due to reducing the number of required generations) by more than one order of magnitude. As such, the proposed mutation operator significantly improves the performance of the state-of-the-art approximation techniques.

Section snippets

Design of approximate circuits

Many important applications are inherently error resilient, and thus the precision of the involved computations can be traded for improved energy efficiency, performance, and/or chip area [1]. Various approaches exploiting this fact have been developed in recent years and presented under the umbrella of the so-called approximate computing [1], [5]. These approximations can be conducted at different system levels with circuit approximation being one of the most popular approaches. Circuit

Mutation operators in CGP

The standard CGP uses either point mutation or probabilistic mutation. The point mutation randomly modifies up to h genes of a parent genotype to create an offspring. The number of genes can be specified as the percentage of the total number of genes or as an absolute number depending on the particular implementation [10]. In probabilistic mutation, every gene is considered for mutation according to a user-defined probability. Point mutation is easier to implement and more efficient than using

Towards efficient mutation

In this section, we first discuss candidates for the best mutation and deactivation strategy and then propose a novel combined operator.

Experimental setup

The presented mutation operators were implemented in the tool called ADAC—Automatic Design of Approximate Circuits [40]. ADAC is developed as a module of ABC [41], a state-of-the-art academic tool for hardware synthesis and verification. ADAC provides several techniques for evaluating various error metrics of approximate circuits. In particular, it provides an efficient SAT-based evaluation of WCAE (recall Eq. 2), one of the most commonly used error metrics, which we consider in the following

Experimental results

We divide our experimental results into three parts:

  • 1.

    Evaluation of the existing mutation operators allowing us to choose the best candidates for the new combined operator:

    • The point operator with the maximum number of mutations set to 0.5% of the number of gates of the original circuit—the standard operator for circuit approximation further denoted as Point(PG=0.005);

    • the SAGM operator;

    • the SAGENM operator with the neutral mutation probability set to [0.1%,1%,3%], denoted, e.g., as SAGENM(PN=0.001)

Conclusion

We have demonstrated that the mutation operator for CGP has a fundamental impact on the performance and convergence of the evolution-driven circuit approximation. Using a thorough experimental evaluation, we show that the classical Point CGP operators known from the literature can be significantly improved by dedicated deactivation operations eliminating the redundant circuit logic. We have designed a new mutation operator that combines the single active gene mutation with circuit sub-tree

CRediT authorship contribution statement

Milan Češka: Conceptualization, Methodology, Supervision, Writing – original draft. Jiří Matyáš: Methodology, Software, Validation, Formal analysis, Investigation, Data curation, Visualization, Writing – original draft. Vojtěch Mrázek: Methodology, Validation, Investigation, Visualization. Lukáš Sekanina: Conceptualization, Writing – original draft, Writing – review & editing. Zdeněk Vašíček: Conceptualization, Resources, Writing – review & editing. Tomáš Vojnar: Supervision, Project

Declaration of Competing Interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Acknowledgements

This work has been partially supported the Czech Science Foundation grant (GJ20-02328Y), the JCMM Brno Ph.D. Talent scholarship program, and the FIT BUT internal project IGA FIT-S-20-6427.

References (48)

  • V. Mrazek et al.

    Evoapprox8b: Library of approximate adders and multipliers for circuit design and benchmarking of approximation methods

    DATE’17

    (2017)
  • A. Lotfi et al.

    Grater: An approximation workflow for exploiting data-level parallelism in FPGA acceleration

    DATE’16

    (2016)
  • J. Miller et al.

    Cartesian genetic programming

    Proc. of the 3rd European Conference on Genetic Programming EuroGP2000

    (2000)
  • L. Sekanina et al.

    Automated search-based functional approximation for digital circuits

    Approximate Circuits

    (2019)
  • Z. Vašíček et al.

    Efficient phenotype evaluation in cartesian genetic programming

  • M. Češka et al.

    Approximating complex arithmetic circuits with formal error guarantees: 32-bit multipliers accomplished

    Proc. of ICCAD’17

    (2017)
  • G. Liu et al.

    Statistically certified approximate logic synthesis

    Proceedings of the 36th International Conference on Computer-Aided Design

    (2017)
  • J.F. Miller

    An empirical study of the efficiency of learning boolean functions using a cartesian genetic programming approach

    (1999)
  • P. Kaufmann et al.

    Advanced techniques for the creation and propagation of modules in Cartesian genetic programming

    Genetic and Evolutionary Computation Conference, GECCO 2008

    (2008)
  • B. Goldman et al.

    Reducing wasted evaluations in cartesian genetic programming

    Lect. Notes Comput. Sci.

    (2013)
  • B.W. Goldman et al.

    Analysis of cartesian genetic programmings evolutionary mechanisms

    IEEE Trans. Evol. Comput.

    (2015)
  • J. Husa, R. Kalkreuth, A comparative study on crossover in cartesian genetic programming, in: Genetic Programming -...
  • R. Kalkreuth

    Two new mutation techniques for cartesian genetic programming

    International Joint Conference on Computational Intelligence (IJCCI’19)

    (2019)
  • V.K. Vassilev et al.

    Towards the automatic design of more efficient digital circuits

    (2000)
  • Cited by (1)

    View full text