From 63c2f6d046252d6780ab536738d9f28ca78334f6 Mon Sep 17 00:00:00 2001 From: Dan Lipsa <dan.lipsa@kitware.com> Date: Thu, 9 Jan 2025 16:05:22 -0500 Subject: [PATCH] Enable Catalyst for CUDA builds --- .gitlab/ci/configure_fedora39_cuda.cmake | 1 - ...e_fedora39_cuda_mpi_offscreen_osmesa.cmake | 3 -- .gitlab/ci/docker/fedora39-cuda/Dockerfile | 3 ++ .../docker/fedora39-cuda/install_catalyst.sh | 46 +++++++++++++++++++ .../ci/docker/fedora39-cuda/install_deps.sh | 2 +- 5 files changed, 50 insertions(+), 5 deletions(-) create mode 100755 .gitlab/ci/docker/fedora39-cuda/install_catalyst.sh diff --git a/.gitlab/ci/configure_fedora39_cuda.cmake b/.gitlab/ci/configure_fedora39_cuda.cmake index a78170bb24d..95168c0b083 100644 --- a/.gitlab/ci/configure_fedora39_cuda.cmake +++ b/.gitlab/ci/configure_fedora39_cuda.cmake @@ -23,7 +23,6 @@ set(VTK_MODULE_ENABLE_VTK_RenderingOpenXR NO CACHE STRING "") # OpenXR set(VTK_MODULE_ENABLE_VTK_RenderingRayTracing NO CACHE STRING "") # ospray set(VTK_MODULE_ENABLE_VTK_fides NO CACHE STRING "") # adios set(VTK_MODULE_ENABLE_VTK_xdmf3 NO CACHE STRING "") # boost -set(VTK_ENABLE_CATALYST OFF CACHE BOOL "") # catalyst # These are all tested in the non-CUDA CI job instead. This focuses on the CUDA # bits. diff --git a/.gitlab/ci/configure_fedora39_cuda_mpi_offscreen_osmesa.cmake b/.gitlab/ci/configure_fedora39_cuda_mpi_offscreen_osmesa.cmake index 31a5613c552..ce26792f96f 100644 --- a/.gitlab/ci/configure_fedora39_cuda_mpi_offscreen_osmesa.cmake +++ b/.gitlab/ci/configure_fedora39_cuda_mpi_offscreen_osmesa.cmake @@ -1,9 +1,6 @@ # Lowest-common denominator. Pascal = 60 set(CMAKE_CUDA_ARCHITECTURES 60 CACHE STRING "") -# catalyst is not installed on cuda image -set(VTK_ENABLE_CATALYST OFF CACHE BOOL "") - # OpenXR do not support OSMesa set(VTK_MODULE_ENABLE_VTK_RenderingOpenXR NO CACHE STRING "") diff --git a/.gitlab/ci/docker/fedora39-cuda/Dockerfile b/.gitlab/ci/docker/fedora39-cuda/Dockerfile index e3ab84c5fc7..d7024096bea 100644 --- a/.gitlab/ci/docker/fedora39-cuda/Dockerfile +++ b/.gitlab/ci/docker/fedora39-cuda/Dockerfile @@ -6,3 +6,6 @@ RUN sh /root/install_deps.sh COPY install_cuda.sh /root/install_cuda.sh RUN sh /root/install_cuda.sh + +COPY install_catalyst.sh /root/install_catalyst.sh +RUN sh /root/install_catalyst.sh diff --git a/.gitlab/ci/docker/fedora39-cuda/install_catalyst.sh b/.gitlab/ci/docker/fedora39-cuda/install_catalyst.sh new file mode 100755 index 00000000000..1299dfd600f --- /dev/null +++ b/.gitlab/ci/docker/fedora39-cuda/install_catalyst.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +readonly catalyst_repo="https://gitlab.kitware.com/paraview/catalyst" +# Use 2.0.0 release +readonly catalyst_commit="v2.0.0" + +readonly catalyst_root="$HOME/catalyst" +readonly catalyst_src="$catalyst_root/src" +readonly catalyst_build_root="$catalyst_root/build" + +git clone "$catalyst_repo" "$catalyst_src" +git -C "$catalyst_src" checkout "$catalyst_commit" + +catalyst_build () { + local subdir="$1" + shift + + local prefix="$1" + shift + + cmake -GNinja \ + -S "$catalyst_src" \ + -B "$catalyst_build_root/$subdir" \ + -DCATALYST_BUILD_SHARED_LIBS=ON \ + -DCATALYST_BUILD_TESTING=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + "-DCMAKE_INSTALL_PREFIX=$prefix" \ + "$@" + cmake --build "$catalyst_build_root/$subdir" --target install +} + +# MPI-less +catalyst_build nompi /usr \ + -DCATALYST_USE_MPI=OFF + +# MPICH +catalyst_build mpich /usr/lib64/mpich \ + -DCATALYST_USE_MPI=ON \ + -DCMAKE_INSTALL_LIBDIR=lib + +# OpenMPI +catalyst_build openmpi /usr/lib64/openmpi \ + -DCATALYST_USE_MPI=ON \ + -DCMAKE_INSTALL_LIBDIR=lib + +rm -rf "$catalyst_root" diff --git a/.gitlab/ci/docker/fedora39-cuda/install_deps.sh b/.gitlab/ci/docker/fedora39-cuda/install_deps.sh index 9167ab240c6..e700823b776 100755 --- a/.gitlab/ci/docker/fedora39-cuda/install_deps.sh +++ b/.gitlab/ci/docker/fedora39-cuda/install_deps.sh @@ -8,7 +8,7 @@ dnf install -y --setopt=install_weak_deps=False \ # Development tools dnf install -y --setopt=install_weak_deps=False \ - ninja-build + cmake ninja-build # MPI dependencies dnf install -y --setopt=install_weak_deps=False \ -- GitLab