From 2bcba95f75d2823dbe56cc4dd73a66ba247992f3 Mon Sep 17 00:00:00 2001 From: "Adrien M. BERNEDE" <51493078+adrienbernede@users.noreply.github.com> Date: Fri, 21 Mar 2025 11:46:16 +0100 Subject: [PATCH] Update RADIUSS packages with latest release and sync with RSC implementation --- .../repos/builtin/packages/caliper/package.py | 13 ++++++++++ .../repos/builtin/packages/camp/package.py | 17 +++++++++++-- .../repos/builtin/packages/care/package.py | 25 +++++++++++++++++++ .../repos/builtin/packages/chai/package.py | 10 ++++++-- .../builtin/packages/raja-perf/package.py | 8 ++++-- .../repos/builtin/packages/raja/package.py | 13 +++++++++- .../repos/builtin/packages/umpire/package.py | 18 ++++++++++--- 7 files changed, 94 insertions(+), 10 deletions(-) diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py index ab82ef2417e..91c13bde7db 100644 --- a/var/spack/repos/builtin/packages/caliper/package.py +++ b/var/spack/repos/builtin/packages/caliper/package.py @@ -149,6 +149,19 @@ def _get_sys_type(self, spec): sys_type = env["SYS_TYPE"] return sys_type + @property + def cache_name(self): + hostname = socket.gethostname() + if "SYS_TYPE" in env: + hostname = hostname.rstrip("1234567890") + return "{0}-{1}-{2}@{3}-{4}.cmake".format( + hostname, + self._get_sys_type(self.spec), + self.spec.compiler.name, + self.spec.compiler.version, + self.spec.dag_hash(8), + ) + def initconfig_compiler_entries(self): spec = self.spec entries = super().initconfig_compiler_entries() diff --git a/var/spack/repos/builtin/packages/camp/package.py b/var/spack/repos/builtin/packages/camp/package.py index a78b94a9404..7fef387a4be 100644 --- a/var/spack/repos/builtin/packages/camp/package.py +++ b/var/spack/repos/builtin/packages/camp/package.py @@ -15,11 +15,17 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/LLNL/camp.git" url = "https://github.com/LLNL/camp/archive/v0.1.0.tar.gz" - maintainers("trws", "adrienbernede") + maintainers("adrienbernede", "kab163", "trws") license("BSD-3-Clause") version("main", branch="main", submodules=False) + version( + "2025.03.0", + tag="v2025.03.0", + commit="ee0a3069a7ae72da8bcea63c06260fad34901d43", + submodules=False, + ) version( "2024.07.0", tag="v2024.07.0", @@ -106,7 +112,14 @@ def cmake_args(self): options.append(self.define_from_variant("ENABLE_HIP", "rocm")) if spec.satisfies("+rocm"): - options.append("-DHIP_ROOT_DIR={0}".format(spec["hip"].prefix)) + rocm_root = dirname(spec["llvm-amdgpu"].prefix) + options.append("-DROCM_PATH={0}".format(rocm_root)) + + # there is only one dir like this, but the version component is unknown + options.append( + "-DHIP_CLANG_INCLUDE_PATH=" + + glob.glob("{}/lib/clang/*/include".format(spec["llvm-amdgpu"].prefix))[0] + ) archs = ";".join(self.spec.variants["amdgpu_target"].value) options.append("-DCMAKE_HIP_ARCHITECTURES={0}".format(archs)) diff --git a/var/spack/repos/builtin/packages/care/package.py b/var/spack/repos/builtin/packages/care/package.py index 0176f961068..90f98749964 100644 --- a/var/spack/repos/builtin/packages/care/package.py +++ b/var/spack/repos/builtin/packages/care/package.py @@ -24,6 +24,24 @@ class Care(CachedCMakePackage, CudaPackage, ROCmPackage): version("develop", branch="develop", submodules=False) version("master", branch="master", submodules=False) + version( + "0.15.0", + tag="v0.15.0", + commit="aff9eea69b6d95342371aacc44b73bef785255f3", + submodules=False, + ) + version( + "0.14.1", + tag="v0.14.1", + commit="110c6e5766ead59b231e2b05deecd7567874e907", + submodules=False, + ) + version( + "0.14.0", + tag="v0.14.0", + commit="2784188a067abac35747d58b5a5daa1b3852756b", + submodules=False, + ) version( "0.13.3", tag="v0.13.3", @@ -250,6 +268,13 @@ def initconfig_package_entries(self): entries.append(cmake_cache_string("CMAKE_BUILD_TYPE", spec.variants["build_type"].value)) + # C++14 + if spec.satisfies("@:0.14.1"): + entries.append(cmake_cache_string("BLT_CXX_STD", "c++14")) + # C++17 + else: + entries.append(cmake_cache_string("BLT_CXX_STD", "c++17")) + entries.append(cmake_cache_option("ENABLE_TESTS", spec.satisfies("+tests"))) entries.append(cmake_cache_option("CARE_ENABLE_TESTS", spec.satisfies("+tests"))) # For tests to work, we also need BLT_ENABLE_TESTS to be on. diff --git a/var/spack/repos/builtin/packages/chai/package.py b/var/spack/repos/builtin/packages/chai/package.py index 6a14f8bc053..01027c21a4e 100644 --- a/var/spack/repos/builtin/packages/chai/package.py +++ b/var/spack/repos/builtin/packages/chai/package.py @@ -18,11 +18,17 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/LLNL/CHAI.git" tags = ["ecp", "e4s", "radiuss"] - maintainers("davidbeckingsale", "adayton1", "adrienbernede") + maintainers("adayton1", "adrienbernede", "davidbeckingsale", "kab163") license("BSD-3-Clause") version("develop", branch="develop", submodules=False) + version( + "2025.03.0", + tag="v2025.03.0", + commit="79f6414a00a89070054ac97baed47d21d10c83a4", + submodules=False, + ) version( "2024.07.0", tag="v2024.07.0", @@ -104,7 +110,7 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage): # We propagate the patch here. patch("change_mpi_target_name_umpire_patch.patch", when="@2022.10.0:2023.06.0") - variant("enable_pick", default=False, description="Enable pick method") + variant("enable_pick", default=False, when="@:2024", description="Enable pick method") variant( "separable_compilation", default=True, diff --git a/var/spack/repos/builtin/packages/raja-perf/package.py b/var/spack/repos/builtin/packages/raja-perf/package.py index 652fe0c7bc7..f683442952a 100644 --- a/var/spack/repos/builtin/packages/raja-perf/package.py +++ b/var/spack/repos/builtin/packages/raja-perf/package.py @@ -99,6 +99,7 @@ class RajaPerf(CachedCMakePackage, CudaPackage, ROCmPackage): description="Tests to run", ) variant("caliper", default=False, description="Build with support for Caliper based profiling") + variant("lowopttest", default=False, description="Intended for developers to use low optimization level for tests to pass with some compilers.") depends_on("blt") depends_on("blt@0.6.2:", type="build", when="@2024.07.0:") @@ -176,6 +177,9 @@ def initconfig_compiler_entries(self): # Default entries are already defined in CachedCMakePackage, inherit them: entries = super().initconfig_compiler_entries() + if spec.satisfies("+lowopttest"): + entries.append(cmake_cache_string("CMAKE_CXX_FLAGS_RELEASE", "-O1")) + if spec.satisfies("+rocm ^blt@:0.6"): entries.insert(0, cmake_cache_path("CMAKE_CXX_COMPILER", spec["hip"].hipcc)) @@ -249,7 +253,7 @@ def initconfig_hardware_entries(self): else: entries.append(cmake_cache_option("ENABLE_HIP", False)) - entries.append(cmake_cache_option("ENABLE_OPENMP_TARGET", "+omptarget" in spec)) + entries.append(cmake_cache_option("RAJA_ENABLE_TARGET_OPENMP", "+omptarget" in spec)) if "+omptarget" in spec: if "%xl" in spec: entries.append( @@ -320,7 +324,7 @@ def initconfig_package_entries(self): entries.append(cmake_cache_option("BUILD_SHARED_LIBS", "+shared" in spec)) entries.append(cmake_cache_option("ENABLE_OPENMP", "+openmp" in spec)) entries.append(cmake_cache_option("RAJA_ENABLE_OPENMP_TASK", "+omptask" in spec)) - entries.append(cmake_cache_option("ENABLE_SYCL", spec.satisfies("+sycl"))) + entries.append(cmake_cache_option("RAJA_ENABLE_SYCL", spec.satisfies("+sycl"))) # C++17 if spec.satisfies("@2024.07.0:") and spec.satisfies("+sycl"): diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py index dfb11e93dda..89b5d49524f 100644 --- a/var/spack/repos/builtin/packages/raja/package.py +++ b/var/spack/repos/builtin/packages/raja/package.py @@ -25,12 +25,18 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/LLNL/RAJA.git" tags = ["radiuss", "e4s"] - maintainers("davidbeckingsale", "adrienbernede") + maintainers("adrienbernede", "davidbeckingsale", "kab163") license("BSD-3-Clause") version("develop", branch="develop", submodules=submodules) version("main", branch="main", submodules=submodules) + version( + "2025.03.0", + tag="v2025.03.0", + commit="1d70abf171474d331f1409908bdf1b1c3fe19222", + submodules=submodules, + ) version( "2024.07.0", tag="v2024.07.0", @@ -208,6 +214,8 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): description="Run all the tests, including those known to fail.", ) + variant("lowopttest", default=False, description="Intended for developers to use low optimization level for tests to pass with some compilers.") + depends_on("blt", type="build") depends_on("blt@0.6.2:", type="build", when="@2024.02.1:") depends_on("blt@0.6.1", type="build", when="@2024.02.0") @@ -365,6 +373,9 @@ def initconfig_package_entries(self): entries.append(cmake_cache_option("RAJA_ENABLE_SYCL", spec.satisfies("+sycl"))) + if spec.satisfies("+lowopttest"): + entries.append(cmake_cache_string("CMAKE_CXX_FLAGS_RELEASE", "-O1")) + # C++17 if spec.satisfies("@2024.07.0:") and spec.satisfies("+sycl"): entries.append(cmake_cache_string("BLT_CXX_STD", "c++17")) diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py index 03e89fe4215..cd6577c786f 100644 --- a/var/spack/repos/builtin/packages/umpire/package.py +++ b/var/spack/repos/builtin/packages/umpire/package.py @@ -18,11 +18,17 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/LLNL/Umpire.git" tags = ["radiuss", "e4s"] - maintainers("davidbeckingsale", "adrienbernede") + maintainers("adrienbernede", "davidbeckingsale", "kab163") license("MIT") version("develop", branch="develop", submodules=False) + version( + "2025.03.0", + tag="v2025.03.0", + commit="1ed0669c57f041baa1f1070693991c3a7a43e7ee", + submodules=False, + ) version( "2024.07.0", tag="v2024.07.0", @@ -193,6 +199,7 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): variant("c", default=True, description="Build C API") variant("mpi", default=False, description="Enable MPI support") variant("ipc_shmem", default=False, description="Enable POSIX shared memory") + variant("mpi3_shmem", default=False, description="Enable MPI3 shared memory") variant( "sqlite_experimental", default=False, @@ -229,6 +236,7 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.8:", type="build") depends_on("blt", type="build") + depends_on("blt@0.7.0:", type="build", when="@2025.03.0:") depends_on("blt@0.6.2:", type="build", when="@2024.02.1:") depends_on("blt@0.6.1", type="build", when="@2024.02.0") depends_on("blt@0.5.3", type="build", when="@2023.06.0") @@ -256,9 +264,9 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("sqlite", when="+sqlite_experimental") depends_on("mpi", when="+mpi") - depends_on("fmt@9.1:", when="@2024.02.0:") + depends_on("fmt@9.1:11.0", when="@2024.02.0:") # For some reason, we need c++ 17 explicitly only with intel - depends_on("fmt@9.1: cxxstd=17", when="@2024.02.0: %intel@19.1") + depends_on("fmt@9.1:11.0 cxxstd=17", when="@2024.02.0: %intel@19.1") with when("@5.0.0:"): with when("+cuda"): @@ -291,6 +299,9 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): "+rocm", when="+omptarget", msg="Cant support both rocm and openmp device backends at once" ) conflicts("+ipc_shmem", when="@:5.0.1") + conflicts("+mpi3_shmem", when="@:2024.07.0") + conflicts("+mpi3_shmem", when="~mpi") + conflicts("+ipc_shmem", when="+mpi3_shmem") conflicts("+sqlite_experimental", when="@:6.0.0") conflicts("+sanitizer_tests", when="~asan") @@ -386,6 +397,7 @@ def initconfig_mpi_entries(self): entries = super().initconfig_mpi_entries() entries.append(cmake_cache_option("ENABLE_MPI", spec.satisfies("+mpi"))) + entries.append(cmake_cache_option("UMPIRE_ENABLE_MPI3_SHARED_MEMORY", spec.satisfies("+mpi3_shmem"))) return entries