GPU Bootcamp is an exciting and unique way for scientists and researchers to learn the skills needed to start quickly accelerating codes on GPUs. Held as a virtual event in June, this two-days event will introduce you to available GPU libraries, programming models, and platforms where you will learn the basics of GPU programming through extensive hands-on collaboration based on real-life applications using the OpenACC programming model.
Moreover, you will get hands-on experience on how to use NVIDIA Nsight tools and NVTX to profile your applications. This virtual GPU Bootcamp is organized in collaboration with the Society of Research Software Engineering, OpenACC.org, and NVIDIA. This event will be held during GMT.
Day 1: June 29, 2020
Welcome (Moderator + UKRSE Representative): 8:45-9:00
Connecting to Hackathon cluster (9:00-09:15)
Introduction to GPU Programming with OpenACC (09:15 - 11:00)
- Introduction to GPU programming (15 min)
- What is a GPU and Why Should You care?
- What is GPU Programming?
- Available Libraries, Programming Models, Platforms
- Introduction to OpenACC (45 min)
- What is OpenACC and Why Should You Care?
- Profile-driven Development
- First Steps with OpenACC
- Lab 1
- OpenACC Data Management (45 min)
- CPU and GPU Memories
- CUDA Unified (Managed) Memory
- OpenACC Data Management
- Lab 2
Introduction to GPU Programming with OpenACC-Continued (11:30-12:30)
- Gangs, Workers, and Vectors Demystified (55 min)
- GPU Profiles
- Loop Optimizations
- Lab 3
Lunch Break 12:30-13:30
Part 2: Mini-application challenge (13:30-18:00)
- Overview of the mini-application (15 min)
- Review steps to acceleration (5 min)
- Application challenge (offline, support through slack)
Day 2: June 30, 2020
Welcome (Moderator): 8:45-9:00
Mini-application Solution Walk-through (9:00-9:15)
Introduction to NVIDIA ® Nsight ™ Tools (9:15-9:45)
- Overview of Nsight Tools
- How to profile a serial application with NVIDIA Tools Extension (NVTX)
- Overview of optimization cycle with Nsight Systems
Profiling mini-application (9:45-11:00)
- Profile a sequential weather modeling application (integrated with NVTX APIs) with NVIDIA Nsight Systems to capture and trace CPU events and time ranges
- Understand how to use NVIDIA Nsight Systems profiler’s report to detect hotspots and apply OpenACC compute constructs to the serial application to parallelise it on the GPU
- Learn how to use Nsight Systems to identify issues such as underutilized GPU device and unnecessary data movements in the application and to apply optimization strategies steps by steps to expose more parallelism and utilize computer’s CPU and GPU
Wrap-up and announcing winners (11:00-11:30)
Mozhgan Kabiri chimeh (NVIDIA)
Dr Mozhgan Kabiri Chimeh is a GPU developer advocate at NVIDIA helping to bring GPU and HPC to a growing user community in Europe and around the world. She is a community builder with a passion for open source software and is actively involved in the HPC and RSE communities. As a Software Sustainability Institute fellow, and Research Software Engineer (RSE) advocate, she is actively promoting reproducible and sustainable software, use of HPC and particularly GPUs through training, seminars, research software consultancy and outreach.
Bharatkumar Sharma (NVIDIA)
Bharatkumar Sharma has approximately 10 years of development and research experience in the domain of Software Architecture, Distributed and Parallel Computing. He has recently published a book on CUDA 10. He is currently working with NVIDIA as a GPU Advocate. He has expertise in designing Software for Non Functional Requirements and Software Migration to latest heterogeneous parallel architectures. Bharat received his master degree in Information Technology from Indian Institute of Information Technology (IIIT, Bangalore).
Mandar Gurav (NVIDIA)
Mandar Gurav is an HPC developer who enjoys helping people accelerate their scientific applications on CPU and GPU platforms. He is currently working with NVIDIA as a GPU Advocate Associate responsible for delivering GPU Bootcamps, creating GPU Bootcamp materials, mentoring at GPU Hackathons and providing overall support for onboarding users to GPUs. His areas of interest include parallelization of scientific codes, heterogeneous computing, performance analysis of programs and optimization, numerical methods.