diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 87c935432..6bcce3136 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -69,8 +69,8 @@ extends: - .docker_image -.ubuntu2004_hip_kokkos: &ubuntu2004_hip_kokkos - image: "kitware/vtkm:ci-ubuntu2004_hip_kokkos-20230220" +.ubuntu2204_hip_kokkos: &ubuntu2204_hip_kokkos + image: "kitware/vtkm:ci-ubuntu2204_hip_kokkos-20240625" extends: - .docker_image @@ -245,4 +245,5 @@ include: - local: '/.gitlab/ci/ubuntu1604.yml' - local: '/.gitlab/ci/ubuntu1804.yml' - local: '/.gitlab/ci/ubuntu2004.yml' + - local: '/.gitlab/ci/ubuntu2204.yml' - local: '/.gitlab/ci/windows10.yml' diff --git a/.gitlab/ci/docker/ubuntu2004/kokkos-hip/Dockerfile b/.gitlab/ci/docker/ubuntu2204/kokkos-hip/Dockerfile similarity index 70% rename from .gitlab/ci/docker/ubuntu2004/kokkos-hip/Dockerfile rename to .gitlab/ci/docker/ubuntu2204/kokkos-hip/Dockerfile index b9232768f..e69c5a18b 100644 --- a/.gitlab/ci/docker/ubuntu2004/kokkos-hip/Dockerfile +++ b/.gitlab/ci/docker/ubuntu2204/kokkos-hip/Dockerfile @@ -10,7 +10,7 @@ ## ##============================================================================= -FROM rocm/dev-ubuntu-20.04 +FROM rocm/dev-ubuntu-22.04 LABEL maintainer "Vicente Adolfo Bolea Sanchez" # Base dependencies for building VTK-m projects @@ -58,11 +58,22 @@ ENV PATH "/opt/cmake/bin:${PATH}" ENV CMAKE_PREFIX_PATH "/opt/rocm/lib/cmake:/opt/rocm/lib:${CMAKE_PREFIX_PATH}" ENV CMAKE_GENERATOR "Ninja" -# Build and install Kokkos -ARG KOKKOS_VERSION=3.7.01 +ENV KOKKOS_VERSION=3.7.01 COPY kokkos_cmake_config.cmake kokkos_cmake_config.cmake RUN curl -L https://github.com/kokkos/kokkos/archive/refs/tags/$KOKKOS_VERSION.tar.gz | tar -xzf - && \ - cmake -S kokkos-$KOKKOS_VERSION -B build -C kokkos_cmake_config.cmake && \ + cmake -S kokkos-$KOKKOS_VERSION -B build -C kokkos_cmake_config.cmake \ + -DCMAKE_PREFIX_INSTALL=/opt/kokkos/$KOKKOS_VERSION \ + -DKokkos_ARCH_VEGA900=ON && \ + cmake --build build -v && \ + cmake --install build && \ + rm -rf build kokkos-$KOKKOS_VERSION + +ENV KOKKOS_VERSION=4.3.01 +COPY kokkos_cmake_config.cmake kokkos_cmake_config.cmake +RUN curl -L https://github.com/kokkos/kokkos/archive/refs/tags/$KOKKOS_VERSION.tar.gz | tar -xzf - && \ + cmake -S kokkos-$KOKKOS_VERSION -B build -C kokkos_cmake_config.cmake \ + -DCMAKE_PREFIX_INSTALL=/opt/kokkos/$KOKKOS_VERSION \ + -DKokkos_ARCH_VEGA906=ON && \ cmake --build build -v && \ cmake --install build && \ rm -rf build kokkos-$KOKKOS_VERSION diff --git a/.gitlab/ci/docker/ubuntu2004/kokkos-hip/kokkos_cmake_config.cmake b/.gitlab/ci/docker/ubuntu2204/kokkos-hip/kokkos_cmake_config.cmake similarity index 82% rename from .gitlab/ci/docker/ubuntu2004/kokkos-hip/kokkos_cmake_config.cmake rename to .gitlab/ci/docker/ubuntu2204/kokkos-hip/kokkos_cmake_config.cmake index 7b71f7b65..0bbf33e6b 100644 --- a/.gitlab/ci/docker/ubuntu2004/kokkos-hip/kokkos_cmake_config.cmake +++ b/.gitlab/ci/docker/ubuntu2204/kokkos-hip/kokkos_cmake_config.cmake @@ -9,13 +9,10 @@ ##============================================================================ set(CMAKE_BUILD_TYPE "release" CACHE STRING "") -set(CMAKE_INSTALL_PREFIX /opt/kokkos CACHE PATH "") set(CMAKE_C_COMPILER /opt/rocm/llvm/bin/clang CACHE FILEPATH "") set(CMAKE_CXX_COMPILER /opt/rocm/llvm/bin/clang++ CACHE FILEPATH "") -set(CMAKE_CXX_STANDARD "14" CACHE STRING "") set(CMAKE_POSITION_INDEPENDENT_CODE ON CACHE BOOL "") set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "") -set(Kokkos_ARCH_VEGA900 ON CACHE BOOL "") set(Kokkos_ENABLE_HIP ON CACHE BOOL "") set(Kokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE OFF CACHE BOOL "") diff --git a/.gitlab/ci/ubuntu1804.yml b/.gitlab/ci/ubuntu1804.yml index 58d94a30f..ffe5b3856 100644 --- a/.gitlab/ci/ubuntu1804.yml +++ b/.gitlab/ci/ubuntu1804.yml @@ -196,7 +196,7 @@ test:ubuntu1804_clang8: # Build on ubuntu1804 with kokkos and test on ubuntu1804 # Uses CUDA 11 -build:ubuntu1804_kokkos: +build:ubuntu1804_kokkos37: tags: - build - vtkm @@ -212,7 +212,7 @@ build:ubuntu1804_kokkos: CMAKE_BUILD_TYPE: Release VTKM_SETTINGS: "benchmarks+kokkos+turing+64bit_floats+shared" -test:ubuntu1804_kokkos: +test:ubuntu1804_kokkos37: tags: - test - vtkm @@ -225,9 +225,9 @@ test:ubuntu1804_kokkos: - .cmake_test_linux - .run_automatically dependencies: - - build:ubuntu1804_kokkos + - build:ubuntu1804_kokkos37 needs: - - build:ubuntu1804_kokkos + - build:ubuntu1804_kokkos37 build:ubuntu1804_cuda_perftest: tags: diff --git a/.gitlab/ci/ubuntu2004.yml b/.gitlab/ci/ubuntu2004.yml index 0d1c28365..53b7981c1 100644 --- a/.gitlab/ci/ubuntu2004.yml +++ b/.gitlab/ci/ubuntu2004.yml @@ -10,7 +10,7 @@ ## ##============================================================================= -build:ubuntu2004_kokkos: +build:ubuntu2004_kokkos37: tags: - build - vtkm @@ -25,7 +25,7 @@ build:ubuntu2004_kokkos: CMAKE_PREFIX_PATH: "/opt/anari" VTKM_SETTINGS: "kokkos+shared+64bit_floats+rendering+anari" -test:ubuntu2004_kokkos: +test:ubuntu2004_kokkos37: tags: - test - vtkm @@ -36,55 +36,6 @@ test:ubuntu2004_kokkos: - .cmake_test_linux - .run_automatically dependencies: - - build:ubuntu2004_kokkos + - build:ubuntu2004_kokkos37 needs: - - build:ubuntu2004_kokkos - -build:ubuntu2004_hip_kokkos: - tags: - - vtkm - - docker - - linux-x86_64 - - radeon - extends: - - .ubuntu2004_hip_kokkos - - .cmake_build_linux - - .run_automatically - variables: - CMAKE_BUILD_TYPE: "RelWithDebInfo" - VTKM_SETTINGS: "benchmarks+kokkos+hip+no_rendering+ccache" - - CMAKE_PREFIX_PATH: "/opt/rocm/lib/cmake" - LD_LIBRARY_PATH: "/opt/rocm/lib" - CMAKE_HIP_COMPILER: "/opt/rocm/llvm/bin/clang++" - Kokkos_CXX_COMPILER: "/opt/rocm/llvm/bin/clang++" - CMAKE_HIP_ARCHITECTURES: "gfx900" - - # -isystem= is not affected by CCACHE_BASEDIR, thus we must ignore it - CCACHE_IGNOREOPTIONS: "-isystem=*" - CCACHE_BASEDIR: "$CI_PROJECT_DIR" - CCACHE_COMPILERCHECK: "content" - CCACHE_NOHASHDIR: "true" - CCACHE_RESHARE: "true" - after_script: - - ccache -v -s - - ccache -z - -test:ubuntu2004_hip_kokkos: - tags: - - vtkm - - docker - - linux-x86_64 - - radeon - extends: - - .ubuntu2004_hip_kokkos - - .cmake_test_linux - - .run_upstream_branches - variables: - CTEST_MAX_PARALLELISM: 1 - CTEST_EXCLUSIONS: "UnitTestWorkletParticleAdvection" - dependencies: - - build:ubuntu2004_hip_kokkos - needs: - - build:ubuntu2004_hip_kokkos - timeout: 3 hours + - build:ubuntu2004_kokkos37 diff --git a/.gitlab/ci/ubuntu2204.yml b/.gitlab/ci/ubuntu2204.yml new file mode 100644 index 000000000..a070320b0 --- /dev/null +++ b/.gitlab/ci/ubuntu2204.yml @@ -0,0 +1,85 @@ +##============================================================================= +## +## Copyright (c) Kitware, Inc. +## All rights reserved. +## See LICENSE.txt for details. +## +## This software is distributed WITHOUT ANY WARRANTY; without even +## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +## PURPOSE. See the above copyright notice for more information. +## +##============================================================================= + +.kokkos_rocm_vars: &kokkos_rocm_vars + variables: + CCACHE_BASEDIR: "$CI_PROJECT_DIR" + CCACHE_COMPILERCHECK: "content" + # -isystem= is not affected by CCACHE_BASEDIR, thus we must ignore it + CCACHE_IGNOREOPTIONS: "-isystem=*" + CCACHE_NOHASHDIR: "true" + CCACHE_RESHARE: "true" + + CMAKE_BUILD_TYPE: "RelWithDebInfo" + CMAKE_HIP_COMPILER: "/opt/rocm/llvm/bin/clang++" + Kokkos_CXX_COMPILER: "/opt/rocm/llvm/bin/clang++" + LD_LIBRARY_PATH: "/opt/rocm/lib" + CXX: "hipcc" + +build:ubuntu2204_hip_kokkos37: + tags: + - vtkm + - docker + - linux-x86_64 + - radeon + extends: + - .ubuntu2204_hip_kokkos + - .cmake_build_linux + - .kokkos_rocm_vars + - .run_automatically + variables: + CMAKE_BUILD_TYPE: "RelWithDebInfo" + CMAKE_HIP_ARCHITECTURES: "gfx900" + Kokkos_DIR: "/opt/kokkos/3.7.01/" + VTKM_SETTINGS: "benchmarks+kokkos+hip+no_rendering+ccache" + after_script: + - ccache -v -s + - ccache -z + +test:ubuntu2204_hip_kokkos37: + tags: + - vtkm + - docker + - linux-x86_64 + - radeon + extends: + - .ubuntu2204_hip_kokkos + - .cmake_test_linux + - .run_upstream_branches + variables: + CTEST_MAX_PARALLELISM: 1 + CTEST_EXCLUSIONS: "UnitTestWorkletParticleAdvection" + dependencies: + - build:ubuntu2204_hip_kokkos37 + needs: + - build:ubuntu2204_hip_kokkos37 + timeout: 3 hours + +build:ubuntu2204_hip_kokkos43: + tags: + - vtkm + - docker + - linux-x86_64 + - radeon + extends: + - .ubuntu2204_hip_kokkos + - .cmake_build_linux + - .kokkos_rocm_vars + - .run_automatically + variables: + CMAKE_BUILD_TYPE: "RelWithDebInfo" + CMAKE_HIP_ARCHITECTURES: "gfx906" + Kokkos_DIR: "/opt/kokkos/4.3.01/" + VTKM_SETTINGS: "benchmarks+kokkos+hip+no_rendering+ccache" + after_script: + - ccache -v -s + - ccache -z diff --git a/README.md b/README.md index aad908b95..bde7565b8 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,8 @@ Optional dependencies are: + Kokkos Device Adapter + [Kokkos](https://kokkos.github.io/) 3.7+ + + CXX env variable or CMAKE_CXX_COMPILER should be set to + hipcc when using Kokkos device adapter with HIP (ROCM>=6). + CUDA Device Adapter + [Cuda Toolkit 9.2, >= 10.2](https://developer.nvidia.com/cuda-toolkit) + Note CUDA >= 10.2 is required on Windows