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. |
Year | DOI | Venue |
---|---|---|
2013 | 10.1007/978-3-642-38750-0_20 | Lecture Notes in Computer Science |
Field | DocType | Volume |
Integer,Discrete mathematics,Polynomial arithmetic,Polynomial,Arbitrary-precision arithmetic,CUDA,Assembly language,Computational science,512-bit,Mathematics,Speedup | Conference | 7905 |
ISSN | Citations | PageRank |
0302-9743 | 0 | 0.34 |
References | Authors | |
3 | 3 |
Name | Order | Citations | PageRank |
---|---|---|---|
Timothée Ewart | 1 | 6 | 1.85 |
Andreas Hehn | 2 | 1 | 1.08 |
Matthias Troyer | 3 | 120 | 19.62 |