Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3213846.3213862acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Exploiting community structure for floating-point precision tuning

Published: 12 July 2018 Publication History

Abstract

Floating-point types are notorious for their intricate representation. The effective use of mixed precision, i.e., using various precisions in different computations, is critical to achieve a good balance between accuracy and performance. Unfortunately, reasoning about mixed precision is difficult even for numerical experts. Techniques have been proposed to systematically search over floating-point variables and/or program instructions to find a faster, mixed-precision version of a given program. These techniques, however, are characterized by their black box nature, and face scalability limitations due to the large search space. In this paper, we exploit the community structure of floating-point variables to devise a scalable hierarchical search for precision tuning. Specifically, we perform dependence analysis and edge profiling to create a weighted dependence graph that presents a network of floating-point variables. We then formulate hierarchy construction on the network as a community detection problem, and present a hierarchical search algorithm that iteratively lowers precision with regard to communities. We implement our algorithm in the tool HiFPTuner, and show that it exhibits higher search efficiency over the state of the art for 75.9% of the experiments taking 59.6% less search time on average. Moreover, HiFPTuner finds more profitable configurations for 51.7% of the experiments, with one known to be as good as the global optimum found through exhaustive search.

References

[1]
Bbp code directory. http://www.experimentalmath.info/bbp-codes/.
[2]
Community detection for networkx documentation. http://perso.crans.org/aynaud/ communities/index.html.
[3]
GSL - GNU scientific library - GNU project - free software foundation (FSF). http://www.gnu.org/software/gsl/.
[4]
The llvm compiler infrastructure. http://llvm.org/.
[5]
Networkx, high-productivity software for complex networks. https://networkx. github.io/.
[6]
The Explosion of the Ariane 5. https://www.ima.umn.edu/~arnold/disasters/ariane.html.
[7]
Toyota: Software to blame for Prius brake problems. http://www.cnn.com/2010/ WORLD/asiapcf/02/04/japan.prius.complaints/index.html.
[8]
D. An, R. Blue, M. Lam, S. Piper, and G. Stoker. Fpinst: Floating point error analysis using dyninst, 2008.
[9]
R. Bagnara, M. Carlier, R. Gori, and A. Gotlieb. Symbolic path-oriented test data generation for floating-point programs. In 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation, ICST, 2013.
[10]
D. H. Bailey. A compendium of bbp-type formulas for mathematical constants. Preprint, http:// crd.lbl.gov/ dhbailey/ dhbpapers/ index.html, 2000.
[11]
D. H. Bailey. Resolving numerical anomalies in scientific computation. LBNL Report #: LBNL-548E, 2008.
[12]
D. H. Bailey, T. Harris, W. Saphir, R. van der Wijngaart, A. Woo, and M. Yarrow. The NAS Parallel Benchmarks 2.0, 1995.
[13]
F. Benz, A. Hildebrandt, and S. Hack. A dynamic program analysis to find floatingpoint accuracy problems. In ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI, 2012.
[14]
V. D. Blondel, J.-L. Guillaume, R. Lambiotte, and E. Lefebvre. Fast unfolding of communities in large networks. Journal of statistical mechanics: theory and experiment, 2008.
[15]
A. W. Brown, P. H. J. Kelly, and W. Luk. Profiling floating point value ranges for reconfigurable implementation. In Proceedings of the 1st HiPEAC Workshop on Reconfigurable Computing, 2007.
[16]
W.-F. Chiang, M. Baranowski, I. Briggs, A. Solovyev, G. Gopalakrishnan, and Z. Rakamarić. Rigorous floating-point mixed-precision tuning. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL, 2017.
[17]
W.-F. Chiang, G. Gopalakrishnan, and Z. Rakamarić. Practical floating-point divergence detection. In International Workshop on Languages and Compilers for Parallel Computing, 2015.
[18]
W. Chiang, G. Gopalakrishnan, Z. Rakamaric, and A. Solovyev. Efficient search for inputs causing high floating-point errors. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP, 2014.
[19]
E. Darulova, E. Horn, and S. Sharma. Sound mixed-precision optimization with rewriting. arXiv preprint arXiv:1707.02118, 2017.
[20]
A. D. Franco, H. Guo, and C. Rubio-González. A comprehensive study of realworld numerical bug characteristics. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering, ASE, 2017.
[21]
Z. Fu and Z. Su. Achieving high coverage for floating-point code via unconstrained programming. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI, 2017.
[22]
M. Girvan and M. E. Newman. Community structure in social and biological networks. Proceedings of the national academy of sciences, 2002.
[23]
M. O. Lam and J. K. Hollingsworth. Fine-grained floating-point precision analysis. The International Journal of High Performance Computing Applications, 2016.
[24]
M. O. Lam, J. K. Hollingsworth, B. R. de Supinski, and M. P. LeGendre. Automatically adapting programs for mixed-precision floating-point computation. In Proceedings of the 27th international ACM conference on International conference on supercomputing, ICS, 2013.
[25]
W. M. McKeeman. Algorithm 145: Adaptive numerical integration by simpson’s rule. Commun. ACM, 1962.
[26]
M. E. Newman. Fast algorithm for detecting community structure in networks. Physical review E, 2004.
[27]
M. E. Newman. Modularity and community structure in networks. Proceedings of the national academy of sciences, 2006.
[28]
P. Panchekha, A. Sanchez-Stern, J. R. Wilcox, and Z. Tatlock. Automatically improving accuracy for floating point expressions. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI, 2015.
[29]
F. Radicchi, C. Castellano, F. Cecconi, V. Loreto, and D. Parisi. Defining and identifying communities in networks. Proceedings of the National Academy of Sciences of the United States of America, 2004.
[30]
C. Rubio-González, C. Nguyen, B. Mehne, K. Sen, J. Demmel, W. Kahan, C. Iancu, W. Lavrijsen, D. H. Bailey, and D. Hough. Floating-point precision tuning using blame analysis. In Proceedings of the 38th International Conference on Software Engineering, ICSE, 2016.
[31]
C. Rubio-González, C. Nguyen, H. D. Nguyen, J. Demmel, W. Kahan, K. Sen, D. H. Bailey, C. Iancu, and D. Hough. Precimonious: tuning assistant for floatingpoint precision. In International Conference for High Performance Computing, Networking, Storage and Analysis, SC, 2013.
[32]
A. Sanchez-Stern, P. Panchekha, S. Lerner, and Z. Tatlock. Finding root causes of floating point error. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI, 2018.
[33]
E. Schkufza, R. Sharma, and A. Aiken. Stochastic optimization of floating-point programs with tunable precision. In ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI, 2014.
[34]
R. Skeel. Roundoff error and the patriot missile. SIAM News, 1992.
[35]
A. Zeller. Yesterday, my program worked. today, it does not. why? In Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE, 1999.

Cited By

View all
  • (2025)Target-Aware Implementation of Real ExpressionsProceedings of the 30th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 110.1145/3669940.3707277(1069-1083)Online publication date: 3-Feb-2025
  • (2024)FPCC: Detecting Floating-Point Errors via Chain ConditionsProceedings of the ACM on Programming Languages10.1145/36897648:OOPSLA2(1504-1531)Online publication date: 8-Oct-2024
  • (2024)MixPert: Optimizing Mixed-Precision Floating-Point Emulation on GPU Integer Tensor CoresProceedings of the 25th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3652032.3657567(34-45)Online publication date: 20-Jun-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ISSTA 2018: Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis
July 2018
379 pages
ISBN:9781450356992
DOI:10.1145/3213846
  • General Chair:
  • Frank Tip,
  • Program Chair:
  • Eric Bodden
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 July 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. community detection
  2. dependence analysis
  3. floating point
  4. hierarchical search
  5. precision tuning

Qualifiers

  • Research-article

Conference

ISSTA '18
Sponsor:

Acceptance Rates

Overall Acceptance Rate 58 of 213 submissions, 27%

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)55
  • Downloads (Last 6 weeks)7
Reflects downloads up to 05 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Target-Aware Implementation of Real ExpressionsProceedings of the 30th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 110.1145/3669940.3707277(1069-1083)Online publication date: 3-Feb-2025
  • (2024)FPCC: Detecting Floating-Point Errors via Chain ConditionsProceedings of the ACM on Programming Languages10.1145/36897648:OOPSLA2(1504-1531)Online publication date: 8-Oct-2024
  • (2024)MixPert: Optimizing Mixed-Precision Floating-Point Emulation on GPU Integer Tensor CoresProceedings of the 25th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3652032.3657567(34-45)Online publication date: 20-Jun-2024
  • (2024)Arfa: An Agile Regime-Based Floating-Point Optimization Approach for Rounding ErrorsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680378(1516-1528)Online publication date: 11-Sep-2024
  • (2024)SeTHet - Sending Tuned numbers over DMA onto Heterogeneous clusters: an automated precision tuning storyProceedings of the 21st ACM International Conference on Computing Frontiers10.1145/3649153.3649203(258-266)Online publication date: 7-May-2024
  • (2024)Implementation and Synthesis of Math Library FunctionsProceedings of the ACM on Programming Languages10.1145/36328748:POPL(942-969)Online publication date: 5-Jan-2024
  • (2024)A Holistic Approach to Automatic Mixed-Precision Code Generation and Tuning for Affine ProgramsProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638484(55-67)Online publication date: 2-Mar-2024
  • (2024)Predicting Performance and Accuracy of Mixed-Precision Programs for Precision TuningProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3623338(1-13)Online publication date: 20-May-2024
  • (2024)Toward Automated Precision Tuning of Weather and Climate Models: A Case StudySC24-W: Workshops of the International Conference for High Performance Computing, Networking, Storage and Analysis10.1109/SCW63240.2024.00026(148-159)Online publication date: 17-Nov-2024
  • (2024)Performance on SIMD architectures of auto-tuned programs for matrix multiplication2024 IEEE 17th International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSoC)10.1109/MCSoC64144.2024.00096(564-571)Online publication date: 16-Dec-2024
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media