A Performance Improvement Approach for CPU-GPU Heterogeneous Computing
Raju K1, Niranjan N Chiplunkar2
1Raju K, Department of Computer Science and Engineering, NMAM Institute of Technology, Nitte, Karkala, Karnataka, India.
2Niranjan N Chiplunkar, Department of Computer Science and Engineering, NMAM Institute of Technology, Nitte, Karkala, Karnataka, India.
Manuscript received on 17 April 2019 | Revised Manuscript received on 21 May 2019 | Manuscript published on 30 May 2019 | PP: 532-538 | Volume-8 Issue-1, May 2019 | Retrieval Number: F2540037619 /19©BEIESP
Open Access | Ethics and Policies | Cite | Mendeley | Indexing and Abstracting
© The Authors. Blue Eyes Intelligence Engineering and Sciences Publication (BEIESP). This is an open access article under the CC-BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/)
Abstract: The heterogenous computing system involving Central Processing Unit and Graphics Processing Unit (CPU-GPU) is widely used for accelerating compute intensive applications that exhibit data parallelism. In CPU-GPU execution model, when the GPU is performing the computation the CPU cores remain idle, wasting enormous computational power. The performance of an application on GPU can be further improved by efficiently utilizing the computational power of CPU cores along with that of GPU. In this paper we propose an approach to simultaneously utilize computational power of both CPU and GPU to perform a task. We execute different independent data parallel portions of an application concurrently on CPU and GPU. We use CUDA framework to execute the task on GPU side and POSIX threads (Pthreads) to execute the task on CPU side. Through several experiments we demonstrate that by judiciously allocating different kernels to suitable processors and executing them concurrently, our approach can improve the performance of a CUDA based application compared to the GPU-only execution of that application.
Index Terms: Heterogeneous Computing; GPU; Multicore CPU; Concurrent Execution; CUDA kernels.
Scope of the Article: Heterogeneous and Streaming Data