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.
|CUDA||10.0 or later|
|CMake||3.17 or later|
|gcc||9.3 or later|
|OS||Linux distro (amd64)|
|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
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