Sihle Sithole

Exploring GPU Programming In Java

CUDA ( Compute Unified Device Architecture) is a parallel computing platform and programming model created by NVIDIA. It is used to access GPU(Graphics Processing Unit) cores to assist the CPU when processing-intensive tasks like cryptocurrency mining, video conferencing, accelerating financial and scientific modeling. A modern commercial CPU has 16 cores, while modern GPUs have up to around 10 000 cores. CUDA was introduced so the user could switch between running tasks on the CPU or GPU since parallel processing is not necessarily the most efficient use case when processing tasks. JCUDA allows java programs to use low-level GPU resources while providing several abstractions to the programmer. The JCUDA API(Application Programming Interface) allows the programmer to write high-level code that gets offloaded to the GPU for better performance – the paper will investigate whether the API produces a drop in performance when compared to the CUDA platform.