CSC's trainings and events have moved

Find our upcoming trainings and events at

This site is an archive version and is no longer updated.

Go to CSC Customer trainings and Events


Introduction to CUDA programming

Date: 18.05.2017 9:00 - 20.05.2017 17:00
Location details: The event is organised at the CSC Training Facilities located in the premises of CSC at Keilaranta 14, Espoo, Finland. The best way to reach us is by public transportation; more detailed travel tips are available.
Language: english-language
lecturers: Sebastian von Alfthan Sami Ilvonen Fredrik Robertsen
  • 180 for-finnish-academics
  • 840 for-others
The fee covers all materials, lunches as well as morning and afternoon coffees.
The seats are filled in the registration order. You may cancel your attendance without a charge 5 business days prior the course. For cancellations after that and no-shows without a cancellation the full fee will be invoiced.
Additional Information
Content: sebastian



This course gives basic to intermediate level knowledge on CUDA programming. The course first gives a basic introduction to writing GPU applications using CUDA. Building on this more advanced topics are introduced that enable one to write efficient CUDA applications, including asynchronous execution with streams, utilizing Nvidia performance tools and how to write efficient kernels. Finally multi-GPU programming and new CUDA features will be discussed.

Learning outcome

After the course participants should be able to write simple CUDA programs that utilize multiple GPUs.


No prior knowledge on GPGPU programming or CUDA is required, but participants should have working knowledge on C programming language and basic knowledge on MPI programming.


Day 1: Wednesday, May 17 (9:00 - 16:00)

  • Introduction to GPU programming
  • CUDA programming I:  programming model & memory model
  • Nvidia tools for performance analysis and debugging
  • CUDA programming II:  further topics on basic CUDA programming 

Day 2: Thursday, May 18 (9:00 - 16:00)

  • Cuda programming III: Streams and asynchronous execution
  • Cuda programming IV: Optimizing kernel performance
  • Advanced CUDA features I: Unified memory, Lambdas and new capabilities in Pascal 

Day 3: Friday, May 19 (9:00 - 16:00)

  • Advanced CUDA features II: Dynamic parallelism
  • Multi-GPU programming
  • Multi-GPU programming with MPI
Course materials