Basic Introduction
All there is to know about the world of OpenCL. You will:
- get lectures about the basics of OpenCL,
- recognise which code can best be translated into OpenCL-code,
- learn how to think in parallel – which is different than thinking in threads,
- get an overview of different GPGPU programming languages, and see the advantages of all.
This module can be given at any level.
Market overview for investors
For 10 years the market has been stable, but gets disrupted fast by GPGPU, smartphones and its chain-reaction. You will get an overview who to watch and why. Lots of stats, lots of insights, one you cannot miss when investing in hi-tech companies worldwide.
Introduction to OpenCL programming: host-side
This is mostly a lab-session and you will learn how to integrate kernels in your favourite programming-language: C, C++, Java, Python, Clyther and more. All solutions will be compared to the long official initialisation of OpenCL-software. Also caching kernels are described.
Introduction to OpenCL programming: kernels
This is mostly a lab-session and you will learn the basics of kernel-programming for chosen platforms: NVidia, Intel, AMD (Fusion&GPU), IBM POWER, Sony PS3 and ARM. This is excluding architecture specific optimisations, but you will learn by example for existing solutions.
Integrating into existing software
While porting to OpenCL is a much requested option, actually embedding the code into your software is somewhat more difficult. Say you found the calculation bottle-neck in your software, does the rest of your software can handle the extra speed? This is partly a round-table conversation with the system-architects to find the best solutions. Time to extend needed domain-knowledge is included.
Optimising Kernels (CPUs and GPUs)
Why is it that one kernel can be a few times slower on the other brand of GPU? Most books are about optimisations for GPUs, while the CPU can be sped up a lot using its SSE and AVX extensions. First part is theory, second part is lab-sessions using two ways to tackle the problem.
From CUDA to OpenCL
CUDA is a great programming language, but it currently works on NVIDIA-hardware only. The choice is to leave out people who have Intel- and AMD-hardware or to port your CUDA-software. If you want to port, then you can learn how in one day. Nice to combine with an optimisation-module.
Upcoming modules
The following modules have not completely been finished, but can be ordered. The exact release-dates will be announced on this page, Facebook, the newsletter and Twitter.
Developing for ARM
The end of the year you can learn how to program OpenCL for Android. Also a comparison is made with RenderScript and CUDA-for-Tegra.
Optimising for Embedded GPUs
As there is less transfer-time for embedded GPUs (AMD Fusion and some new Intel processors), new possibilities arrive. But these GPUs are not as powerful as their big brothers. An answer to the question when to use hte embedded GPU, the dedicated GPU or CPU.