GPU computing in Vulkan
What you'll learn
- Install Vulkan library and use it in a C project
- Create Makefile for a project
- Enumerate GPUs in the system
- Allocate a GPU and its resources
- Prepare and submit a command buffer to a queue in the GPU
- Allocate a memory in the GPU and read/write to it.
- Write a program for GPU (i.e. shader) and run it in thousands instances at once.
- Generate a fractal image in the GPU
- Programming experience
- Interest in parallel execution
- Interest in fast execution of small routines
The course shows the simplest possible way to create a project utilizing Vulkan library to run a compute shader: From Makefile to the program performing very fast parallel calculations in GPU.
Vulkan is a cross plattform 3D graphics and computing library, successor of OpenGL. It was first released in 2016 and it is available on most of modern operating systems today.
All functions and operations with Vulkan library are demonstrated using C language, in a very understandable way, suitable also for developers specialized in other languages. To fully understand the course, some experience in programming and using static libraries is required though.
The course tries to lead you to visible results as soon as possible. Vulkan library usually requires to write hundreds (up to thousand) of lines to get first results and to understand what is happening inside, but here, the project grows while keeping your attention to all the dependencies.
The course describes how to:
Read properties and limits of the graphics adapters in the system
Allocate the GPU logical device and its execution queues
Allocate the GPU memory, read and write data from/to it
create a command buffer, records actions in it and send it to the GPU queue for execution
Implement data processing in a shader and execute in parallel
Generate a fractal image in the GPU
Compare results of GPU and CPU computing
Compare the speed of GPU and CPU computing
At the end, you'll be ready to write and execute your own compute shader using Vulkan library. Or, it gives a very good start to implement 3D graphics in Vulkan since you will already understand the principle and basics of Vulkan API.
Who this course is for:
- Software developers
- 3D graphics beginners interested in the latest technologies
- Mathematicians looking for a parallel execution of algorithms
Hi, my name is Miloslav and I'm a software developer for more than 20 years. When I began my career, I understood very quickly that programming is an art, I was always seeing my code like rhymes in a poem.
Most of my career I have worked for companies from communications and military industry, but recent years I'm developing embedded systems for automotive industry. I'm interested in digital signal processing, 3D graphics and algorithms theory.
I know how many questions must be answered to became a professional software developer, I had many of them. Now I'd like to answer your questions and bring some know-how to you.