Abstract
The complexity of data-oriented applications continually grows. The concept of approximate computing at the algorithm level aims at reducing the processing complexity to reduce the implementation cost. The implementation cost is reduced by decreasing the number of processing operations and memory exchanges. But, by modifying the original algorithm, the application output is modified and the resulting quality is degraded. Different approximate computing techniques acting at the algorithm level have been proposed to reduce the processing complexity of data-oriented applications. These techniques transform the algorithm to enable effective approximation. In the first part of this chapter, the different approaches proposed for approximate computing techniques acting at the algorithm level are presented. Two directions can be considered to reduce the complexity. The first direction is to skip part of the computation by removing some processing. The second direction is based on approximation to replace a part of the computation by a less complex processing. In the second part of this chapter, the High Efficiency Video Coding (HEVC) video codec is considered as a use-case to illustrate the use of the approximate computing techniques at the algorithmic level presented before.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Alvarez, C., Corbal, J., & Valero, M. (2005). Fuzzy memoization for floating-point multimedia applications. IEEE Transactions on Computers, 54(7), 922–927.
Amant, R. S., Yazdanbakhsh, A., Park, J., Thwaites, B., Esmaeilzadeh, H., Hassibi, A., Ceze, L., & Burger, D. (2014). General-purpose code acceleration with limited-precision analog computation. In 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA) (pp. 505–516).
Ansel, J., Chan, C., Wong, Y. L. Olszewski, M., Zhao, Q., Edelman, A., & Amarasinghe, S. (2009). Petabricks: A language and compiler for algorithmic choice. ACM Sigplan Notices, 44(6), 38–49.
Ansel, J. J. A. (2014). Autotuning Programs with Algorithmic Choice. PhD thesis, Massachusetts Institute of Technology.
Bajard, J.-C., Kla, S., & Muller, J.-M. (1994). BKM: A new hardware algorithm for complex elementary functions. IEEE Transactions on Computers, 43(8), 955–963.
BBC HEVC bistreams.
Bienia, C., Kumar, S., Singh, J. P., & Li, K. (2008). The parsec benchmark suite: Characterization and architectural implications. In Proceedings of the 17th International Conference on Parallel Architectures and Compilation Techniques (pp. 72–81). ACM.
Bonnot, J., Nogues, E., & Menard, D. (2016). New non-uniform segmentation technique for software function evaluation. In 2016 IEEE 27th International Conference on Application-specific Systems, Architectures and Processors (ASAP) (pp. 131–138). IEEE.
Bossen, F. (2012, February). Common Conditions and Software Reference Configurations. Document JCTVC-H1100, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, San Jose, CA.
Chakradhar, S. T., & Raghunathan, A. (2010). Best-effort computing: Re-thinking parallel software and hardware. In Design Automation Conference (pp. 865–870).
Chevillard, S., Joldeş, M., & Lauter, C. (2010). Sollya: An environment for the development of numerical codes. In International congress on mathematical software (pp. 28–31). Springer.
De Dinechin, F., & Tisserand, A. (2005). Multipartite table methods. IEEE Transactions on Computers, 54(3), 319–330.
Eldridge, S., Raudies, F., Zou, D., & Joshi, A. (2014). Neural network-based accelerators for transcendental function approximation. In Proceedings of the 24th Edition of the Great Lakes Symposium on VLSI, GLSVLSI ’14 (pp. 169–174). New York, NY: Association for Computing Machinery.
Esmaeilzadeh, H., Sampson, A., Ceze, L., & Burger, D. (2012). Neural acceleration for general-purpose approximate programs. In 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture (pp. 449–460). IEEE.
Fu, C.-M., Alshina, E., Alshin, A., Huang, Y.-W., Chen, C.-Y., Tsai, C.-Y., Hsu, C.-W., Lei, S.-M., Park, J.-H., & Han, W.-J. (2012, December). Sample adaptive offset in the HEVC standard. IEEE Transactions on Circuits and Systems for Video Technology, 22, 1755–1764.
Goiri, I., Bianchini, R., Nagarakatte, S., & Nguyen, T. D. (2015). Approxhadoop: Bringing approximations to MapReduce frameworks. In Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems (pp. 383–397).
Hamidouche, W., Olivier, C., Pousset, Y., & Perrine, C. (2013, April). Optimal resource allocation for Medium Grain Scalable video transmission over MIMO channels. Journal of Visual Communication and Image Representation, 24, 373–387.
Hore, A., & Ziou, D. (2010). Image quality metrics: PSNR vs. SSIM. In 2010 20th International Conference on Pattern Recognition (ICPR) (pp. 2366–2369). IEEE.
Janot, A., Vandanjon, P., & Gautier, M. (2014). A generic instrumental variable approach for industrial robot identification. IEEE Transactions on Control Systems Technology, 22(1), 132–145.
JCT-VC. (2016). HEVC reference software.
Kemal, U., Alshin, A., Alshina, E., Bossen, F., Han, W., Park, J., & Lainema, J. (2013). Motion compensated prediction and interpolation filter design in H.265/HEVC. In IEEE TCSVT.
Khan, M. U. K., Shafique, M., & Henkel, J. (2013). An adaptive complexity reduction scheme with fast prediction unit decision for HEVC intra encoding. In 2013 20th IEEE International Conference on Image Processing (ICIP) (pp. 1578–1582). IEEE.
Lee, D.-U., Cheung, R. C., Luk, W., & Villasenor, J. D. (2009). Hierarchical segmentation for hardware function evaluation. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 17(1), 103–116.
Li, R.-C., Markstein, P., Okada, J. P., & Thomas, J. W. (2001). The libm library and floating-point arithmetic for HP-UX on itanium. Technical report, Hewlett-Packard Company.
Li, S., Park, S., & Mahlke, S. (2018). Sculptor: Flexible approximation with selective dynamic loop perforation. In Proceedings of the 2018 International Conference on Supercomputing (pp. 341–351). ACM.
Linaro, D., & Storace, M. (2008, May). A method based on a genetic algorithm to find PWL approximations of multivariate nonlinear functions. In 2008 IEEE International Symposium on Circuits and Systems (pp. 336–339).
Ludwig, J. T., Nawab, S. H., & Chandrakasan, A. P. (1996). Low-power digital filtering using approximate processing. IEEE Journal of Solid-State Circuits, 31(3), 395–400.
McAfee, L., & Olukotun, K. (2015). Emeuro: A framework for generating multi-purpose accelerators via deep learning. In 2015 IEEE/ACM International Symposium on Code Generation and Optimization (CGO) (pp. 125–135).
Meher, P. K., Valls, J., Juang, T.-B., Sridharan, K., & Maharatna, K. (2009). 50 years of cordic: Algorithms, architectures, and applications. IEEE Transactions on Circuits and Systems I: Regular Papers, 56(9), 1893–1907.
Meirhaeghe, A., Boutellier, J., & Collin, J. (2019). The direction cosine matrix algorithm in fixed-point: Implementation and analysis. In ICASSP 2019 - 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 1542–1546).
Mercat, A., Arrestier, F., Hamidouche, W., Pelcat, M., & Menard, D. (2017). Constrain the Docile CTUs: An in-frame complexity allocator for HEVC intra encoders. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE.
Mercat, A., Arrestier, F., Hamidouche, W., Pelcat, M., & Menard, D. (2017). Energy reduction opportunities in an HEVC real-time encoder. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 1158–1162). IEEE.
Mercat, A., Bonnot, J., Pelcat, M., Desnos, K., Hamidouche, W., & Menard, D. (2017). Smart search space reduction for approximate computing: A low energy hevc encoder case study. Journal of Systems Architecture: Embedded Software Design, 80, 56–67.
Muller, J.-M. (2020). Elementary functions and approximate computing. Proceedings of the IEEE, 108(12), 2136–2149.
Nogues, E., Holmbacka, S., Pelcat, M., Menard, D., & Lilius, J. (2014). Power-aware hevc decoding with tunable image quality. In 2014 IEEE Workshop on Signal Processing Systems (SiPS) (pp. 1–6). IEEE.
Nogues, E., Menard, D., & Pelcat, M. (2019). Algorithmic-level approximate computing applied to energy efficient hevc decoding. IEEE Transactions on Emerging Topics in Computing, 7(1), 5–17.
Nogues, E., Raffin, E., Pelcat, M., & Menard, D. (2015). A modified HEVC decoder for low power decoding. In Proceedings of the 12th ACM International Conference on Computing Frontiers (p. 60). ACM.
Percelay, M., Bonnot, J., Arrestier, F., & Menard, D. (2020). Polynomial approximation with non-uniform segmentation for bivariate functions. In 2020 IEEE Workshop on Signal Processing Systems (SiPS) (pp. 1–6).
Press, W. H., Teukolsky, S. A., Vetterling, W. T., & Flannery, B. P. (1988). Numerical recipes in c (Vol. 1, p. 3). Cambridge University Press.
Rinard, M. (2006). Probabilistic accuracy bounds for fault-tolerant computations that discard tasks. In Proceedings of the 20th Annual International Conference on Supercomputing (pp. 324–334).
Rust, J., & Paul, S. (2016, November). Bivariate function approximation with encoded gradients. In 2016 IEEE Nordic Circuits and Systems Conference (NORCAS) (pp. 1–6).
Rust, J., & Paul, S. (2017). Exploiting special-purpose function approximation for hardware-efficient QR-decomposition. In Design, Automation Test in Europe Conference Exhibition (DATE), 2017 (pp. 1378–1383).
Schulte, M., & Stine, J. (1999). Approximating elementary functions with symmetric bipartite tables. IEEE Transactions on Computers, 48(8), 842–847.
Shafique, M., & Henkel, J. (2014). Low power design of the next-generation high efficiency video coding. In Design Automation Conference (ASP-DAC), 2014 19th Asia and South Pacific (pp. 274–281). IEEE.
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 (pp. 124–134). ACM.
Sullivan, G. J., Ohm, J.-R., Han, W.-J., & Wiegand, T. (2012, December). Overview of the high efficiency video coding (HEVC) standard. IEEE Transactions on Circuits and Systems for Video Technology, 22(12), 1649–1668.
Suresh, A., Swamy, B. N., Rohou, E., & Seznec, A. (2015). Intercepting functions for memoization: A case study using transcendental functions. ACM Transactions on Architecture and Code Optimization (TACO), 12(2), 18.
Sze, V., Budagavi, M., & Sullivan, G. J. (Eds.) (2014). High efficiency video coding (HEVC). Integrated Circuits and Systems. Cham: Springer International Publishing.
The Open HEVC - open source project. https://github.com/OpenHEVC/openHEVC
Tseng, C.-C., & Lee, S.-L. (2008). Design of fractional delay fir filter using discrete cosine transform. In IEEE Asia Pacific Conference on Circuits and Systems, 2008. APCCAS 2008 (pp. 858–861). IEEE.
Vassiliadis, V., Parasyris, K., Chalios, C., Antonopoulos, C. D., Lalis, S., Bellas, N., Vandierendonck, H., & Nikolopoulos, D. S. (2015). A programming model and runtime system for significance-aware energy-efficient computing. ACM SIGPLAN Notices, 50(8), 275–276.
Wiegand, T., Sullivan, G. J., Bjontegaard, G., & Luthra, A. (2003, July). Overview of the H. 264/AVC video coding standard. IEEE Transactions on Circuits and Systems for Video Technology, 13(7), 560–576.
Yinji, P., Junghye, M., & Jiangle, C. (2010). Encoder improvement of unified intra prediction. In JCTVC-C207 (Vol. 7674, pp. 568–577).
Zhang, Q., Yuan, F., Ye, R., & Xu, Q. (2014). Approxit: An approximate computing framework for iterative methods. In Proceedings of the 51st Annual Design Automation Conference (pp. 1–6). ACM.
Zhao, L., Zhang, L., Ma, S., & Zhao, D. (2011). Fast mode decision algorithm for intra prediction in HEVC. In Visual Communications and Image Processing (VCIP), 2011 IEEE (pp. 1–4). IEEE.
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
Bonnot, J., Mercat, A., Nogues, E., Ménard, D. (2022). Approximate Computing at the Algorithmic Level. In: Bosio, A., Ménard, D., Sentieys, O. (eds) Approximate Computing Techniques. Springer, Cham. https://doi.org/10.1007/978-3-030-94705-7_5
Download citation
DOI: https://doi.org/10.1007/978-3-030-94705-7_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-94704-0
Online ISBN: 978-3-030-94705-7
eBook Packages: EngineeringEngineering (R0)