×

CAMPARY: CUDA multiple precision arithmetic library and applications. (English) Zbl 1435.65012

Greuel, Gert-Martin (ed.) et al., Mathematical software – ICMS 2016. 5th international conference, Berlin, Germany, July 11–14, 2016. Proceedings. Cham: Springer. Lect. Notes Comput. Sci. 9725, 232-240 (2016).
Summary: 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.
For the entire collection see [Zbl 1342.68017].

MSC:

65-04 Software, source code, etc. for problems pertaining to numerical analysis
65Y10 Numerical algorithms for specific classes of architectures

Software:

CAMPARY; CUDA; LBNL; Coq; MPFR
PDFBibTeX XMLCite
Full Text: DOI HAL

References:

[1] NVIDIA, NVIDIA CUDA Programming Guide 5.5 (2013)
[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)
[4] Laskar, J., Gastineau, M.: Existence of collisional trajectories of Mercury, Mars and Venus with the Earth. Nature 459(7248), 817–819 (2009)
[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)
[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 · Zbl 1365.65302
[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
[8] Mittelmann, H.D., Vallentin, F.: High-accuracy semidefinite programming bounds for kissing numbers. Exp. Math. 19(2), 175–179 (2010) · Zbl 1279.11070
[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) · Zbl 1334.90119
[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 · Zbl 1197.65001
[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) · Zbl 1185.65082
[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) · Zbl 1360.65330
[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
[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)
[15] The Coq Development team. The Coq proof assistant referencemanual, Inria, Version 8.0 (2004). http://coq.inria.fr
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.