VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.

227-0085-51L 3 Credits BSC D-ITET

P&S: Programming Heterogeneous Computing Systems with GPUs and other Accelerators

Lecturers & Examiners: Prof. Dr. Onur Mutlu
Does not take place this semester.
VVZ CR n/a

Last Updated: 2026-06-03 00:14:20

Abstract

The category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.

Objective

The increasing difficulty of scaling the performance and efficiency of CPUs every year has created the need for turning computers into heterogeneous systems, i.e., systems composed of multiple types of processors that can suit better different types of workloads or parts of them. More than a decade ago, Graphics Processing Units (GPUs) became general-purpose parallel processors, in order to make their outstanding processing capabilities available to many workloads beyond graphics. GPUs have been a critical key to the recent rise of Machine Learning and Artificial Intelligence, which took unrealistic training times before the use of GPUs. Field-Programmable Gate Arrays (FPGAs) are another example computing device that can deliver impressive benefits in terms of performance and energy efficiency. More specific examples are (1) a plethora of specialized accelerators (e.g., Tensor Processing Units for neural networks), and (2) near-data processing architectures (i.e., placing compute capabilities near or inside memory/storage). Despite the great advances in the adoption of heterogeneous systems in recent years, there are still many challenges to tackle, for example: - Heterogeneous implementations (using GPUs, FPGAs, TPUs) of modern applications from important fields such as bioinformatics, machine learning, graph processing, medical imaging, personalized medicine, robotics, virtual reality, etc. - Scheduling techniques for heterogeneous systems with different general-purpose processors and accelerators, e.g., kernel offloading, memory scheduling, etc. - Workload characterization and programming tools that enable easier and more efficient use of heterogeneous systems. If you are enthusiastic about working hands-on with different software, hardware, and architecture projects for heterogeneous systems, this is your P&S. You will have the opportunity to program heterogeneous systems with different types of devices (CPUs, GPUs, FPGAs, TPUs), propose algorithmic changes to important applications to better leverage the compute power of heterogeneous systems, understand different workloads and identify the most suitable device for their execution, design optimized scheduling techniques, etc. In general, the goal will be to reach the highest performance reported for a given important application. The course is conducted in English. The course has two main parts: Weekly lectures on GPU and heterogeneous programming. Hands-on project: Each student develops his/her own project. Course website: https://safari.ethz.ch/projects_and_seminars/doku.php?id=heterogeneous_systems

Content

See: https://safari.ethz.ch/projects_and_seminars/doku.php?id=heterogeneous_systems for past examples.

Resources

Lecture Notes

See:https://safari.ethz.ch/projects_and_seminars/doku.php?id=heterogeneous_systems

Literature

Learning Materials ============ 1. An introduction to SIMD processors and GPUs: http://www.youtube.com/watch?v=hOeIkAYraTE 2. An introduction to GPUs and heterogeneous programming: http://www.youtube.com/watch?v=y40-tY5WJ8A 3. Example recent studies of FPGA and GPU implementation for bioinformatics: GateKeeper: FPGA for bioinformatics (Bioinformatics 2017): Link SneakySnake: Pre-alignment filter on FPGA and GPU (Bioinformatics 2020): Link 4. An example recent study of a suite of heterogeneous benchmarks: Chai: heterogeneous benchmarks (ISPASS 2017): https://chai-benchmarks.github.io/assets/ispass17.pdf 5. An example recent study of a medical image application on GPU: GPU for medical imaging (CMPB 2020): Link 6. Example studies of programming tools and performance portability on heterogeneous systems: Boyi: execution models for FPGAs (FPGA 2020): Link Zorua: hardware support for GPU performance portability (MICRO 2016): Link Locality descriptor: Cross-layer abstraction to express data locality on GPUs (ISCA 2018): Link 7. Example studies of scheduling techniques for heterogeneous systems: Thread scheduling (MICRO 2011): https://people.inf.ethz.ch/omutlu/pub/large-gpu-warps_micro11.pdf DASH: memory scheduling (TACO 2016): Link

General Information

Language
English
Levels
BSC
Frequency
Semesterly recurring

Examination

Type
ungraded semester performance

Registration & Places

Limited places (Special selection)
Signup Start
13.02.2026
Signup End
27.02.2026
Priority: Registration for the course unit is only possible for the primary target group

Course Components

Type Title Time & Place Hours
practical/laboratory course P&S: Programming Heterogeneous Computing Systems with GPUs and other Accelerators
Does not take place this semester. Für den Zugang zum Angebot und zur Einschreibung loggen Sie sich hier ein (mit Ihrem n.ETHZ account): Bitte beachten Sie, dass die Seite jeweils erst zwei Wochen vor Semesterbeginn zugänglich ist und im Verlauf des Semesters wieder abgeschaltet wird. Die Einschreibung ist nur von Freitag vor Semesterbeginn bis zum ersten Freitagmittag im Semester möglich. To access the offer and to enroll for courses log in (with your n.ethz account): Please note that the P&S-site is accessible no earlier than two weeks before the start of the semester until four weeks after the start of the semester. Enrollment is only possible from Friday before the start of the semester until noon of the first Friday in the semester.
No time listed 3 h weekly

Offered In