GPU computing in Vulkan.

The ultimate way to parallel computing using Vulkan API.

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.

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.

Course Content

  • Prepare for Vulkan project, –> 3 lectures • 13min.
  • Device and its resources. –> 5 lectures • 53min.
  • Pipeline and descriptor set –> 5 lectures • 43min.
  • Data buffers –> 3 lectures • 30min.
  • Shader examples –> 5 lectures • 53min.
  • End of course –> 1 lecture • 1min.

GPU computing in Vulkan.

Requirements

  • 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 today it is available on most of modern operating systems.

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.

Get Tutorial