Parallel Computing in the Computer Science Curriculum > Modules > GPU Programming

GPU Programming

Professor Libby Shoop, Macalester College
Yu Zhao, Macalester College


As modern Graphics Processing Unit (GPU) harnessed more and more horsepower, programmers began to use GPU for General Purpose computation, instead of just for graphics rendering. NVIDIA® Corporation developed CUDA, a parallel computing platform and programming model, to improve computing performance for parallel computation problems. In this module, we will learn how to solve parallel problems more efficiently by writing programs in CUDA C Programming Language and then executes them on GPUs based on CUDA architecture.

This module uses the CUDA parallel computing platform; developer's SDK and toolkit can be found on NVIDIA's website.

Module Characteristics

Languages Supported: C
Relevant Parallel Computing Concepts: Data Parallelism
Operating System Supported: Mac OS, Linux, Windows
Possible Course Use: Programming Languages, Hardware Design, Parallel Computing Systems
Recommended Teaching Level: intermediate, Advanced

Learning Goals

Context for Use

Description and Teaching Materials

You can visit the module in your browser:

GPU Programming

or you can download the module in either PDF format or latex format.

PDF Format: GPUProgramming.pdf.
Latex Format: GPUProgramming.tar.gz.
Word Format: GPUProgramming.docx.

Teaching Notes and Tips


References and Resources

See more Modules »

Comment? Start the discussion about GPU Programming

« Distributed Computing Fundamentals       Concurrent Access to Data Structures in C++ »