GPU CODING
GPU Coding is a platform where you’ll be pitched against various computational problems, varying from combinational to numerical in nature, on a General Purpose GPU computing environment. GPUs are data parallel machines, with a multitude of processors on a single chip capable of performing similar computations over chunks of a large amount of data. They are programmed using frameworks such as CUDA, which is available for Nvidia GPU machines.
Programming parallel machines involves much greater skill than programming single core machines, as vectorization, synchronization, and distribution come up as major challenges. It is this dragon of parallelism, that we invite you to battle. If you haven't faced this dragon before, don't worry, as we'll be having a 2 day workshop before the contest, wherein you'll be given access to machines, in addition to problems and tutorials, for learning and practice.
Prizes worth INR 20,000
Click here to register
Additionally, labVIEW software package by National Instruments will be given to top three winners.
Please post your queries related to this event athttp://discuss.pragyan.org/t/gpu-coding-event/35
Format
Day 1 – Workshop Phase I
Day 2 – Workshop Phase II
Day 3 – Contest Finals
Details about the Workshop
This is a 2 day workshop for programmers who want to learn how to program and utilize the parallel computing power of the Graphics Processing Unit (GPU) using NVIDIA’s CUDA programming framework.
Prerequisites
1. The attendees will need to have some basic C or C++ knowledge, but no prior knowledge of parallel computing concepts is necessary.
2. It will be fine if people bring a laptop with CUDA Enabled Graphics Card with Visual Studio 2008 preinstalled.
3. The course will be held in English.
What Will I Learn?
By the end of this workshop you will have built a number of CUDA enabled applications and have an understanding of the CUDA programming methodology to apply to and solve your own problems.
Course Description
DAY 1
-
Introduction & Setup
The course will start by introducing the concepts of general purpose GPU programming and go into the process of installing and setting up the development environment on the system. We will also talk about the different language bindings for languages like Java, Python and Ruby.
-
CUDA Basic Concepts
Then we will give a hands on introduction to CUDA, introducing the concepts of threads and blocks to learn the fundamental way that CUDA exposes parallelism.
-
Hardware & Memory
The main gist of the course will involve learning the concepts of CUDA memory management together with the hardware capability of the GPU we are developing on. This will lead us into learning about the different types of GPU memories available to the programmer and it’s optimal utilization.
DAY 2
-
Optimization Techniques
We will go into the various concepts of GPU kernel optimization to get the most out of the hardware we are planning to write code for.
-
External Libraries
This will lead us to talk about different external libraries both 3rd party as well as those provided by NVIDIA which provide optimized algorithms running on the GPU, for applications ranging from Finance to Medical Imaging.
-
Future (If time available)
Finally, we will talk about the future of GPU computing, in particular the new features in CUDA 5.x and GPUs on the cloud. We will also give an introduction to OpenCL, since many of the concepts from this course will carry over to OpenCL. We will talk about the advantages and disadvantages of OpenCL here as well.
-
Basic Programming – Hands on
Once we are familiar with the core concepts, we will have a hands on programming with CUDA Enabled machines.
DAY 3
Contest
The problem statement will be given during Pragyan and will be based on the topics covered in the workshop.
Rules
-
Only participants of the Workshop will be allowed to attend the Finals.
-
Users can bring their laptops for workshops, but they can’t be used in Finals.
-
All participants will be provided with participation certificate.
-
Judgment of the Organizers is final.
-
Finals will be conducted individually based on time slots.
Judging Criteria
-
Memory efficient coding will gain more points.
-
Runtime of the code on GPU will be ranked and codes with less runtime will be awarded more points.
Sample Problem Statement
Anu and Rahul are judges of a Racing Event in Pragyan. The participants of the event are so high that each Racing team is made to complete a lap and the time is noted. Based on the timing of each participants the prizes are to be awarded. Since the number of entries where high, it takes them a lot of time to sort it on a normal PC. They present this problem to you.
Your task is to write a CUDA C/C++ Coding to find the winner of the race in a minimal time possible using GPU Coding.
FAQ
1. What if we are new to the field?
No problem. We train you in GPU Coding by conducting a two day workshop. The event which will be conducted on the final day will be based on the topics covered in the workshop.
2. Whom to contact on any queries?
We, Event Managers are available to solve your queries any time.
3. Is there any registration fee?
No, GPU Coding, a grand new technical leap is absolutely free.
Resources
The entire details of GPU coding can be downloaded here
Contacts
Sriram Suruliandi
Krishna Talagampala
Faculty Advisor
Dr.S.Nickolas
Associate Professor
Department - Computer Applications