OpenCL seminar course (spring 2012)


Intensive seminar course about OpenCL, based on the book:

Heterogeneous Computing with OpenCL

Benedict Gaster, Lee Howes, David R. Kaeli, Perhaad Mistry, Dana Schaa

The book in Amazon. Two books are available in the department for this course.

Student lectures on Tuesdays at 12:15 and Thursdays at 12:15, 2h per session.
Starting on April 17th.

place: Tue TC133, Thu TC161

credits: 4-5

requirements for full credits:

  1. A lecture given
  2. Acting as an "opponent" in another lecture with prepared questions asked
  3. High level of lecture participation (max. one presentation can be missed, this is strict!)
  4. Personal OpenCL assignment (student can propose a topic related to OpenCL)

You are also welcome to attend only the lectures and/or to do the exercise work. Credits are granted only for full participation and a presentation (4 cr). If the exercise work is done, one gets 5 credit points.

registration: in POP, search with TKT-9636

About the presentations

Please bring the slides for your presentation as a PDF file or bring your own laptop with the slides. Beware that it might take some time to go through the chapter(s) and to prepare the slides so be sure to start working on your presentation early enough! Expect at least one work day to be spent per chapter.

Please use pictures in your presentation (you can scan them or try to find them in the net) to make it less boring.


A personal project. Student proposes an own case for OpenCL implementation and benchmarking. This can involve accelerating a program using OpenCL or another related OpenCL task. An acceptable project is an adequate contribution to the open source OpenCL implementation, Portable OpenCL.

Deadline: 15.6.2012


Weekly schedule

week 16
Chapter 1: Introduction to Parallel Programming
Chapter 2: Introduction to OpenCL
presented by Timo V.
questions by Heikki K.

Chapter 3: OpenCL Device Architectures
(+some new material of the state of the art architectures)
presented by Heikki K.
questions by Timo V.
week 17
Chapter 4: Basic OpenCL Examples
(+some additional example walk through)
presented by Otto E.
questions by VladimŪr G.

Chapter 5: Understanding OpenCL's Concurrency and Execution Model
This is probably the most important Chapter in the book!
presented by VladimŪr G.
questions by Otto E.
week 18 May 1st break
week 19
Tue (NOTE: Two lectures, might take a bit longer!)

Chapter 6: Dissecting a CPU/GPU OpenCL Implementation
presented by Teemu L.
questions by Omer A.

Chapter 11: OpenCL Extensions
Chapter 12: OpenCL Profiling and Debugging
Note: some of the extensions presented might be in the new OpenCL 1.2 standard. Please check and mention about it. For the debugging part it would be great to have a real demo of the tools, if possible.
presented by Omer A.
questions by Teemu L.

Lecture moved to Tue.
week 20
Tue (postponed to the next week)

Thu (a public holiday, helatorstai)
week 21
Chapter 7: OpenCL Case Study: Convolution
Chapter 8: OpenCL Case Study: Video Processing
Chapter 9: OpenCL Case Study: Histogram
Chapter 10: OpenCL Case Study: Mixed Particle Simulation
The idea in this lecture is not to go through all the cases in detail but pick some interesting optimizations or special things done in each of the case studies, e.g. OpenGL interoperation, memory alignment optimizations or similar.
presented by Muhammad H.
questions by everyone

A guest lecture about WebCL by Janne Pietišinen:
Nokia WebCL for Firefox: bringing the power of parallel computing to the web

Janne Pietišinen has been involved in the development of the WebCL implementation. He will describe the background and some of the approaches, challenges and solutions in the implementation. In addition, if time allows, he will also give a live demo.

week 24: Assignment deadline.