Organised by TÜBİTAK ULAKBİM and METU.
Date: October 30-31, 2023
Event Type: Training
Format: 100% online
Topic: Parallel Programming
Overview: In this training, the basic concepts of creating a program with CUDA will be taught. On the first day, at first, we will show how the programs created by OpenMP run on the CPU in parallel. Then, we will show how the programs created by CUDA run on the GPU in parallel. Further, the differences between the execution of the threads on the CPU and the execution of the threads on the GPU will be discussed. Moreover, the hardware and software concepts of the CUDA programming language will be discussed and the necessary commands and functions to create programs will be mentioned. At the end of the day, participants are expected to write the CUDA code of a sample problem so that they can practice. On the second day, we will mention some important issues related to the optimizations of the CUDA code such as Coalesced Access to Global Memory and Warp Divergence. Then, we will mention how the CUDA kernels run on a single GPU or multi-GPU by using CUDA streams. At the end of the day, participants are expected to write the CUDA code of a sample problem so that they can practice.
Agenda:
Day1: (13.30 - 16.30)
- Comparison of the CPU architecture and the GPU architecture
- Differences between the threads of OpenMP and the threads of CUDA
- Introduction to CUDA Programming
- An Example Problem: Vector Addition
Day 2: (13.30 - 16.30)
- Non-Coalesced Access to Global Memory Problem
- Warp Divergence Problem
- CUDA Streams and Multi-GPU
- An Example Problem: Vector Addition with Streams
Language: English
Duration: 3 hours + 3 hours
Target Audience: Public audience (mainly academia)
Prerequisite(s): C/C++ knowledge (intermediate level)
Parallel Computing knowledge (basic level)
OpenMP knowledge (basic level)
Linux knowledge (basic level)
Accessing a proper GPU environment in order to solve the example problems
Tools, libraries, frameworks used: C/C++, OpenMP, CUDA
Learning Objectives: After this training, the participants will
- have knowledge about the fundamentals of CUDA Programming
- be able to design and develop algorithms on the GPU with CUDA
- be able to distinguish the differences between OpenMP and CUDA
- be able to improve the performance of the algorithms run on the GPU
- be able to distribute the computation to multiple GPUs
About the instructor(s): Dr. Özcan Dülger
Özcan Dülger is a visiting Asst. Prof. Dr. at the Department of Computer Engineering, Middle East Technical University. He received his PhD from the same department. He is also Asst. Prof. Dr. at the Department of Computer Engineering, Artvin Coruh University. He was also a visiting scholar in Center for Automotive Research at the Ohio State University, Columbus, OH, USA. His research areas are Parallel Computing, High-Performance Computing, CUDA Programming, and Target Tracking. He has been working on parallelization of the particle filter-based tracking algorithms on the GPU. https://user.ceng.metu.edu.tr/~odulger/
Contact: ncc@ulakbim.gov.tr
This course is offered free of charge
Following your successful registration, you will receive webinar information approx. 1 day before the event.
Acknowledgments
This event was supported by the EuroCC 2 project. This project has received funding from the European High-Performance Computing Joint Undertaking (JU) under grant agreement No 101101903. The JU receives support from the Digital Europe Programme and Germany, Bulgaria, Austria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, Greece, Hungary, Ireland, Italy, Lithuania, Latvia, Poland, Portugal, Romania, Slovenia, Spain, Sweden, France, Netherlands, Belgium, Luxembourg, Slovakia, Norway, Türkiye, Republic of North Macedonia, Iceland, Montenegro, Serbia.
Follow us on Twitter and LinkedIn. Subscribe to our YouTube Channel
https://twitter.com/EuroCC_Turkey
https://www.linkedin.com/company/eurocc-turkey
https://www.youtube.com/c/EuroCCTurkey