EE563 Programming Massively Parallel Processors

Resources

CUDA toolkit documentatioin (https://docs.nvidia.com/cuda/index.html)
Introduction to CUDA (https://devblogs.nvidia.com/even-easier-introduction-cuda/)
CUDA tutorial (http://supercomputingblog.com/cuda-tutorials/)
Profiling a CUDA program using Eclipse Nsight (https://www.sharcnet.ca/help/index.php/Profiling_with_Nsight)

Schedule

The course will follow the schedule shown below. Component 1 will take place during weeks 1 to 8 while components 2 and 3 will cover weeks 9 to 13.

Wk

Date

Lectures

References

Others

Laboratories

1

7-11 Jan

Introduction to Massively Parallel Computing

Introduction to CUDA

Chap 1-2

Download all lectures

slides in pdf

itune videos

Connect to the CUDA server
(Instructions, videos, commands and example code)

Complete the CUDA Tutorial
(read the entire tutorial and refer back to it as needed throughout the course)

2

14-18 Jan

CUDA Threads & Atomic operations

CUDA Memories

Performance Considerations

Chap 3-6

 

Lab 1

(due on 30 Jan)

3

21-25 Jan

Parallel Patterns I

Parallel Patterns II

Chap 7-9

 

 

4

28 Jan - 1 Feb

Introduction to Thrust

Sparse Matrix

Vector Operations

Chap 10

 NVIDIA Cub example

Lab 2

(due on 13 Feb)

5

4-8 Feb

Solving Partial Differential Equations with CUDA

The Fermi Architecture

Chap 13

 

 

6

11-15 Feb

NVIDIA OptiX: Ray Tracing on the GPU

Future of Throughput

Chap 17

 

Lab 3

(due on 27 Feb)

7

18-22 Feb

Path Planning System on the GPU

Optimizing Parallel GPU Performance

Parallel Sorting

Chap 11-12

Project proposal due

 

8

25 Feb - 1 Mar

Project work

 

 

Lab 4

(due on 13 Mar)

9

4-8 Mar

Project work

 

 

 

10

11-15 Mar

Project work

 

 

 

11

18-22 Mar

Project work

 

 

 

12

25-29 Mar

Project work

 

 

 

13

1-5 Apr

Project presentation

 

 

 

14

8-12 Apr

 

 

 

 

15

15-19 Apr

 

 

 

 

 16

 22-26 Apr