Hide menu

TDDD56 Multicore and GPU programming

Information page for the CPU and GPU lab work and lessons

Lab Series

Please register for the labs via webreg by friday 5/11. Webreg will be opened at course start.

Presence in lab sessions is mandatory.

Lab deadlines

CPU-labs (Labs 1, 2, 3): last CPU lab session of your group, 24/26 nov 2021 (soft deadline), 17 dec 2021 10:00 (hard deadline)
GPU-labs (Labs 4, 5, 6): last GPU lab session of your group (15/17 dec 2021)

Slides and general info

Download the slides of lesson 1. (last updated 2021-11-08)

Download the slides of lesson 2. (last updated 2021-11-16)

Getting started with tools used in laboratories

Lab0: Introduction to C and the pthread API

A quick introduction by example to C syntax, data type and their use, functions, modules, as well as spawning and waiting for threads. Find another introduction from lab00 of the course "Concurrent programming and Operating Systems" (TDDB68), which include more C-related issues such as pointer management.

[source files]

Lab work

[Helper function for computing time spans]

Lab1: The Mandelbrot set and load balancing

Parallelize a generator of visual representation of the Mandelbrot set, fractals, observe load-balancing issues and implement a solution to them.

[source files] (Last updated 2018-11-12, no changes for 2021)

[instructions] (Last updated 2020-11-10)


Lab2: Non-blocking stack

Implement and measure the performance of a non-blocking, Treiber stack

[source files] (Last updated 2018-11-16, no changes for 2021)

[instructions] (Last updated 2020-11-18)

Lab3: High-level parallel programming

Try out high-level parallel programming with the data-parallel SkePU skeleton programming framework. Use the skeletons to implement image filters, including a median blur filter.

[source files] (Last updated 2020-11-25, no changes for 2021)

[instructions] (Last updated 2020-11-25)

[SkePU user guide] (2020)

[slides] (Last updated 2020-11-18)

Note: Logs/warnings about CL_TARGET_OPENCL_VERSION or MapSMtoCores undefined can be ignored.

Lab 4: CUDA 1

Lab material (from ISY)

Lab 5: CUDA 2

Lab material (from ISY)

Lab 6: OpenCL

Lab material (from ISY)

Page responsible: Christoph W Kessler
Last updated: 2021-11-17