{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,28]],"date-time":"2026-07-28T10:36:25Z","timestamp":1785234985358,"version":"3.55.0"},"reference-count":97,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2020,4,17]],"date-time":"2020-04-17T00:00:00Z","timestamp":1587081600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"EU H2020 RECIPE project","award":["801137"],"award-info":[{"award-number":["801137"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Comput. Surv."],"published-print":{"date-parts":[[2021,3,31]]},"abstract":"<jats:p>The use of reduced precision to improve performance metrics such as computation latency and power consumption is a common practice in the embedded systems field. This practice is emerging as a new trend in High Performance Computing (HPC), especially when new error-tolerant applications are considered. However, standard compiler frameworks do not support automated precision customization, and manual tuning and code transformation is the approach usually adopted in most domains. In recent years, research have been studying ways to improve the automation of this process. This article surveys this body of work, identifying the critical steps of this process, the most advanced tools available, and the open challenges in this research area. We conclude that, while several mature tools exist, there is still a gap to close, especially for tools based on static analysis rather than profiling, as well as for integration within mainstream, industry-strength compiler frameworks.<\/jats:p>","DOI":"10.1145\/3381039","type":"journal-article","created":{"date-parts":[[2020,5,4]],"date-time":"2020-05-04T07:33:47Z","timestamp":1588577627000},"page":"1-35","update-policy":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":57,"title":["Tools for Reduced Precision Computation"],"prefix":"10.1145","volume":"53","author":[{"ORCID":"https:\/\/2.zoppoz.workers.dev:443\/https\/orcid.org\/0000-0002-5579-5942","authenticated-orcid":false,"given":"Stefano","family":"Cherubin","sequence":"first","affiliation":[{"name":"Politecnico di Milano, ITA, Milano, Italy"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Giovanni","family":"Agosta","sequence":"additional","affiliation":[{"name":"Politecnico di Milano, ITA, Milano, Italy"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2020,4,17]]},"reference":[{"key":"e_1_2_1_2_1","first-page":"7","volume-title":"Proceedings of the 20th European Conference on Artificial Intelligence (ECAI\u201912)","author":"Alliot Jean-Marc","year":"2012"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3151032"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2011.5764677"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.2172\/817634"},{"key":"e_1_2_1_8_1","volume-title":"RICH: Automatically protecting against integer-based vulnerabilities. (1","author":"Brumley David","year":"2007"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1177\/109434200001400404"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSD.2018.00042"},{"key":"e_1_2_1_11_1","volume-title":"Proceedings of the International Conference on Parallel Computing (ParCo\u201917)","author":"Cherubin Stefano","year":"2017"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/LES.2019.2913774"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009846"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-31987-0_3"},{"key":"e_1_2_1_15_1","volume-title":"Salsa: An automatic tool to improve the numerical accuracy of programs. In Automated Formal Methods (AFM\u201917)","author":"Damouche Nasrine","year":"2017"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCPS.2018.00028"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535874"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3014426"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/EMSOFT.2013.6658600"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1644001.1644003"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/MDT.2011.44"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-78800-3_24"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/ARITH.2016.31"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2743019"},{"key":"e_1_2_1_25_1","doi-asserted-by":"crossref","unstructured":"Fran\u00e7ois F\u00e9votte and Bruno Lathuili\u00e8re. 2017. Studying the numerical quality of an industrial computing code: A case study on Code_aster. In Numerical Software Verification. 61--80. DOI:https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1007\/978-3-319-63501-9_5  Fran\u00e7ois F\u00e9votte and Bruno Lathuili\u00e8re. 2017. Studying the numerical quality of an industrial computing code: A case study on Code_aster. In Numerical Software Verification. 61--80. DOI:https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1007\/978-3-319-63501-9_5","DOI":"10.1007\/978-3-319-63501-9_5"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2013.6648190"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1236463.1236468"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.5555\/1025123.1025818"},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the Conference on Automated Deduction (CADE-24)","author":"Gao Sicun"},{"key":"e_1_2_1_30_1","volume-title":"Fundamentals of Software Engineering","author":"Ghezzi Carlo","edition":"2"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/103162.103163"},{"key":"e_1_2_1_32_1","volume-title":"Retrieved","author":"Goualard Fr\u00e9d\u00e9ric","year":"2001"},{"key":"e_1_2_1_33_1","volume-title":"Static Analysis","author":"Goubault Eric"},{"key":"e_1_2_1_35_1","volume-title":"Numerical Validation in Quadruple Precision using Stochastic Arithmetic. Retrieved","author":"Graillat Stef","year":"2018"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3213846.3213862"},{"key":"e_1_2_1_37_1","volume-title":"Retrieved","author":"Company Gurobi","year":"2018"},{"key":"e_1_2_1_38_1","doi-asserted-by":"crossref","unstructured":"John Harrison. 1999. A machine-checked theory of floating point arithmetic. In Theorem Proving in Higher Order Logics. 113--130. DOI:https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1007\/3-540-48256-3_9  John Harrison. 1999. A machine-checked theory of floating point arithmetic. In Theorem Proving in Higher Order Logics. 113--130. DOI:https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1007\/3-540-48256-3_9","DOI":"10.1007\/3-540-48256-3_9"},{"key":"e_1_2_1_39_1","volume-title":"Floating-Point Working group of the Microprocessor Standards Subcommittee","author":"IEEE Computer Society Standards Committee.","year":"2008"},{"key":"e_1_2_1_40_1","volume-title":"Floating-Point Working group of the Microprocessor Standards Subcommittee","author":"IEEE Computer Society Standards Committee.","year":"1985"},{"key":"e_1_2_1_41_1","volume-title":"Intel 64 and IA-32 Architectures Software Developer\u2019s Manual","author":"Intel Corporation"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cpc.2008.02.003"},{"key":"e_1_2_1_43_1","volume-title":"Proceedings of the Conference on Design, Automation and Test in Europe (DATE\u201998)","author":"Keding H."},{"key":"e_1_2_1_44_1","doi-asserted-by":"crossref","first-page":"11","DOI":"10.1109\/82.735357","article-title":"Fixed-point optimization utility for C and C++ based digital signal processing programs","volume":"45","author":"Kim Seehyun","year":"1998","journal-title":"IEEE Trans. Circ. Syst. II: Analog Dig. Sign. Process."},{"key":"e_1_2_1_45_1","volume-title":"Proceedings of the 2009 Design, Automation Test in Europe Conference Exhibition. 1106--1111","author":"Adam","year":"2009"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/3330345.3330360"},{"key":"e_1_2_1_47_1","first-page":"9","article-title":"AUTOSCALER for C: An optimizing floating-point to integer C program converter for fixed-point digital signal processors","volume":"47","author":"Kum Ki-Il","year":"2000","journal-title":"IEEE Trans. Circ. Syst. II: Analog Dig. Sign. Process."},{"key":"e_1_2_1_48_1","doi-asserted-by":"crossref","unstructured":"Ignacio Laguna Paul C. Wood Ranvijay Singh and Saurabh Bagchi. 2019. GPUMixer: Performance-driven floating-point tuning for GPU scientific applications. In High Performance Computing. 227--246. DOI:https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1007\/978-3-030-20656-7_12  Ignacio Laguna Paul C. Wood Ranvijay Singh and Saurabh Bagchi. 2019. GPUMixer: Performance-driven floating-point tuning for GPU scientific applications. In High Performance Computing. 227--246. DOI:https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1007\/978-3-030-20656-7_12","DOI":"10.1007\/978-3-030-20656-7_12"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1177\/1094342016652462"},{"key":"e_1_2_1_50_1","volume-title":"Proceedings of the 27th International Conference on Supercomputing (ICS\u201913)","author":"Lam Michael O."},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2012.08.002"},{"key":"e_1_2_1_52_1","volume-title":"Proceedings of the 5th Workshop on Extreme-Scale Programming Tools (ESPT\u201916)","author":"Michael","year":"2016"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1109\/Correctness49594.2019.00009"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.5555\/977395.977673"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1147\/JRD.2018.2854039"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2006.873887"},{"key":"e_1_2_1_57_1","volume-title":"Nikolopoulos","author":"Lee JunKyu","year":"2018"},{"key":"e_1_2_1_58_1","doi-asserted-by":"crossref","unstructured":"Alberto Leva Martina Maggio Alessandro V. Papadopoulos and Federico Terraneo. 2013. Control-Based Operating System Design. Institution of Engineering and Technology.  Alberto Leva Martina Maggio Alessandro V. Papadopoulos and Federico Terraneo. 2013. Control-Based Operating System Design. Institution of Engineering and Technology.","DOI":"10.1049\/PBCE089E"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1109\/ARITH.2016.26"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065034"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/3015465"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/3126519"},{"key":"e_1_2_1_63_1","unstructured":"Guillaume Melquiond. 2018. Retreived Octobe 16 2018 from https:\/\/2.zoppoz.workers.dev:443\/https\/gforge.inria.fr\/projects\/gappa\/.  Guillaume Melquiond. 2018. Retreived Octobe 16 2018 from https:\/\/2.zoppoz.workers.dev:443\/https\/gforge.inria.fr\/projects\/gappa\/."},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/581630.581674"},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2018.00051"},{"key":"e_1_2_1_67_1","volume-title":"Proceedings of the Workshop on Approximate Computing Across the System Stack (WACAS\u201914)","author":"Mishra Asit K.","year":"2014"},{"key":"e_1_2_1_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/1353445.1353446"},{"key":"e_1_2_1_69_1","volume-title":"Interval Analysis","author":"Moore Ramon E."},{"key":"e_1_2_1_70_1","volume-title":"Mu\u00f1oz","author":"Moscato Mariano","year":"2017"},{"key":"e_1_2_1_71_1","volume-title":"Mu\u00f1oz","author":"Moscato Mariano M.","year":"2019"},{"key":"e_1_2_1_72_1","doi-asserted-by":"crossref","unstructured":"Jean-Michel Muller Nicolas Brunie Florent de Dinechin Claude-Pierre Jeannerod Mioara Joldes Vincent Lef\u00e8vre Guillaume Melquiond Nathalie Revol and Serge Torres. 2018. Definitions and Basic Notions. 15--45. DOI:https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1007\/978-3-319-76526-6_2  Jean-Michel Muller Nicolas Brunie Florent de Dinechin Claude-Pierre Jeannerod Mioara Joldes Vincent Lef\u00e8vre Guillaume Melquiond Nathalie Revol and Serge Torres. 2018. Definitions and Basic Notions. 15--45. DOI:https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1007\/978-3-319-76526-6_2","DOI":"10.1007\/978-3-319-76526-6_2"},{"key":"e_1_2_1_73_1","unstructured":"Ralph Nathan Helia Naeimi Daniel J. Sorin and Xiaobai Sun. 2016. Profile-Driven Automated Mixed Precision. CoRR abs\/1606.00251.  Ralph Nathan Helia Naeimi Daniel J. Sorin and Xiaobai Sun. 2016. Profile-Driven Automated Mixed Precision. CoRR abs\/1606.00251."},{"key":"e_1_2_1_74_1","doi-asserted-by":"crossref","volume-title":"The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation","author":"Naumann Uwe","DOI":"10.1137\/1.9781611972078"},{"key":"e_1_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250746"},{"key":"e_1_2_1_76_1","doi-asserted-by":"crossref","unstructured":"Ricardo Nobre Lu\u00eds Reis Jo\u00e3o Bispo Tiago Carvalho Jo\u00e3o M. P. Cardoso Stefano Cherubin and Giovanni Agosta. 2018. Aspect-driven mixed-precision tuning targeting GPUs. In Proceedings of the 9th Workshop on Parallel Programming and Run-Time Management Techniques for Many-core Architectures and the 7th Workshop on Design Tools and Architectures For Multicore Embedded Computing Platforms (PARMA-DITAM\u201918). 26--31. DOI:https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1145\/3183767.3183776  Ricardo Nobre Lu\u00eds Reis Jo\u00e3o Bispo Tiago Carvalho Jo\u00e3o M. P. Cardoso Stefano Cherubin and Giovanni Agosta. 2018. Aspect-driven mixed-precision tuning targeting GPUs. In Proceedings of the 9th Workshop on Parallel Programming and Run-Time Management Techniques for Many-core Architectures and the 7th Workshop on Design Tools and Architectures For Multicore Embedded Computing Platforms (PARMA-DITAM\u201918). 26--31. DOI:https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1145\/3183767.3183776","DOI":"10.1145\/3183767.3183776"},{"key":"e_1_2_1_77_1","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2007.4380730"},{"key":"e_1_2_1_78_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-55602-8_217"},{"key":"e_1_2_1_79_1","doi-asserted-by":"publisher","DOI":"10.1145\/2737924.2737959"},{"key":"e_1_2_1_80_1","doi-asserted-by":"publisher","DOI":"10.1145\/2813885.2737959"},{"key":"e_1_2_1_81_1","doi-asserted-by":"publisher","DOI":"10.1145\/1391469.1391574"},{"key":"e_1_2_1_82_1","doi-asserted-by":"publisher","DOI":"10.5555\/1950815.1950910"},{"key":"e_1_2_1_83_1","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1109\/TASC.2009.2019070","article-title":"Design and implementation and on-chip high-speed test of SFQ half-precision floating-point adders","volume":"19","author":"Park Heejoung","year":"2009","journal-title":"IEEE Trans. Appl. Superconduct."},{"key":"e_1_2_1_85_1","volume-title":"Proceedings of the Symposium on Applied Computing (SAC\u201917)","author":"Pinto Pedro","year":"1961"},{"key":"e_1_2_1_86_1","doi-asserted-by":"publisher","DOI":"10.1142\/S0129626400000214"},{"key":"e_1_2_1_87_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCOM.2009.5183478"},{"key":"e_1_2_1_88_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2013.6494996"},{"key":"e_1_2_1_89_1","first-page":"6","article-title":"Machine learning method for energy reduction by utilizing dynamic mixed precision on GPU-based supercomputers","volume":"31","author":"Rojek Krzysztof","year":"2018","journal-title":"Concurr. Comput.: Pract. Exper."},{"key":"e_1_2_1_90_1","doi-asserted-by":"publisher","DOI":"10.1145\/2597809.2597812"},{"key":"e_1_2_1_91_1","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884850"},{"key":"e_1_2_1_92_1","doi-asserted-by":"publisher","DOI":"10.1145\/2503210.2503296"},{"key":"e_1_2_1_93_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192411"},{"key":"e_1_2_1_94_1","unstructured":"Markus Schordan. 2019. Typeforge. Retrieved April 1 2019 from https:\/\/2.zoppoz.workers.dev:443\/https\/github.com\/rose-compiler\/rose-develop\/tree\/master\/projects\/typeforge.  Markus Schordan. 2019. Typeforge. Retrieved April 1 2019 from https:\/\/2.zoppoz.workers.dev:443\/https\/github.com\/rose-compiler\/rose-develop\/tree\/master\/projects\/typeforge."},{"key":"e_1_2_1_95_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-19249-9_33"},{"key":"e_1_2_1_96_1","first-page":"297","article-title":"An introduction to affine arithmetic","volume":"4","author":"Stolfi Jorge","year":"2003","journal-title":"Trends Appl. Comput. Math."},{"key":"e_1_2_1_97_1","doi-asserted-by":"publisher","DOI":"10.23919\/DATE.2018.8342167"},{"key":"e_1_2_1_98_1","volume-title":"Mu\u00f1oz","author":"Titolo Laura","year":"2018"},{"key":"e_1_2_1_99_1","volume-title":"Moscato","author":"Titolo Laura","year":"2019"},{"key":"e_1_2_1_100_1","volume-title":"Discrete stochastic arithmetic for validating results of numerical software. Numer. Algor. 37, 1 (01","author":"Vignes Jean","year":"2004"},{"key":"e_1_2_1_101_1","doi-asserted-by":"publisher","DOI":"10.1145\/193209.193217"},{"key":"e_1_2_1_102_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2018.043191123"},{"key":"e_1_2_1_103_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.988498"}],"container-title":["ACM Computing Surveys"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/dl.acm.org\/doi\/10.1145\/3381039","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/dl.acm.org\/doi\/pdf\/10.1145\/3381039","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:44:58Z","timestamp":1750203898000},"score":1,"resource":{"primary":{"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/dl.acm.org\/doi\/10.1145\/3381039"}},"subtitle":["A Survey"],"short-title":[],"issued":{"date-parts":[[2020,4,17]]},"references-count":97,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2021,3,31]]}},"alternative-id":["10.1145\/3381039"],"URL":"https:\/\/2.zoppoz.workers.dev:443\/https\/doi.org\/10.1145\/3381039","relation":{},"ISSN":["0360-0300","1557-7341"],"issn-type":[{"value":"0360-0300","type":"print"},{"value":"1557-7341","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,4,17]]},"assertion":[{"value":"2018-11-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-01-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-04-17","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}