Playground repo for CUDA and OpenCL Backend development.
- CMake build system
- Device (CUDA, OpenCL)
- Device initialisation
- Device info
- Device program cache
- Backends (CUDA, OpenCL)
- Device search
- Device selection
- Buffer
- Buffer allocate to device (create)
- Buffer copy to host (read)
- Buffer copy to device (write)
- Buffer copy device to device (copy)
- Buffer free
- Image (1D/2D/3D)
- Image allocate to device (create)
- Image copy to host (read)
- Image copy to device (write)
- Image copy device to device (copy)
- Image free
- Program (ocl) / Module (cuda) creation from source
- Kernel launch
- Backend Manager (singleton)
- Array (CUDA, OpenCL)
- Array creation
- Array allocate to device (create)
- Array copy to host (read)
- Array copy to device (write)
- Array copy device to device (copy)
- Array free
- Image (CUDA, OpenCL)
- Image creation
- Image allocate to device (create)
- Image copy to host (read)
- Image copy to device (write)
- Image copy device to device (copy)
- Image free
- Execution
- Generate Defines
- Get Preamble
- Manage kernel parameters
- Launch kernel
Git clone the repository and run cmake as followed:
cmake -S . -B ./build
cmake --build ./build --parallel 10
- CMake
- C++ compiler
- CUDA and/or OpenCL installed on the system