{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,1]],"date-time":"2026-03-01T05:07:06Z","timestamp":1772341626748,"version":"3.50.1"},"reference-count":31,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2020,5,29]],"date-time":"2020-05-29T00:00:00Z","timestamp":1590710400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"European Union\u2019s Horizon 2020 programme","award":["801137 RECIPE"],"award-info":[{"award-number":["801137 RECIPE"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2020,6,30]]},"abstract":"<jats:p>Many classes of applications, both in the embedded and high performance domains, can trade off the accuracy of the computed results for computation performance. One way to achieve such a trade-off is precision tuning\u2014that is, to modify the data types used for the computation by reducing the bit width, or by changing the representation from floating point to fixed point. We present a methodology for high-accuracy dynamic precision tuning based on the identification of input classes (i.e., classes of input datasets that benefit from similar optimizations). When a new input region is detected, the application kernels are re-compiled on the fly with the appropriate selection of parameters. In this way, we obtain a continuous optimization approach that enables the exploitation of the reduced precision computation while progressively exploring the solution space, thus reducing the time required by compilation overheads. We provide tools to support the automation of the runtime part of the solution, leaving to the user only the task of identifying the input classes. Our approach provides a significant performance boost (up to 320%) on the typical approximate computing benchmarks, without meaningfully affecting the accuracy of the result, since the error remains always below 3%.<\/jats:p>","DOI":"10.1145\/3388785","type":"journal-article","created":{"date-parts":[[2020,5,30]],"date-time":"2020-05-30T04:22:06Z","timestamp":1590812526000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":25,"title":["Dynamic Precision Autotuning with TAFFO"],"prefix":"10.1145","volume":"17","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-5579-5942","authenticated-orcid":false,"given":"Stefano","family":"Cherubin","sequence":"first","affiliation":[{"name":"Politecnico di Milano, Milano, MI, Italy"}]},{"given":"Daniele","family":"Cattaneo","sequence":"additional","affiliation":[{"name":"Politecnico di Milano, Milano, MI, Italy"}]},{"given":"Michele","family":"Chiari","sequence":"additional","affiliation":[{"name":"Politecnico di Milano, Milano, MI, Italy"}]},{"given":"Giovanni","family":"Agosta","sequence":"additional","affiliation":[{"name":"Politecnico di Milano, Milano, MI, Italy"}]}],"member":"320","published-online":{"date-parts":[[2020,5,29]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/JETCAS.2018.2881461"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2011.5764677"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2724717"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSD.2018.00042"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.softx.2018.03.006"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3381039"},{"key":"e_1_2_1_7_1","volume-title":"Parallel Computing Is Everywhere.","author":"Cherubin Stefano"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/LES.2019.2913774"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009846"},{"key":"e_1_2_1_10_1","volume-title":"Proceedings of the Design Automation Conference. 102--107","author":"Cohen A.","year":"1837"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCPS.2018.00028"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2076021.2048094"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3014426"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1023\/B:NUMA.0000049462.70970.b6"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCSoC.2016.11"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.3850\/9783981537079_1018"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/SAMOS.2015.7363673"},{"key":"e_1_2_1_18_1","volume-title":"Proceedings of the Conference on Design, Automation, and Test in Europe (DATE\u201998)","author":"Keding H."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/778559.778562"},{"key":"e_1_2_1_20_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. Circuits Syst. II. Analog Digit. Signal Process."},{"key":"e_1_2_1_21_1","volume-title":"Proceedings of the 27th International ACM Conference on International Conference on Supercomputing (ICS\u201913)","author":"Lam Michael O."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2893356"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1080\/10867651.1997.10487472"},{"key":"e_1_2_1_24_1","volume-title":"Cloud","author":"Moore Ramon E.","year":"2009"},{"key":"e_1_2_1_25_1","volume-title":"n.d. Image Compression Benchmark. Retrieved","year":"2020"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2503210.2503296"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.micpro.2019.05.005"},{"key":"e_1_2_1_28_1","volume-title":"University Booth of the Conference on Design, Automation, and Test in Europe (DATE\u201911)","volume":"38","author":"Simon N."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.23919\/DATE.2018.8342167"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/MDAT.2016.2630270"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2018.043191123"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3388785","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3388785","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:31:39Z","timestamp":1750195899000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3388785"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,5,29]]},"references-count":31,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2020,6,30]]}},"alternative-id":["10.1145\/3388785"],"URL":"https:\/\/doi.org\/10.1145\/3388785","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,5,29]]},"assertion":[{"value":"2019-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-03-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-05-29","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}