Please use this identifier to cite or link to this item: https://www.um.edu.mt/library/oar/handle/123456789/71743
Full metadata record
DC FieldValueLanguage
dc.date.accessioned2021-03-22T06:56:01Z-
dc.date.available2021-03-22T06:56:01Z-
dc.date.issued2020-
dc.identifier.citationTabone, G. (2020). GPU implementation of arithmetic for very large integers (Bachelor's dissertation).en_GB
dc.identifier.urihttps://www.um.edu.mt/library/oar/handle/123456789/71743-
dc.descriptionB.SC.(HONS)COMP.SCI.en_GB
dc.description.abstractArithmetic operations on very large integers are used in many applications such as computer algebra, computational number theory and public key cryptography. A drawback is that most computers are typically built with a word size of 32 or 64 bits, which means that a machine register can only hold integers up to a maximum value of 2^64-1 for unsigned numbers. A solution is to use multi-precision arithmetic libraries, which allows numbers of any size. However, increasing the size of the numbers, increases the amount of work required to perform arithmetic on them, thus CPUs may struggle to keep up with the complexity of these computations. Graphics Processing Units (GPUs) can be used to offload some of the work from the CPU, and have been found useful in high-performance computing due to their massively parallel architecture of hundreds to thousands of arithmetic units. In this project, a parallel version of the addition, subtraction and multiplication operations for large numbers were implemented on a GPU. The addition was implemented using the prefix parallel technique which is used on a smaller scale in the carry-lookahead adder. This technique offers greater efficiency when executed on a large number of processors. For the multiplication, a warp-synchronous approach was adopted, taking advantage of how the thread grouping is done in the GPU. For multiplications of even larger numbers, the Karatsuba algorithm was chosen. The parallel implementation was tested on an NVIDIA GeForce GTX 1050 and compared with the GNU Multiple Precision Library, which runs on a CPU. For numbers of 2^30 bits, a speed-up of 1.7 was achieved for the addition operation. Furthermore, the multiplication operation achieved up to 2.6 speed-up for 1024-bit numbers when fully utilizing the GPU.en_GB
dc.language.isoenen_GB
dc.rightsinfo:eu-repo/semantics/restrictedAccessen_GB
dc.subjectGraphics processing unitsen_GB
dc.subjectArithmeticen_GB
dc.titleGPU implementation of arithmetic for very large integersen_GB
dc.typebachelorThesisen_GB
dc.rights.holderThe copyright of this work belongs to the author(s)/publisher. The rights of this work are as defined by the appropriate Copyright Legislation or as modified by any successive legislation. Users may access this work and can make use of the information contained in accordance with the Copyright Legislation provided that the author must be properly acknowledged. Further distribution or reproduction in any format is prohibited without the prior permission of the copyright holder.en_GB
dc.publisher.institutionUniversity of Maltaen_GB
dc.publisher.departmentFaculty of Information and Communication Technology. Department of Computer Scienceen_GB
dc.description.reviewedN/Aen_GB
dc.contributor.creatorTabone, Gerard (2020)-
Appears in Collections:Dissertations - FacICT - 2020
Dissertations - FacICTCS - 2020

Files in This Item:
File Description SizeFormat 
20BCS012 - Tabone Gerard.pdf
  Restricted Access
1.26 MBAdobe PDFView/Open Request a copy


Items in OAR@UM are protected by copyright, with all rights reserved, unless otherwise indicated.