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

We present a novel method allowing one to approximate complex arithmetic circuits with formal guarantees on the approximation error. The method integrates in a unique way formal techniques for approximate equivalence checking into a search-based circuit optimisation algorithm. The key idea of our approach is to employ a novel search strategy that drives the search towards promptly verifiable approximate circuits. The method was implemented within the ABC tool and extensively evaluated on functional approximation of multipliers (with up to 32-bit operands) and adders (with up to 128-bit operands). Within a few hours, we constructed a high-quality Pareto set of 32-bit multipliers providing trade-offs between the circuit error and size. This is for the first time when such complex approximate circuits with formal error guarantees have been derived, which demonstrates an outstanding performance and scalability of our approach compared with existing methods that have either been applied to the approximation of multipliers limited to 8-bit operands or statistical testing has been used only. Our approach thus significantly improves capabilities of the existing methods and paves a way towards an automated design process of provably-correct circuit approximations.

[1]  Julian Francis Miller,et al.  Cartesian genetic programming , 2000, GECCO '10.

[2]  Lukás Sekanina,et al.  Evolutionary Approach to Approximate Digital Circuits Design , 2015, IEEE Transactions on Evolutionary Computation.

[3]  Fabrizio Lombardi,et al.  A Comparative Review and Evaluation of Approximate Adders , 2015, ACM Great Lakes Symposium on VLSI.

[4]  Wei Luo,et al.  Joint precision optimization and high level synthesis for approximate computing , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[5]  Lukás Sekanina,et al.  ADAC: Automated Design of Approximate Circuits , 2018, CAV.

[6]  Sherief Reda,et al.  Automated High-Level Generation of Low-Power Approximate Computing Circuits , 2019, IEEE Transactions on Emerging Topics in Computing.

[7]  André Rossi,et al.  Verification of gate-level arithmetic circuits by function extraction , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[8]  Scott A. Mahlke,et al.  Rumba: An online quality management system for approximate computing , 2015, 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA).

[9]  Muhammad Shafique,et al.  A low latency generic accuracy configurable adder , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[10]  Fabrizio Lombardi,et al.  A comparative evaluation of approximate multipliers , 2016, 2016 IEEE/ACM International Symposium on Nanoscale Architectures (NANOARCH).

[11]  Puneet Gupta,et al.  Trading Accuracy for Power in a Multiplier Architecture , 2011, J. Low Power Electron..

[12]  Jie-Hong Roland Jiang,et al.  When Boolean Satisfiability Meets Gaussian Elimination in a Simplex Way , 2012, CAV.

[13]  Supratik Chakraborty,et al.  Approximate Probabilistic Inference via Word-Level Counting , 2015, AAAI.

[14]  Rolf Drechsler,et al.  Formal verification of integer multipliers by combining Gröbner basis with logic reduction , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[15]  Alexandre Yakovlev,et al.  Energy-efficient approximate multiplier design using bit significance-driven logic compression , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.

[16]  Glenn Reinman,et al.  Dynamically adaptive and reliable approximate computing using light-weight error analysis , 2014, 2014 NASA/ESA Conference on Adaptive Hardware and Systems (AHS).

[17]  Muhammad Shafique,et al.  Probabilistic Error Modeling for Approximate Adders , 2017, IEEE Transactions on Computers.

[18]  Rolf Drechsler,et al.  Approximation-aware rewriting of AIGs for error tolerant applications , 2016, 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[19]  Cunxi Yu,et al.  Analyzing Imprecise Adders Using BDDs -- A Case Study , 2016, 2016 IEEE Computer Society Annual Symposium on VLSI (ISVLSI).

[20]  Kaushik Roy,et al.  Design of power-efficient approximate multipliers for approximate artificial neural networks , 2016, 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[21]  Lukás Sekanina,et al.  EvoApproxSb: Library of approximate adders and multipliers for circuit design and benchmarking of approximation methods , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.

[22]  Robert K. Brayton,et al.  ABC: An Academic Industrial-Strength Verification Tool , 2010, CAV.

[23]  Kaushik Roy,et al.  Substitute-and-simplify: A unified design paradigm for approximate and quality configurable circuits , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[24]  Muhammad Shafique,et al.  Invited: Cross-layer approximate computing: From logic to architectures , 2016, 2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[25]  Fabrizio Lombardi,et al.  A Review, Classification, and Comparative Evaluation of Approximate Arithmetic Circuits , 2017, ACM J. Emerg. Technol. Comput. Syst..

[26]  Kaushik Roy,et al.  SALSA: Systematic logic synthesis of approximate circuits , 2012, DAC Design Automation Conference 2012.

[27]  Lukás Sekanina,et al.  Towards low power approximate DCT architecture for HEVC standard , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.

[28]  Kaushik Roy,et al.  MACACO: Modeling and analysis of circuits for approximate computing , 2011, 2011 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[29]  Sparsh Mittal,et al.  A Survey of Techniques for Approximate Computing , 2016, ACM Comput. Surv..

[30]  Natalie D. Enright Jerger,et al.  Proteus: Exploiting Numerical Precision Variability in Deep Neural Networks , 2016, ICS.