Skip to main content

CAMPARY: Cuda Multiple Precision Arithmetic Library and Applications

  • Conference paper
  • First Online:
Mathematical Software – ICMS 2016 (ICMS 2016)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9725))

Included in the following conference series:

Abstract

Many scientific computing applications demand massive numerical computations on parallel architectures such as Graphics Processing Units (GPUs). Usually, either floating-point single or double precision arithmetic is used. Higher precision is generally not available in hardware, and software extended precision libraries are much slower and rarely supported on GPUs. We develop CAMPARY: a multiple-precision arithmetic library, using the CUDA programming language for the NVidia GPU platform. In our approach, the precision is extended by representing real numbers as the unevaluated sum of several standard machine precision floating-point numbers. We make use of error-free transforms algorithms, which are based only on native precision operations, but keep track of all rounding errors that occur when performing a sequence of additions and multiplications. This offers the simplicity of using hardware highly optimized floating-point operations, while also allowing for rigorously proven rounding error bounds. This also allows for easy implementation of an interval arithmetic. Currently, all basic multiple-precision arithmetic operations are supported. Our target applications are in chaotic dynamical systems or automatic control.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    A FMA (Fused Multiply-Add) operator evaluates an expression of the form \(xy+t\) with one final rounding only.

  2. 2.

    Certified algorithms are available in multi_prec_certified.h file.

  3. 3.

    “Quick-and-dirty” algorithms are available in multi_prec.h file.

References

  1. NVIDIA, NVIDIA CUDA Programming Guide 5.5 (2013)

    Google Scholar 

  2. IEEE Computer Society, IEEE Standard for Floating-Point Arithmetic, IEEE Standard 754-2008, August 2008. http://ieeexplore.ieee.org/servlet/opac?punumber=4610933

  3. Joldes, M., Popescu, V., Tucker, W.: Searching for sinks for the Hnon map using a multiple-precision GPU arithmetic library. SIGARCH Comput. Archit. News 42(4), 63–68 (2014)

    Article  Google Scholar 

  4. Laskar, J., Gastineau, M.: Existence of collisional trajectories of Mercury, Mars and Venus with the Earth. Nature 459(7248), 817–819 (2009)

    Article  Google Scholar 

  5. Priest, D.H.: Algorithms for arbitrary precision floating point arithmetic. In: Kornerup, P., Matula, D.W. (eds.) Proceedings of the 10th IEEE Symposium on Computer Arithmetic (Arith-10), pp. 132–144. IEEE Computer Society Press, Los Alamitos (1991)

    Google Scholar 

  6. Fousse, L., Hanrot, G., Lefèvre, V., Pélissier, P., Zimmermann, P.: MPFR: a multiple-precision binary floating-point library with correct rounding. ACM Trans. Math. Softw. 33(2) (2007). Art. 13, 115

    Google Scholar 

  7. Hida, Y., Li, X.S., Bailey, D.H.: Algorithms for quad-double precision floating-point arithmetic. In: Burgess, N., Ciminiera, L. (eds.) Proceedings of the 15th IEEE Symposium on Computer Arithmetic (ARITH-16), Vail, CO, pp. 155–162, June 2001

    Google Scholar 

  8. Mittelmann, H.D., Vallentin, F.: High-accuracy semidefinite programming bounds for kissing numbers. Exp. Math. 19(2), 175–179 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  9. Yamashita, M., Fujisawa, K., Fukuda, M., Kobayashi, K., Nakata, K., Nakata, M.: Latest Developments in the SDPA Family for Solving Large-Scale SDPs. In: Anjos, M.F., Lasserre, J.B. (eds.) Handbook on Semidefinite, Conic and Polynomial Optimization. International Series in Operations Research & Management Science, vol. 166, pp. 687–713. Springer, US (2012)

    Chapter  Google Scholar 

  10. Muller, J.-M., Brisebarre, N., de Dinechin, F., Jeannerod, C.-P., Lefèvre, V., Melquiond, G., Revol, N., Stehlé, D., Torres, S.: Handbook of Floating-Point Arithmetic, Birkhäuser Boston, 2010, ACM G.1.0; G.1.2; G.4; B.2.0; B.2.4; F.2.1. ISBN 978-0-8176-4704-9

    Google Scholar 

  11. Rump, S.M., Ogita, T., Oishi, S.: Accurate floating-point summation part I: faithful rounding. SIAM J. Sci. Comput. 31(1), 189–224 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  12. Joldes, M., Marty, O., Muller, J.-M., Popescu, V.: Arithmetic algorithms for extended precision using floating-point expansions. IEEE Trans. Comput. 65(4), 1197–1210 (2016)

    Article  MathSciNet  Google Scholar 

  13. Muller, J.-M., Popescu, V., Tak, P., Tang, P.: A new multiplication algorithm for extended precision using floating-point expansions. In: Proceedings of the 23rd Symposium on Computer Arithmetic (ARITH-23), July 2016, to appear

    Google Scholar 

  14. Nakata, M.: A numerical evaluation of highly accurate multiple-precision arithmetic version of semidefinite programming solver: SDPA-GMP, -QD and -DD. In: 2010 IEEE International Symposium on Computer-Aided Control System Design (CACSD). IEEE (2010)

    Google Scholar 

  15. The Coq Development team. The Coq proof assistant referencemanual, Inria, Version 8.0 (2004). http://coq.inria.fr

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mioara Joldes .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Joldes, M., Muller, JM., Popescu, V., Tucker, W. (2016). CAMPARY: Cuda Multiple Precision Arithmetic Library and Applications. In: Greuel, GM., Koch, T., Paule, P., Sommese, A. (eds) Mathematical Software – ICMS 2016. ICMS 2016. Lecture Notes in Computer Science(), vol 9725. Springer, Cham. https://doi.org/10.1007/978-3-319-42432-3_29

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-42432-3_29

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-42431-6

  • Online ISBN: 978-3-319-42432-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics