The cudawrappers library is a C++ wrapper for the Nvidia C libraries such as the CUDA driver, NVRTC, and cuFFT.
This library is a C++ wrapper for the Nvidia C libraries (e.g. CUDA driver, NVRTC, cuFFT etc.). The main purposes are:
Originally, the API enforced RAII to even further reduce the risk of faulty code, but enforcing RAII and compatibility with (unmanaged) objects obtained outside this API are mutually exclusive.
Software | Minimum version |
---|---|
CUDA | 10.0 or later |
CMake | 3.17 or later |
gcc | 9.3 or later |
OS | Linux distro (amd64) |
Hardware | Type |
---|---|
GPU architecture | NVIDIA PASCAL or newer |
We use CMake in this project, so you can clone and build this library with the following steps:
git clone https://github.com/nlesc-recruit/cudawrappers
cd cudawrappers
cmake -S . -B build
make -C build
This command will create a build
folder, compile the code and generate the library libcudawrappers.so
in the build directory.
For more details on the building requirements and on testing, check the developer documentation.
To install to ~/.local
, use
git clone https://github.com/nlesc-recruit/cudawrappers
cd cudawrappers
cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local -S . -B build
make -C build
make -C build install
You can include the cudawrappers library in your own projects in various ways. We have created a few repositories with example setups to get you started:
Reducing Energy Consumption in Radio-astronomical and Ultrasound Imaging Tools