Logo of Science Foundation Ireland  Logo of the Higher Education Authority, Ireland7 CapacitiesGPGPU Research Projects
Ireland's High-Performance Computing Centre | ICHEC
Home | News | Infrastructure | Outreach | Services | Research | Support | Education & Training | Consultancy | About Us | Login

Introduction to CUDA

Course Overview

This is a 3-day introductory course for programmers using the CUDA (Compute Unified Device Architecture) parallel computing architecture that is being developed by NVIDIA. It presents the CUDA programming model, how it deals with computation and data storage, memory issues and the underlying hardware.

Topics covered by the course include the following:

  • Introduction to GPU Computing
  • CUDA programming model
  • Threads & thread organisation
  • Kernels
  • Memory model introduction
  • Thread scheduling
  • Shared memory & tiled algorithms
  • Global memory - coalescing
  • Precision
  • Profiling
  • CUDA libraries
  • Advanced CUDA features

Pre-requisites

To benefit from this course attendees should have:

  • Basic understanding of computer architecture
  • Basic understanding of thread programming
  • Knowledge of Linux environment such as emacs, vi, make
  • Most importantly, intermediate knowledge of the C programming language, including the concept of pointers and dynamic memory management.

Learning Outcomes

After the course, attendees should gain a better understanding of the following:

  • Know what GPU Computing is and what it is used for
  • Understand what CUDA is and the basics of the hardware architecture
  • Be able to use CUDA threads to parallelise applications, and to organise, to synchronise and to allow cooperation among these threads
  • Comprehend the memory model introduced by CUDA, with the specification, usage and constraints of each memory space
  • Understand the underlying hardware and how it relates to the CUDA Programming Model
  • Know some of the basic libraries and tools used for programming in CUDA
  • Be able to read, write, compile and optimise software implementations in CUDA
  • Especially, be prepared to follow and master future advances in the field

Further Information

For further information please contact us at training@ichec.ie.