Abstract
The Approximate Computing design paradigm has repeatedly shown to be well suited to the needs of modern applications, especially those that interact with the physical world and process large amounts of data. By leveraging the presence of error-tolerant data and algorithms and the perceptual limitations of end-users, it allows to selectively relax the correctness requirements, achieving great performance enhancement and admitting a negligible output quality loss. Unfortunately, applying Approximate Computing to its full potential requires addressing several challenges: there is neither a generic methodology for identifying approximable code or circuit parts nor an approach for selecting the most suitable approximate techniques to apply. However, several tools have been proposed that seek to automate or at least guide part of the approximation process. In this chapter, we first discuss the state of the art for automatic tools for Approximate Computing, targeting digital circuits and software applications. We then introduce \(\mathbb {I}\text{ {DE}}\mathbb {A}\), an extendible tool suite that allows to describe Approximate Computing techniques, apply them to C/C++ code, and explore the design space of the obtained approximate variants to find an estimate of the Pareto front.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
dcadmin, Rebooting the IT Revolution: A Call to Action (2015). https://www.semiconductors.org/resources/rebooting-the-it-revolution-a-call-to-action-2/
Mittal, S. (2016). A survey of techniques for approximate computing. ACM Comput. Surv. 48, 1–33 (2016).
Chippa, V. K., Chakradhar, S. T., Roy, K., & Raghunathan, A. (2013). Analysis and characterization of inherent application resilience for approximate computing. In Proceedings of the 50th Annual Design Automation Conference on - DAC ’13, Austin, TX (p. 1) New York: ACM Press.
Venkataramani, S., Chakradhar, S. T., Roy, K., & Raghunathan, A. (2015). Approximate computing and the quest for computing efficiency. In 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC), June 2015 (pp. 1–6).
Rahimi, A., Ghofrani, A., Cheng, K.-T., Benini, L., & Gupta, R. K. (2015). Approximate associative memristive memory for energy-efficient GPUs. In 2015 Design, Automation Test in Europe Conference Exhibition (DATE), March 2015 (pp. 1497–1502).
Almurib, H. A., Kumar, T. N., & Lombardi, F. (2018). Approximate DCT image compression using inexact computing. IEEE Transactions on Computers, 67, 149–159 (2018).
Samadi, M., Lee, J., Jamshidi, D. A., Hormati, A., & Mahlke, S. (2013). SAGE: Self-tuning approximation for graphics engines. In Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture - MICRO-46, Davis, CA (pp. 13–24) New York: ACM Press.
Chippa, V. K., Mohapatra, D., Roy, K., Chakradhar, S. T., & Raghunathan, A. (2014). Scalable effort hardware design. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 22, 2004–2016 (2014).
Raha, A., Venkataramani, S., Raghunathan, V., & Raghunathan, A. (2015). Quality configurable reduce-and-rank for energy efficient approximate computing. In 2015 Design, Automation Test in Europe Conference Exhibition (DATE), March 2015 (pp. 665–670).
Sartori, J., & Kumar, R. (2013). Branch and data herding: Reducing control and memory divergence for error-tolerant GPU applications. IEEE Transactions on Multimedia, 15, 279–290 (2013).
Sidiroglou-Douskos, S., Misailovic, S., Hoffmann, H., & Rinard, M. (2011). Managing performance vs. accuracy trade-offs with loop perforation. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering - SIGSOFT/FSE ’11, Szeged, Hungary (p. 124). New York: ACM Press.
Yazdanbakhsh, A., Pekhimenko, G., Thwaites, B., Esmaeilzadeh, H., Mutlu, O., & Mowry, T. C. (2016). RFVP: Rollback-free value prediction with safe-to-approximate loads. ACM Transactions on Architecture and Code Optimization, 12, 1–26 (2016).
Samadi, M., Jamshidi, D. A., Lee, J., & Mahlke, S. (2014). Paraprox: Pattern-based approximation for data parallel applications. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems, Salt Lake City, UT (pp. 35–50). New York: ACM.
Tong, J. Y. F., Nagle, D., & Rutenbar, R. A. (2000). Reducing power by optimizing the necessary precision/range of floating-point arithmetic. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 8, 273–286 (2000).
Fang, F., Chen, T., & Rutenbar, R. A. (2002). Floating-point bit-width optimization for low-power signal processing applications. In 2002 IEEE International Conference on Acoustics, Speech, and Signal Processing, May 2002 (Vol. 3, pp. III–3208–III–3211).
Yeh, T., Faloutsos, P., Ercegovac, M., Patel, S., & Reinman, G. (2007). The art of deception: Adaptive precision reduction for area efficient physics acceleration. In 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007), December (pp. 394–406).
Osborne, W., Coutinho, J., Luk, W., & Mencer, O. (2008). Power-aware and branch-aware word-length optimization. In 2008 16th International Symposium on Field-Programmable Custom Computing Machines, April 2008 (pp. 129–138)
Rubio-González, C., Nguyen, C., Nguyen, H. D., Demmel, J., Kahan, W., Sen, K., Bailey, D. H., Iancu, C., & Hough, D. (2013). Precimonious: Tuning assistant for floating-point precision. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, Denver, CO, November 2013 (pp. 1–12). New York: ACM.
Keramidas, G., Kokkala, C., & Stamoulis, I. (2015). Clumsy value cache: An approximate memoization technique for mobile GPU fragment shaders. In Workshop on Approximate Computing (WAPCO’15) (p. 6).
Sutherland, M., Miguel, J. S., & Jerger, N. E. (2015). Texture cache approximation on GPUs. In Workshop on Approximate Computing Across the Stack (p. 3).
Traiola, M., Savino, A., Barbareschi, M., Carlo, S. D., & Bosio, A. (2018). Predicting the impact of functional approximation: From component- to application-level. In 2018 IEEE 24th International Symposium on On-Line Testing And Robust System Design (IOLTS), July 2018 (pp. 61–64).
Traiola, M., Savino, A., & Di Carlo, S. (2019). Probabilistic estimation of the application-level impact of precision scaling in approximate computing applications. Microelectronics Reliability, 102, 113309 (2019).
Mrazek, V., Hanif, M. A., Vasicek, Z., Sekanina, L., & Shafique, M. (2019). autoAx: An automatic design space exploration and circuit building methodology utilizing libraries of approximate components. In 2019 56th ACM/IEEE Design Automation Conference (DAC), June 2019 (pp. 1–6).
Sekanina, L., Vasicek, Z., & Mrazek, V. (2019). Automated search-based functional approximation for digital circuits. In S. Reda & M. Shafique (Eds.) Approximate Circuits (pp. 175–203). Cham: Springer International Publishing.
Venkataramani, S., Sabne, A., Kozhikkottu, V., Roy, K., & Raghunathan, A. (2012). SALSA: Systematic logic synthesis of approximate circuits. In DAC Design Automation Conference 2012, June 2012 (pp. 796–801).
Venkataramani, S., Roy, K., & Raghunathan, A. (2013). Substitute-and-simplify: A unified design paradigm for approximate and quality configurable circuits. In 2013 Design, Automation Test in Europe Conference Exhibition (DATE), March 2013 (pp. 1367–1372).
Ranjan, A., Raha, A., Venkataramani, S., Roy, K., & Raghunathan, A. (2014). ASLAN: Synthesis of approximate sequential circuits. In 2014 Design, Automation Test in Europe Conference Exhibition (DATE), March 2014 (pp. 1–6).
Nepal, K., Li, Y., Bahar, R. I., & Reda, S. (2014). ABACUS: A technique for automated behavioral synthesis of approximate computing circuits. In 2014 Design, Automation Test in Europe Conference Exhibition (DATE), March 2014 (pp. 1–6).
Liu, G., & Zhang, Z. (2017). Statistically certified approximate logic synthesis. In 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), November 2017 (pp. 344–351).
Češka, M., Matyaš, J., Mrazek, V., Sekanina, L., Vasicek, Z., & Vojnar, T. (2017). Approximating complex arithmetic circuits with formal error guarantees: 32-bit multipliers accomplished. In 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD), November 2017 (pp. 416–423).
Hashemi, S., Tann, H., & Reda, S. (2018). BLASYS: Approximate logic synthesis using Boolean matrix factorization. In Proceedings of the 55th Annual Design Automation Conference, San Francisco, CA, June 2018 (pp. 1–6). New York: ACM.
Witschen, L., Awais, M., Ghasemzadeh Mohammadi, H., Wiersema, T., & Platzner, M. (2019). CIRCA: Towards a modular and extensible framework for approximate circuit generation. Microelectronics Reliability, 99, 277–290 (2019).
Gaffar, A., Mencer, O., Luk, W., Cheung, P., & Shirazi, N. (2002). Floating-point bit width analysis via automatic differentiation. In 2002 IEEE International Conference on Field-Programmable Technology, 2002. (FPT). Proceedings, December 2002 (pp. 158–165).
De Micheli, G. (1994). Synthesis and optimization of digital circuits. New York: McGraw Hill.
Liu, G., & Zhang, Z. (2017). A parallelized iterative improvement approach to area optimization for LUT-based technology mapping. In Proceedings of the 2017 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, Monterey, CA, February 2017 (pp. 147–156). New York: ACM.
Geyer, C. J. (1992). Practical Markov chain Monte Carlo. Statistical Science, 7(4), 473–483 (1992)
Hastings, W. K. (1970). Monte Carlo sampling methods using Markov chains and their applications. Biometrika, 57(1), 97–109 (1970)
Brayton, R., & Mishchenko, A. (2010). ABC: An academic industrial-strength verification tool. In International Conference on Computer Aided Verification (pp. 24–40). New York: Springer.
Han, C.-S., & Jiang,J.-H. R. (2012). When Boolean satisfiability meets Gaussian elimination in a simplex way. In D. Hutchison, T. Kanade, J. Kittler, J. M. Kleinberg, F. Mattern, J. C. Mitchell, M. Naor, O. Nierstrasz, C. Pandu Rangan, B. Steffen, M. Sudan, D. Terzopoulos, D. Tygar, M. Y. Vardi, G. Weikum, P. Madhusudan, & S. A. Seshia (Eds.), Computer Aided Verification (Vol. 7358, pp. 410–426). , Berlin, Heidelberg: Springer.
Miettinen, P., & Vreeken, J. (2011). Model order selection for Boolean matrix factorization. In Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (pp. 51–59).
Miettinen, P., & Vreeken, J. (2014). MDL4BMF: Minimum description length for Boolean matrix factorization. ACM Transactions on Knowledge Discovery from Data (TKDD), 8(4), 1–31.
Martinello, O., Marques, F. S., Ribas, R. P., & Reis, A. I. (2010). KL-cuts: A new approach for logic synthesis targeting multiple output blocks. In 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010) (pp. 777–782). New York: IEEE.
Wolf, C., & Glaser, J. (2013). Yosys - A free verilog synthesis suite. In Proceedings of the 21st Austrian Workshop on Microelectronics (Austrochip) (p. 6).
Sampson, A., Dietl, W., Fortuna, E., Gnanapragasam, D., Ceze, L., & Grossman, D. (2011). EnerJ: Approximate data types for safe and general low-power computation. ACM SIGPLAN Notices, 46(5), 11.
Ansel, J., Wong, Y. L., Chan, C., Olszewski, M., Edelman, A., & Amarasinghe, S. (2011). Language and compiler support for auto-tuning variable-accuracy algorithms. In International Symposium on Code Generation and Optimization (CGO 2011), April 2011 (pp. 85–96).
Sampson, A., Baixo, A., Ransford, B., Moreau, T., Yip, J., Ceze, L., & Oskin, M. (2015). ACCEPT: A Programmer-Guided Compiler Framework for Practical Approximate Computing. University of Washington Technical Report UW-CSE-15-01 1.2, p. 14.
Wyse, M., Baixo, A., Moreau, T., Zorn, B., Bornholt, J., Sampson, A., Ceze, L., & Oskin, M. (2015). REACT: A framework for rapid exploration of approximate computing techniques. In Workshop on Approximate Computing Across the Stack (WAX w/PLDI) (p. 3).
Roy, P., Ray, R., Wang, C., & Wong, W. F. (2014). ASAC: Automatic sensitivity analysis for approximate computing. In Proceedings of the 2014 SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems - LCTES ’14, Edinburgh (pp. 95–104). New York: ACM Press.
Mishra, A. K., Barik, R., & Paul, S. (2014). iACT: A software-hardware framework for understanding the scope of approximate computing. In Workshop on Approximate Computing Across the System Stack (WACAS) (p. 6).
Sabelfeld, A., & Myers, A. (2003). Language-based information-flow security. IEEE Journal on Selected Areas in Communications, 21, 5–19.
Zeller, A., & Hildebrandt, R. (2002). Simplifying and isolating failure-inducing input. IEEE Transactions on Software Engineering, 28(2), 183–200.
Rodrigues, R. E., Campos, V. H. S., & Pereira, F. M. Q. (2013). A fast and low-overhead technique to secure programs against integer overflows. In Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO) (pp. 1–11). New york: IEEE.
McKay, M. D., Beckman, R. J., & Conover, W. J. (2000). A comparison of three methods for selecting values of input variables in the analysis of output from a computer code. Technometrics, 42(1), 55–61.
Barone, S., Traiola, M., Barbareschi, M., & Bosio, A. (2021). Multi-objective application-driven approximate design method. IEEE Access, 9, 86975–86993.
Liefooghe, A., Basseur, M., Jourdan, L., & Talbi, E.-G. (2007). ParadisEO-MOEO: A framework for evolutionary multi-objective optimization. In S. Obayashi, K. Deb, C. Poloni, T. Hiroyasu, & T. Murata (Eds.) Evolutionary Multi-Criterion Optimization (Vol. 4403, pp. 386–400). Berlin, Heidelberg: Springer.
Barone, S. (2021). Iideaa-docker, September 2021.
Loeffler, C., Ligtenberg, A., & Moschytz, G. (1989). Practical fast 1-D DCT algorithms with 11 multiplications. In International Conference on Acoustics, Speech, and Signal Processing, May 1989 (Vol. 2, pp. 988–991).
Bouguezel, S., Ahmad, M. O., & Swamy, M. N. S. (2008). Low-complexity 8$∖times$ 8 transform for image compression. Electronics Letters, 44(21), 1249–1250.
Bouguezel, S., Ahmad, M. O., & Swamy, M. N. S. (2009). A fast 8×8 transform for image compression. In 2009 International Conference on Microelectronics - ICM, December 2009 (pp. 74–77).
Bouguezel, S., Ahmad, M. O., & Swamy, M. (2011). A low-complexity parametric transform for image compression. In 2011 IEEE International Symposium of Circuits and Systems (ISCAS), May 2011 (pp. 2145–2148).
Bayer, F. M., & Cintra, R. J. (2012). DCT-like transform for image compression requires 14 additions only. Electronics Letters, 48(15), 919.
Cintra, R. J., & Bayer, F. M. (2011). A DCT approximation for image compression. IEEE Signal Processing Letters, 18, 579–582 (2011)
Potluri, U. S., Madanayake, A., Cintra, R. J., Bayer, F. M., & Rajapaksha, N. (2012). Multiplier-free DCT approximations for RF multi-beam digital aperture-array space imaging and directional sensing. Measurement Science and Technology, 23, 114003.
Potluri, U. S., Madanayake, A., Cintra, R. J., Bayer, F. M., Kulasekera, S., & Edirisuriya, A. (2014). Improved 8-point approximate DCT for image and video compression requiring only 14 additions. IEEE Transactions on Circuits and Systems I: Regular Papers, 61, 1727–1740.
Deb, K., Pratap, A., Agarwal, S., & Meyarivan, T. (2002). A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation 6(2), 182–197. https://doi.org/10.1109/4235.996017
Lee, D. D., & Seung, H. S. (1999). Learning the parts of objects by non-negative matrix factorization. Nature, 401(6755), 788–791. https://doi.org/10.1038/44565
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Barbareschi, M., Barone, S., Mazzocca, N., Moriconi, A. (2022). Design Space Exploration Tools. In: Bosio, A., Ménard, D., Sentieys, O. (eds) Approximate Computing Techniques. Springer, Cham. https://doi.org/10.1007/978-3-030-94705-7_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-94705-7_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-94704-0
Online ISBN: 978-3-030-94705-7
eBook Packages: EngineeringEngineering (R0)