Vesuvius is a Vulkan library that provides an interface similar to the CUDA Runtime API for GPGPU.
The library encapsulates the main Vulkan API types used for GPGPU and reduces the amount of boilerplate code, but leaves the ability to use Vulkan API functions if necessary.
For GPU computing, the Compute class is implemented, similar in purpose and use to the kernel functions in CUDA, it supports working with textures, buffers, and passing pointers to memory as an argument. Copy functions are implemented for buffers and textures (both from the buffer and from memory).
To simplify synchronization (in the Vulkan API, the code is executed asynchronously), a stream synchronization tool (analogous to cudaStream) is implemented, commands within one stream can be executed both sequentially and asynchronously.