About this Course
This workshop teaches the fundamental tools and techniques for accelerating C/C++ applications to run on massively parallel GPUs with CUDA®. You will learn how to write code, configure code parallelization with CUDA, optimize memory migration between the CPU and GPU accelerator, and implement the workflow that you have learned on a new task—accelerating a fully functional, but CPU-only, particle simulator for observable massive performance gains. At the end of the workshop, you’ll have access to additional resources to create new GPU-accelerated applications
on your own.
Learning Objectives
At the conclusion of the workshop, you will understand the fundamental tools and techniques for GPU-accelerating C/C++ applications with CUDA and be able to:
- Write code to be executed by a GPU accelerator
- Expose and express data and instruction-level parallelism in C/C++ applications using CUDA
- Utilize CUDA-managed memory and optimize memory migration using asynchronous prefetching
- Leverage command-line and visual profilers to guide your work
- Utilize concurrent streams for instruction-level parallelism
- Write GPU-accelerated CUDA C/C++ applications, or refactor existing CPU-only applications, using a profile-driven approach.
Target audience
Undergraduate or graduate students/researchers with experience in C/C++ programming
Prerequisites
- Basic C/C++ competency, including familiarity with variable types, loops, conditional statements, functions, and array manipulations.
- No previous knowledge of CUDA programming is assumed
Requirement
- Desktop or laptop computer capable of running the latest version of Chrome or Firefox.
- Each participant will be provided with dedicated access to a fully configured, GPU-accelerated server in the cloud.
Certificate
Upon successful completion of the assessment, participants will receive an NVIDIA DLI certificate to recognize their subject matter competency and support professional career growth.
Github repositories
- https://github.com/muriloboratto/fundamentals-accelereted-computing
- https://github.com/muriloboratto/GPU-programming
- https://github.com/muriloboratto/parallel-computing-applied
Number of participants
After the soft deadline, a waiting list will be automatically handled upon de-registrations.
If we receive more sign-ups than our capacity allows, priority is given to UiO/OUS staff and students.
Registration
Sign-up deadline: March 19th, 2025 at 23:59
Instructors
Murilo Boratto (LinkedIn, Google Scholar, GitHub)
Murilo holds a Bachelor's degree in Computer Science from the Catholic University of Salvador (UCSal, 2002), a Bachelor's degree in Chemical Engineering, and a Master's degree in Applied Mathematics to Sciences and Engineering from the University of Murcia (UM, 2005). He also earned a Master's and Doctorate in Parallel and Distributed Computing from the Polytechnic University of Valencia (DSIC/UPV) in 2007 and 2014, respectively.
He is a Full Professor in the Department of Exact and Earth Sciences I at the State University of Bahia (UNEB) and a researcher at the Center for Supercomputing for Industrial Innovation (SENAI/CIMATEC). Murilo expertise lies in Computer Science, with an emphasis on High-Performance Computing, focusing on Heterogeneous computing, Code portability and optimization, Mathematical and computational modeling, and Data integration.
Contact
For any questions contact us via email at contact-us@carpentry.uio.no
![]()