Kernel-based GPU programming models

Overview of Modular Lesson Material

This course focuses on low-level GPU programming, teaching developers how to write highly efficient parallel code that runs directly on GPU hardware. Unlike high-level approaches that treat the GPU as a black box, this module dives deep into how computations are executed at the kernel level. The curriculum explicitly highlights the direct relationship between hardware architecture and software performance, guiding students to structure computations around GPU thread scheduling, memory access, and instruction execution.

The structural curriculum is divided into two primary categories: non-portable kernel-based models (such as vendor-specific frameworks like CUDA) and portable kernel-based models (frameworks designed to run across different hardware vendors). By the end of the course, learners are expected to gain the skills needed to map complex data analysis pipelines onto hardware and exploit massive parallelism effectively.

Prerequisites

  • Familiarity with one or more programming languages like C/C++ or Fortran is recommended

  • Basic understanding of computer architecture

  • Familiarity with parallel or concurrent programming concepts

Table of Contents

Learning outcomes

This material is for all researchers and engineers who work with large or small datasets and who want to learn powerful tools and best practices for writing more performant, parallelised, robust and reproducible data analysis pipelines.

By the end of this module, learners should:

  • Understanding how GPU kernels work at a low level

  • Learning how to map computations onto GPU hardware

  • Writing programs that exploit massive parallelism

Credit

Don’t forget to check out additional course materials from XXX. Please contact us if you want to reuse these course materials in your teaching. You can also join the XXX channel to share your experience and get more help from the community.

License

Note

To module authors: For code you may use any OSI-approved license as mentioned in https://spdx.org/licenses/, such as Apache License 2.0, GNU GPLv3, MIT. Please make sure to update the deed above and LICENSE.code file accordingly.