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...
Saved in:
Main Author: | |
---|---|
Other Authors: | |
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 |