Norwegian version of this page

Fundamentals of Accelerated Computing with CUDA C/C++

Learn how to accelerate and optimize existing C/C++ CPU-only applications using the most essential CUDA tools and techniques. You’ll also learn an iterative style of CUDA development that will allow you to ship accelerated applications fast.

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

Sign up

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


     Bildet kan inneholde: logo.

Organizer

Norwegian AI Cloud, Carpentry@UiO and NVIDIA

Published Feb. 17, 2025 10:56 AM - Last modified Feb. 17, 2025 10:59 AM