OpenCL GPU training
Startdata en plaatsen
Beschrijving
Schedule
The training consists of two sessions of two days: Monday, Tuesday, Thursday and Friday, where Wednesday is a resting day. Around 40% consist of lectures and 50% lab-sessions and 10% discussions.
Important:
- The training is guaranteed to take place. If you are the only one, you’ll simply get personal training.
- The below schedule is indicative when it comes to lab-sessions – some lab-sessions can be (partly) skipped or replaced if time is getting too limited.
Day 1: OpenCL Foundations (For beginners only)
This is close to our standard OpenCL crash course. We start with the basic concepts, write our fist OpenCL program, discuss the architectures, discuss the difficulties of G…
Veelgestelde vragen
Er zijn nog geen veelgestelde vragen over dit product. Als je een vraag hebt, neem dan contact op met onze klantenservice.
Schedule
The training consists of two sessions of two days: Monday, Tuesday, Thursday and Friday, where Wednesday is a resting day. Around 40% consist of lectures and 50% lab-sessions and 10% discussions.
Important:
- The training is guaranteed to take place. If you are the only one, you’ll simply get personal training.
- The below schedule is indicative when it comes to lab-sessions – some lab-sessions can be (partly) skipped or replaced if time is getting too limited.
Day 1: OpenCL Foundations (For beginners only)
This is close to our standard OpenCL crash course. We start with the basic concepts, write our fist OpenCL program, discuss the architectures, discuss the difficulties of GPU-programming, compare to CUDA and C++, and end with writing simple code that runs on a laptop (CPU or GPU).
- OpenCL model
- OpenCL language
- Memory objects
- General hardware overview
- Task-parallelism and data-parallelism
- Mapping OpenCL to CPUs and GPUs
The lab-sessions are all done on your own laptops.
Lab-sessions:
- Clinfo
- ColorBalance
Day 2: Optimise a program from scratch
During the day, we will increase the level of requirements and touch all important aspects of OpenCL-programming.
- As we have several GPU-servers available for developing, we can provide you with login-credentials, a git-account and a short how-to for using the extra GPUs from NVidia and AMD, optionally Intel. This way you can use different graphic cards to find out which optimisations work and don’t work.
Optimisations we discuss during this day:
- Host-code
- Data-flow
- Memory handling
- Data transfer speed increase
- Memory alignments
- Scheduling
- Parallelism increase
- Latency reduction
- The most important kernel-optimisations from the different vendors
Lab-sessions:
- Matrix-multiplication
- Convolution
Day 3: Pause day
We found that most people need to have a break after two days, to let the information sink in.
For the Amsterdam training we offer an optional tour through the city in the afternoon.
Day 4: Memory optimisations
We start with discussing what we learned and did not learn. We focus on a few subjects of day 2 that were not clear enough.
Today we focus on creating and optimising more advanced software:
- Histogram
- Contrast Stretching
- Frame correlation
As each of these take about 3 hours, we try to already start on day two or continue on day five if needed.
Day 5: Tools, special subjects and final project
There are various tools you need to understand to get code that runs well on GPUs. This day you will learn to use various vendor-provided and open source tools to help you analyse your code.
- We have used tools from one vendor and are updating the materials to use open source tools that work on various
The tools are discussed and used along the following four subjects:
- Software correctness: data-races.
- Profiling: timing and finding hot-spots
- Reporting: let tools create useful reports.
- Debugging: finding bugs and learning what actually happens.
Special subjects:
- Splitting work over CPU&GPU: Running different kernels on CPU and GPU, to make maximum use of the whole computer.
- GL-CL interop: Understanding how interoperability with OpenGL works. With this the results can be shown on the screen with minimal latency.
- Optimising data-throughput when using multiple kernels.
Lab-sessions:
- Fixing non-optimal and broken code
The final project you will need to use all you’ve learnt and try to get the fastest code from class.
StreamComputing - the OpenCL company
Blijf op de hoogte van nieuwe ervaringen
Deel je ervaring
Heb je ervaring met deze cursus? Deel je ervaring en help anderen kiezen. Als dank voor de moeite doneert Springest € 1,- aan Stichting Edukans.Er zijn nog geen veelgestelde vragen over dit product. Als je een vraag hebt, neem dan contact op met onze klantenservice.