Abstract

In this work, the residue number system (RNS) is applied for efficient addition of multiple-precision integers using graphics processing units (GPUs) that support the Compute Unified Device Architecture (CUDA) platform. The RNS allows calculations with the digits of a multiple-precision number to be performed in an element-wise fashion, without the overhead of communication between them, which is especially useful for massively parallel architectures such as the GPU architecture. The paper discusses two multiple-precision integer algorithms. The first algorithm relies on if-else statements to test the signs of the operands. In turn, the second algorithm uses radix complement RNS arithmetic to handle negative numbers. While the first algorithm is more straightforward, the second one avoids branch divergence among threads that concurrently compute different elements of a multiple-precision array. As a result, the second algorithm shows significantly better performance compared to the first algorithm. Both algorithms running on an NVIDIA RTX 2080 Ti GPU are faster than the multi-core GNU MP implementation running on an Intel Xeon 4100 processor.

Highlights

  • Multiple-precision integer arithmetic, which provides operations with numbers that consist of more than 32 or 64 bits, is an important and often indispensable method for solving scientific and engineering problems that are difficult to solve using the standard numerical precision

  • This paper deals with another type of multiple-precision arithmetic, which is based on the residue number system (RNS) [17], [18]

  • We used an GeForce RTX 2080 Ti graphics card that has 11 GB of GDDR6 memory, 4352 Compute Unified Device Architecture (CUDA) cores, and Compute Capability 7.5. This graphics processing units (GPUs) was installed on a machine with an Intel Xeon 4100/8.25M S2066 OEM processor running Ubuntu 18.04.5 LTS, CUDA 10.2 and NVIDIA Driver 450.51.06 were used

Read more

Summary

INTRODUCTION

Multiple-precision integer arithmetic, which provides operations with numbers that consist of more than 32 or 64 bits, is an important and often indispensable method for solving scientific and engineering problems that are difficult to solve using the standard numerical precision. The intermediate data produced during a computation may be very large, and multipleprecision arithmetic is required to prevent overflow. This paper deals with another type of multiple-precision arithmetic, which is based on the residue number system (RNS) [17], [18]. A new software library has been developed for efficient residue number system computations on CPU and GPU architectures. In addition to a number of optimized nonmodular RNS operations such as magnitude comparison and division, GRNS implements multiple-precision integer arithmetic. This paper considers two multiple-precision addition algorithms implemented in GRNS. 1|Page (IJACSA) International Journal of Advanced Computer Science and Applications, Vol 11, No 9, 2020 operation for RNS Both of our multiple-precision addition algorithms use an interval floating-point evaluation technique for efficient RNS sign determination [19].

BACKGROUND
NUMBER REPRESENTATION
Useful Notation
Note on Overflow Detection
PERFORMANCE COMPARISON RESULTS
Methodology
Results
Discussion
CONCLUSION
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call