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

skip to main content
research-article

Finding inputs that trigger floating-point exceptions in heterogeneous computing via Bayesian optimization

Published: 01 September 2023 Publication History

Abstract

Testing code for floating-point exceptions is crucial as exceptions can quickly propagate and produce unreliable numerical answers. The state-of-the-art to test for floating-point exceptions in heterogeneous systems is quite limited and solutions require the application’s source code, which precludes their use in accelerated libraries where the source is not publicly available. We present an approach to find inputs that trigger floating-point exceptions in black-box CPU or GPU functions, i.e., functions where the source code and information about input bounds are unavailable. Our approach is the first to use Bayesian optimization (BO) to identify such inputs and uses novel strategies to overcome the challenges that arise in applying BO to this problem. We implement our approach in the Xscope framework and demonstrate it on 58 functions from the CUDA Math Library and 81 functions from the Intel Math Library. Xscope is able to identify inputs that trigger exceptions in about 73% of the tested functions.

References

[1]
P. Dinda, A. Bernat, C. Hetland, Spying on the floating point behavior of existing, unmodified scientific applications, in: Proceedings of the 29th International Symposium on High-Performance Parallel and Distributed Computing, 2020, pp. 5–16.
[2]
Laguna I., Fpchecker: Detecting floating-point exceptions in GPU applications, in: 2019 34th IEEE/ACM International Conference on Automated Software Engineering, ASE, IEEE, 2019, pp. 1126–1129.
[3]
Barr E.T., Vo T., Le V., Su Z., Automatic detection of floating-point exceptions, ACM Sigplan Not. 48 (1) (2013) 549–560.
[4]
Chetlur S., Woolley C., Vandermersch P., Cohen J., Tran J., Catanzaro B., Shelhamer E., CUDNN: Efficient primitives for deep learning, 2014, arXiv preprint arXiv:1410.0759.
[5]
Paszke A., Gross S., Massa F., Lerer A., Bradbury J., Chanan G., Killeen T., Lin Z., Gimelshein N., Antiga L., et al., Pytorch: An imperative style, high-performance deep learning library, in: Advances in Neural Information Processing Systems, Vol. 32, 2019.
[6]
Snoek J., Larochelle H., Adams R.P., Practical bayesian optimization of machine learning algorithms, in: Advances in Neural Information Processing Systems, Vol. 25, 2012.
[7]
Ha H., Rana S., Gupta S., Nguyen T., Venkatesh S., et al., Bayesian optimization with unknown search space, Adv. Neural Inf. Process. Syst. 32 (2019).
[8]
Shahriari B., Bouchard-Côté A., Freitas N., Unbounded Bayesian optimization via regularization, in: Artificial Intelligence and Statistics, PMLR, 2016, pp. 1168–1176.
[9]
Laguna I., Gopalakrishnan G., Finding inputs that trigger floating-point exceptions in GPUs via Bayesian optimization, in: 2022 SC22: International Conference for High Performance Computing, Networking, Storage and Analysis, SC, IEEE Computer Society, 2022, pp. 454–467.
[10]
Archetti F., Candelieri A., Bayesian Optimization and Data Science, Springer, 2019.
[11]
Guo H., Laguna I., Rubio-González C., PLINER: Isolating lines of floating-point code for compiler-induced variability, in: SC20: International Conference for High Performance Computing, Networking, Storage and Analysis, IEEE, 2020, pp. 1–14.
[12]
D’Silva V., Haller L., Kroening D., Tautschnig M., Numeric bounds analysis with conflict-driven learning, in: International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Springer, 2012, pp. 48–63.
[13]
Guennebaud G., Jacob B., et al., Eigen v3, 2010, http://eigen.tuxfamily.org.
[14]
Nogueira F., Bayesian Optimization: Open source constrained global optimization tool for Python, 2014, URL https://github.com/fmfn/BayesianOptimization.
[15]
O. Villa, M. Stephenson, D. Nellans, S.W. Keckler, NVBit: A dynamic binary instrumentation framework for NVIDIA GPUs, in: Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture, 2019, pp. 372–383.
[16]
Chiang W.-F., Gopalakrishnan G., Rakamaric Z., Solovyev A., Efficient search for inputs causing high floating-point errors, in: Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP ’14, 2014, pp. 43–52,.
[17]
Guo H., Rubio-González C., Efficient generation of error-inducing floating-point inputs via symbolic execution, in: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, ICSE ’20, 2020, pp. 1261–1272,.
[18]
Zou D., Wang R., Xiong Y., Zhang L., Su Z., Mei H., A genetic algorithm for detecting significant floating-point inaccuracies, in: 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol. 1, IEEE, 2015, pp. 529–539.
[19]
Yi X., Chen L., Mao X., Ji T., Efficient global search for inputs triggering high floating-point inaccuracies, in: 2017 24th Asia-Pacific Software Engineering Conference, APSEC, IEEE, 2017, pp. 11–20.
[20]
Li X., Laguna I., Fang B., Swirydowicz K., Li A., Gopalakrishnan G., Design and evaluation of GPU-FPX: A low-overhead tool for floating-point exception detection in NVIDIA GPUs, in: Proceedings of the 32nd International Symposium on High-Performance Parallel and Distributed Computing, in: HPDC ’23, Association for Computing Machinery, New York, NY, USA, ISBN 9798400701559, 2023, pp. 59–71,.
[21]
Jézéquel F., Chesneaux J.-M., CADNA: A library for estimating round-off error propagation, Comput. Phys. Comm. 178 (12) (2008) 933–955.
[22]
Denis C., Castro P.D.O., Petit E., Verificarlo: Checking floating point accuracy through Monte Carlo arithmetic, 2015, arXiv preprint arXiv:1509.01347.
[23]
Hauser J.R., Handling floating-point exceptions in numeric programs, ACM Trans. Program. Lang. Syst. (TOPLAS) 18 (2) (1996) 139–174.
[24]
Dinda P., Hetland C., Do developers understand IEEE floating point?, in: 2018 IEEE International Parallel and Distributed Processing Symposium, IPDPS, IEEE, 2018, pp. 589–598.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Parallel Computing
Parallel Computing  Volume 117, Issue C
Sep 2023
115 pages

Publisher

Elsevier Science Publishers B. V.

Netherlands

Publication History

Published: 01 September 2023

Author Tags

  1. Floating-point exceptions
  2. GPU computing
  3. Bayesian optimization

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Oct 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media