This page is a “Getting Started” guide for educators looking to teach introductory massively parallel programming on GPUs with the CUDA Platform.

The past decade has seen a tectonic shift from serial to parallel computing. No longer the exotic domain of supercomputing, parallel hardware is ubiquitous and software must follow: a serial, sequential program will use less than 1% of a modern PC's computational horsepower and less than 4% of a high-end smartphone. This presents an enormous and critical challenge: we must educate students and programmers to make the most of this new parallel world.  Educators have recognized this need; for example, in the 2013 Curriculum guidelines from ACM and IEEE, parallel computing is stressed as one of the most important new fundamentals to be taught.

Getting Started:

  1. Make sure you have an understanding of what CUDA is.
  2. Teach yourself how to accelerate code on GPUs by visiting some or all of GPU Libraries, CUDA C/C++, CUDA Python, or CUDA Fortran.
  3. Visit our CUDA Education Resources page for Power Point slides, code samples, and other material.
  4. Look at the available textbooks such as:
  5. Apply for access to the CUDA Cloud Training Platform.  The systems available are:
    • NVIDIA Training Cluster – a queue based cluster containing the latest Tesla-class GPUs publically available.  Intended for multi-week classes or workshops.
    • Amazon Interactive Instances – Easily get your students connected to a GPU Instance in the Amazon Cloud.  Intended for single-day classes or workshops.
    • Self-paced labs requiring only a supported browser hosted on  Great for prerequisite work, homework, or in-class exercises. 

Other Resources:

  1. Free self-paced online courses:
  2. Participate in sessions, tutorials, and Birds-Of-a-Feather meetings at supercomputing conferences such as SC14,  ISC14, SIGCSE 2014, and many smaller conferences.
  3. NVIDIA’s GPU Technology Conference – over 100s of recorded sessions, GTC Express Webinars, and the GTC 2014 conference.
  4. Attend local GPU or accelerated computing Meetups.
  5. Additional course materials made available online by various Universities.