Abstract
We present a high-performance C++ library for high but fixed precision (128 to 512 bit) integer arithmetic and symbolic polynomial computations. While the large integer and polynomial computation parts of the library can be used independently optimized kernels for symbolic polynomials with large integer coefficients are provided. The kernels were manually optimized in assembly language for the x86-64 and power64 architectures. Our main target application is high-temperature series expansions which requires inner products of large vectors of polynomials with large integer coefficients. For this purpose we implemented a tunable hybrid CPU/GPU inner product function using OpenMP and NVIDIA CUDA with inline PTX assembly. This way we make optimal use of today’s and upcoming hybrid supercomputers and attain 49% of the peak performance of the current NVIDIA Kepler GPU. Compared to a pure CPU solution using the GNU Multiple Precision Arithmetic Library (GMP) we gain a speedup of 13x for a pure CPU inner product and 38x using a GPU accelerator.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Rivest, R.L., Shamir, A., Adleman, L.: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Commun. ACM 21(2), 120–126 (1978)
Oitmaa, J., Hamer, C., Zheng, W.: Series Expansion Methods for Strongly Interacting Lattice Models. Cambridge University Press (2006)
Granlund, T., The GMP development team: GNU MP: The GNU Multiple Precision Arithmetic Library. 5.1.1 edn. (2012), http://gmplib.org/
Shoup, V., The NTL development team: NTL: A Library for Doing Number Theory, http://www.shoup.net/ntl/
Emeliyanenko, P.: Efficient Multiplication of Polynomials on Graphics Hardware. In: Dou, Y., Gruber, R., Joller, J.M. (eds.) APPT 2009. LNCS, vol. 5737, pp. 134–149. Springer, Heidelberg (2009)
Govindaraju, N.K., Lloyd, B., Dotsenko, Y., Smith, B., Manferdelli, J.: High Performance Discrete Fourier Transforms on Graphics Processors. In: Proceedings of the 2008 ACM/IEEE Conference on Supercomputing, SC 2008, pp. 2:1–2:12. IEEE Press, Piscataway (2008)
Maza, M.M., Pan, W.: Fast Polynomial Multiplication on a GPU. Journal of Physics: Conference Series 256(1), 012009 (2010)
Toom, A.J.: The Complexity of a Scheme of Functional Elements Simulating the Multiplication of Integers. Soviet Mathematics 3, 714–716 (1963)
Schönhage, A., Strassen, V.: Schnelle Multiplikation grosser Zahlen. Computing 7, 281–292 (1971)
Karatsuba, A., Ofman, Y.: Multiplication of Multidigit Numbers on Automata. Soviet Physics - Doklady 7, 595–596 (1963)
Hyde, R.: The Art of Assembly Language. No Starch Press (2003)
NVIDIA Corporation: CUDA C Programming Guide v5.0 (2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ewart, T., Hehn, A., Troyer, M. (2013). VLI – A Library for High Precision Integer and Polynomial Arithmetic. In: Kunkel, J.M., Ludwig, T., Meuer, H.W. (eds) Supercomputing. ISC 2013. Lecture Notes in Computer Science, vol 7905. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38750-0_20
Download citation
DOI: https://doi.org/10.1007/978-3-642-38750-0_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38749-4
Online ISBN: 978-3-642-38750-0
eBook Packages: Computer ScienceComputer Science (R0)