Skip to main content

Design Space Exploration Tools

  • Chapter
  • First Online:
Approximate Computing Techniques

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 79.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 99.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 129.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. dcadmin, Rebooting the IT Revolution: A Call to Action (2015). https://www.semiconductors.org/resources/rebooting-the-it-revolution-a-call-to-action-2/

  2. Mittal, S. (2016). A survey of techniques for approximate computing. ACM Comput. Surv. 48, 1–33 (2016).

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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).

    Google Scholar 

  5. 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).

    Google Scholar 

  6. Almurib, H. A., Kumar, T. N., & Lombardi, F. (2018). Approximate DCT image compression using inexact computing. IEEE Transactions on Computers, 67, 149–159 (2018).

    Article  MathSciNet  Google Scholar 

  7. 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.

    Chapter  Google Scholar 

  8. 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).

    Article  Google Scholar 

  9. 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).

    Google Scholar 

  10. 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).

    Article  Google Scholar 

  11. 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.

    Google Scholar 

  12. 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).

    Article  Google Scholar 

  13. 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.

    Google Scholar 

  14. 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).

    Article  Google Scholar 

  15. 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).

    Google Scholar 

  16. 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).

    Google Scholar 

  17. 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)

    Google Scholar 

  18. 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.

    Google Scholar 

  19. 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).

    Google Scholar 

  20. Sutherland, M., Miguel, J. S., & Jerger, N. E. (2015). Texture cache approximation on GPUs. In Workshop on Approximate Computing Across the Stack (p. 3).

    Google Scholar 

  21. 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).

    Google Scholar 

  22. 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).

    Article  Google Scholar 

  23. 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).

    Google Scholar 

  24. 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.

    Chapter  Google Scholar 

  25. 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).

    Google Scholar 

  26. 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).

    Google Scholar 

  27. 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).

    Google Scholar 

  28. 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).

    Google Scholar 

  29. 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).

    Google Scholar 

  30. Č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).

    Google Scholar 

  31. 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.

    Google Scholar 

  32. 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).

    Article  Google Scholar 

  33. 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).

    Google Scholar 

  34. De Micheli, G. (1994). Synthesis and optimization of digital circuits. New York: McGraw Hill.

    Google Scholar 

  35. 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.

    Chapter  Google Scholar 

  36. Geyer, C. J. (1992). Practical Markov chain Monte Carlo. Statistical Science, 7(4), 473–483 (1992)

    Google Scholar 

  37. Hastings, W. K. (1970). Monte Carlo sampling methods using Markov chains and their applications. Biometrika, 57(1), 97–109 (1970)

    Google Scholar 

  38. 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.

    Chapter  Google Scholar 

  39. 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.

    Google Scholar 

  40. 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).

    Google Scholar 

  41. 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.

    Article  Google Scholar 

  42. 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.

    Chapter  Google Scholar 

  43. Wolf, C., & Glaser, J. (2013). Yosys - A free verilog synthesis suite. In Proceedings of the 21st Austrian Workshop on Microelectronics (Austrochip) (p. 6).

    Google Scholar 

  44. 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.

    Article  Google Scholar 

  45. 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).

    Google Scholar 

  46. 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.

    Google Scholar 

  47. 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).

    Google Scholar 

  48. 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.

    Chapter  Google Scholar 

  49. 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).

    Google Scholar 

  50. Sabelfeld, A., & Myers, A. (2003). Language-based information-flow security. IEEE Journal on Selected Areas in Communications, 21, 5–19.

    Article  Google Scholar 

  51. Zeller, A., & Hildebrandt, R. (2002). Simplifying and isolating failure-inducing input. IEEE Transactions on Software Engineering, 28(2), 183–200.

    Article  Google Scholar 

  52. 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.

    Google Scholar 

  53. 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.

    Article  Google Scholar 

  54. Barone, S., Traiola, M., Barbareschi, M., & Bosio, A. (2021). Multi-objective application-driven approximate design method. IEEE Access, 9, 86975–86993.

    Article  Google Scholar 

  55. 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.

    Chapter  Google Scholar 

  56. Barone, S. (2021). Iideaa-docker, September 2021.

    Google Scholar 

  57. 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).

    Google Scholar 

  58. 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.

    Article  Google Scholar 

  59. 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).

    Google Scholar 

  60. 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).

    Google Scholar 

  61. Bayer, F. M., & Cintra, R. J. (2012). DCT-like transform for image compression requires 14 additions only. Electronics Letters, 48(15), 919.

    Article  Google Scholar 

  62. Cintra, R. J., & Bayer, F. M. (2011). A DCT approximation for image compression. IEEE Signal Processing Letters, 18, 579–582 (2011)

    Article  Google Scholar 

  63. 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.

    Article  Google Scholar 

  64. 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.

    Article  Google Scholar 

  65. 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

    Article  Google Scholar 

  66. 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

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Salvatore Barone .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics