Installing MASS CUDA#

Pre Requirements#

  • gcc/clang toolchain with C++ 17 support

  • cmake 3.20+

  • CUDA 12+

  • NCCL v2.29.7-1 or higher

  • libssh 0.11.4+

  • git

If you are not sure how to install NCCL and libssh, consider using the script provided in the repository of MASS CUDA, which is under the dependencies_install_scripts directory.

Add as dependency in CMake with FetchContent (Recomended)#

In CMakeLists.txt, the MASS CUDA can be access using FetchContent.

include(FetchContent)

set(MASS_CUDA_REPO_URL "https://bitbucket.org/mass_library_developers/mass_cuda_core")
set(MASS_CUDA_VERSION "develop")    # git tag or branch name here

FetchContent_Declare(
    mass_cuda
    GIT_REPOSITORY ${MASS_CUDA_REPO_URL}
    GIT_TAG ${MASS_CUDA_VERSION}
)
FetchContent_MakeAvailable(mass_cuda)

To add it as a dependency to your executable target, use target_link_libraries

target_link_libraries(your_target 
    PRIVATE 
        mass_cuda
        # other dependencies
)

Prebuild and install into certain path#

MASS CUDA can also be built from source and installed into specified directory

git clone https://bitbucket.org/mass_library_developers/mass_cuda_core -b [version]
cd mass_cuda_core
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=[path_to_installation_dir]
cmake --build build --parallel 
cmake --install build 

Note

Currently some project related configurations (e.g.: MASS_MAX_NEIGHBOR) can only be set at compile-time and cannot be modified after that. So, prebuild the library is not currently recommended since the configuration may not be suitable for all simulations