Practical overview
When it fits
Consider Kompute when you need a programmable Vulkan-based layer for custom GPU compute and are prepared to provide the workload, shaders and application integration.
Who it is for
- Developers building GPU-accelerated machine-learning or data-processing applications.
- C++ developers seeking lower-level control over GPU operations and component extensions.
- Teams integrating compute workloads with existing Vulkan applications or mobile projects using Android NDK examples.
Documented uses
- Transfer tensor data between host memory and a GPU for shader-based processing.
- Build and dispatch custom GPU algorithms using Vulkan.
- Organize compute operations into sequences that can be evaluated synchronously or asynchronously.
- Develop Python-accessible GPU-compute workflows or C++ implementations requiring lower-level optimization.
Requirements & limits
The repository is public and lists the Apache-2.0 license.
- Kompute is a developer framework; it does not provide a ready-to-run model or hosted inference service.
- The documented interfaces are C++ and Python; the repository badges identify C++14–20, CMake and Python 3.7–3.9.
- GPU computation is expressed through Vulkan, with examples using tensors, shaders, algorithm dispatch and sequences.
- The project describes mobile support and includes Android NDK examples; the README also identifies Linux, Android, iOS, Windows and macOS as supported platforms.
- The bring-your-own-Vulkan design is intended to integrate with existing Vulkan applications.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Run a shader operation with Kompute’s C++ interface
Create tensors, dispatch a shader operation, and retrieve results using the documented C++ sequence.
Before you start
- A C++ project using Kompute; the README identifies C++14–20 and CMake.
- A Vulkan-capable GPU and a shader string suitable for the example.
Steps
Create a
kp::Managerwith default settings and use it to create input and output tensors.Collect the tensors into a
std::vector<std::shared_ptr>, define a workgroup and constants, and create an algorithm from the parameters andcompileSource(shader).Use a sequence to record
OpSyncDeviceandOpAlgoDispatch, then calleval()to execute the recorded operations.Create a sequence for result synchronization, call
evalAsync(params), and thenevalAwait()before reading results.
Expected outcome
The shader operation is dispatched and the GPU results are synchronized back to local memory for retrieval.
Guide limitations
- The README example presumes an available Vulkan device; it does not provide installation or Vulkan-driver setup steps here.
- The shader source and the remainder of the example, including the result-reading code, are not fully specified in the available README text.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 10 October 2026
- Original website title
- KomputeProject/kompute · Official homepage title · retained in its source language

