Multiple kernels optimization in GPU

This project is developed in the NVIDIA CUDA C/C++ environment which is provided. All the equipment and software stacks are provided by Parallel and Distributed Computing Center. The objective of this project is to find a way to split the GPU kernel and perform GPU kernel scheduling based on the imp...

Full description

Saved in:
Bibliographic Details
Main Author: Sun, Yanan.
Other Authors: Zhang Xiaohong
Format: Final Year Project
Language:English
Published: 2012
Subjects:
Online Access:http://hdl.handle.net/10356/49158
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
id sg-ntu-dr.10356-49158
record_format dspace
spelling sg-ntu-dr.10356-491582023-03-03T20:55:58Z Multiple kernels optimization in GPU Sun, Yanan. Zhang Xiaohong School of Computer Engineering Parallel and Distributed Computing Centre Zhang Wei DRNTU::Engineering::Computer science and engineering::Computer systems organization::Performance of systems This project is developed in the NVIDIA CUDA C/C++ environment which is provided. All the equipment and software stacks are provided by Parallel and Distributed Computing Center. The objective of this project is to find a way to split the GPU kernel and perform GPU kernel scheduling based on the importance of GPU kernels. General purpose computing GPU (GPGPU) is burgeoning technique to enhance the computation of parallel programs. However, the non-preemptive nature of GPU kernel possesses great challenges for applying GPU computing to real-time application. In this project, we proposed a solution to split GPU kernels from the host code and also developed a model to schedule the GPU kernels with the kernel splitting techniques proposed. In the first part of this project, we focus on how to split GPU kernels and make GPU kernels preemptive. Our design is to split GPU kernel into smaller size of sub kernels by reducing the grid of blocks of threads to execute it. Then this kernel is executed multiple times to have same functionality as the original kernel. In order to this, kernel invocation is introduced additional parameters by modifying the PTX code. The second part of this project is to develop a model that can perform GPU kernel scheduling based on the priority assigned with the kernel splitting techniques developed in the first part. Our design is a server-clients model. In this model, clients initiate the kernel invocation, and pass control to server, then the server handle the actual invocation of GPU kernels. Server takes the overcharge the execution of all the kernels so it can schedule them based on priority. Bachelor of Engineering (Computer Engineering) 2012-05-15T06:18:21Z 2012-05-15T06:18:21Z 2012 2012 Final Year Project (FYP) http://hdl.handle.net/10356/49158 en Nanyang Technological University 54 p. application/pdf
institution Nanyang Technological University
building NTU Library
continent Asia
country Singapore
Singapore
content_provider NTU Library
collection DR-NTU
language English
topic DRNTU::Engineering::Computer science and engineering::Computer systems organization::Performance of systems
spellingShingle DRNTU::Engineering::Computer science and engineering::Computer systems organization::Performance of systems
Sun, Yanan.
Multiple kernels optimization in GPU
description This project is developed in the NVIDIA CUDA C/C++ environment which is provided. All the equipment and software stacks are provided by Parallel and Distributed Computing Center. The objective of this project is to find a way to split the GPU kernel and perform GPU kernel scheduling based on the importance of GPU kernels. General purpose computing GPU (GPGPU) is burgeoning technique to enhance the computation of parallel programs. However, the non-preemptive nature of GPU kernel possesses great challenges for applying GPU computing to real-time application. In this project, we proposed a solution to split GPU kernels from the host code and also developed a model to schedule the GPU kernels with the kernel splitting techniques proposed. In the first part of this project, we focus on how to split GPU kernels and make GPU kernels preemptive. Our design is to split GPU kernel into smaller size of sub kernels by reducing the grid of blocks of threads to execute it. Then this kernel is executed multiple times to have same functionality as the original kernel. In order to this, kernel invocation is introduced additional parameters by modifying the PTX code. The second part of this project is to develop a model that can perform GPU kernel scheduling based on the priority assigned with the kernel splitting techniques developed in the first part. Our design is a server-clients model. In this model, clients initiate the kernel invocation, and pass control to server, then the server handle the actual invocation of GPU kernels. Server takes the overcharge the execution of all the kernels so it can schedule them based on priority.
author2 Zhang Xiaohong
author_facet Zhang Xiaohong
Sun, Yanan.
format Final Year Project
author Sun, Yanan.
author_sort Sun, Yanan.
title Multiple kernels optimization in GPU
title_short Multiple kernels optimization in GPU
title_full Multiple kernels optimization in GPU
title_fullStr Multiple kernels optimization in GPU
title_full_unstemmed Multiple kernels optimization in GPU
title_sort multiple kernels optimization in gpu
publishDate 2012
url http://hdl.handle.net/10356/49158
_version_ 1759858267341717504