diff --git a/.gitlab/spack/envs/cached-cmake/pipeline.yml b/.gitlab/spack/envs/cached-cmake/pipeline.yml index c3aaa711..3eef1081 100644 --- a/.gitlab/spack/envs/cached-cmake/pipeline.yml +++ b/.gitlab/spack/envs/cached-cmake/pipeline.yml @@ -16,7 +16,7 @@ variables: #MY_SPACK_COMMIT: 70534ac9d457da9bc884feb10a64974ad32c19e3 # develop-2025-01-12 #MY_SPACK_COMMIT: c0bdc372266c53a078f32f910abe25c05848a74c # develop-2025-02-09 #MY_SPACK_COMMIT: 280017a9ba3f6a969743deca0eebc96e7c0e5cfd # rsc-2025-03-0 - MY_SPACK_BRANCH: v1.0.2 + MY_SPACK_BRANCH: v1.1.0 include: - local: .gitlab/corona.yml diff --git a/.gitlab/spack/envs/cached-cmake/spack.yaml b/.gitlab/spack/envs/cached-cmake/spack.yaml index 67fcb951..c2c89d65 100644 --- a/.gitlab/spack/envs/cached-cmake/spack.yaml +++ b/.gitlab/spack/envs/cached-cmake/spack.yaml @@ -9,10 +9,11 @@ spack: #[general--] repos: - llnl_radiuss: ./spack_repo/llnl_radiuss/ + ## Use for temporary testing purpose, comment out before merging to main branch: + #llnl_radiuss: ./spack_repo/llnl_radiuss/ builtin: - commit: a229f54670 git: https://github.com/spack/spack-packages.git + commit: 3f482a6fca include: - $LCSCHEDCLUSTER/config.yaml - $LCSCHEDCLUSTER/packages.yaml diff --git a/.gitlab/spack/envs/shared-ci/pipeline.yml b/.gitlab/spack/envs/shared-ci/pipeline.yml index 2d886804..dcc12fe8 100644 --- a/.gitlab/spack/envs/shared-ci/pipeline.yml +++ b/.gitlab/spack/envs/shared-ci/pipeline.yml @@ -16,7 +16,7 @@ variables: #MY_SPACK_COMMIT: 70534ac9d457da9bc884feb10a64974ad32c19e3 # develop-2025-01-12 #MY_SPACK_COMMIT: c0bdc372266c53a078f32f910abe25c05848a74c # develop-2025-02-09 #MY_SPACK_COMMIT: 280017a9ba3f6a969743deca0eebc96e7c0e5cfd # rsc-2025-03-0 - MY_SPACK_BRANCH: v1.0.2 + MY_SPACK_BRANCH: v1.1.0 include: - local: .gitlab/corona.yml diff --git a/.gitlab/spack/envs/shared-ci/spack.yaml b/.gitlab/spack/envs/shared-ci/spack.yaml index cb3b5b02..3dcb2506 100644 --- a/.gitlab/spack/envs/shared-ci/spack.yaml +++ b/.gitlab/spack/envs/shared-ci/spack.yaml @@ -9,10 +9,11 @@ spack: #[general--] repos: - llnl_radiuss: ./spack_repo/llnl_radiuss/ + ## Use for temporary testing purpose, comment out before merging to main branch: + #llnl_radiuss: ./spack_repo/llnl_radiuss/ builtin: - commit: a229f54670 git: https://github.com/spack/spack-packages.git + commit: 3f482a6fca include: - $LCSCHEDCLUSTER/config.yaml - $LCSCHEDCLUSTER/packages.yaml diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index c438d019..27f8311e 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,4 +1,22 @@ -# v2025.11.0 +# v2026.02.0 + +Recommended Spack version: v1.1.0, +Required spack-packages commit: 3f482a6fca + +## Packages +- BREAKING: moved local packages to upstream spack/spack-packages Updates of + the radiuss packages should not be pushed directly to spack/spack-packages. + Reference to spack-packages was updated accordingly. We kept the structure + for a local repository for temporary testing purpose only. + +- With the update of the spack-packages reference, some changes happened in + radiuss packages (latest releases, updated dependencies...). Please refer to + spack-packages history for more details. + +## Configs Update +- Added rocprofiler external for Caliper + +# v2025.11.1 Recommended Spack version: v1.0.2, Vetted spack-packages commit: a229f54670 diff --git a/blueos_3_ppc64le_ib/spack.yaml b/blueos_3_ppc64le_ib/spack.yaml index 933cb18d..39b7fad5 100644 --- a/blueos_3_ppc64le_ib/spack.yaml +++ b/blueos_3_ppc64le_ib/spack.yaml @@ -1,8 +1,8 @@ spack: repos: builtin:: - commit: a229f54670 git: https://github.com/spack/spack-packages.git + commit: 3f482a6fca include: - config.yaml - packages.yaml diff --git a/spack_repo/llnl_radiuss/packages/.gitkeep b/spack_repo/llnl_radiuss/packages/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/spack_repo/llnl_radiuss/packages/blt/package.py b/spack_repo/llnl_radiuss/packages/blt/package.py deleted file mode 100644 index 994c1d9a..00000000 --- a/spack_repo/llnl_radiuss/packages/blt/package.py +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 2013-2025 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os -import re - -from spack_repo.builtin.build_systems.cached_cmake import cmake_cache_string -from spack_repo.builtin.build_systems.generic import Package - -from spack.package import * - - -def spec_uses_toolchain(spec): - gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") - using_toolchain = list(filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"])) - return using_toolchain - - -def spec_uses_gccname(spec): - gcc_name_regex = re.compile(".*gcc-name.*") - using_gcc_name = list(filter(gcc_name_regex.match, spec.compiler_flags["cxxflags"])) - return using_gcc_name - - -def llnl_link_helpers(options, spec, compiler): - # From local package: - if "fortran" in spec: - fortran_compilers = ["gfortran", "xlf"] - if any(f_comp in compiler.fc for f_comp in fortran_compilers) and ( - "clang" in compiler.cxx - ): - # Pass fortran compiler lib as rpath to find missing libstdc++ - libdir = os.path.join(os.path.dirname(os.path.dirname(compiler.fc)), "lib") - flags = "" - for _libpath in [libdir, libdir + "64"]: - if os.path.exists(_libpath): - flags += " -Wl,-rpath,{0}".format(_libpath) - description = "Adds a missing libstdc++ rpath" - if flags: - options.append(cmake_cache_string("BLT_EXE_LINKER_FLAGS", flags, description)) - - if "cxx" in spec and spec["cxx"].name == "cce": - description = "Adds a missing rpath for libraries associated with the fortran compiler" - # Here is where to find libs that work for fortran - libdir = "/opt/cray/pe/cce/{0}/cce-clang/x86_64/lib".format(compiler.version) - linker_flags = "${{BLT_EXE_LINKER_FLAGS}} -Wl,-rpath,{0}".format(libdir) - - version = "{0}".format(compiler.version) - - if version == "16.0.0" or version == "16.0.1": - # Here is another directory added by cce@16.0.0 and cce@16.0.1 - libdir = os.path.join(libdir, "x86_64-unknown-linux-gnu") - linker_flags += " -Wl,-rpath,{0}".format(libdir) - - options.append(cmake_cache_string("BLT_EXE_LINKER_FLAGS", linker_flags, description)) - - -class Blt(Package): - """BLT is a streamlined CMake-based foundation for Building, Linking and - Testing large-scale high performance computing (HPC) applications.""" - - homepage = "https://github.com/LLNL/blt" - url = "https://github.com/LLNL/blt/archive/v0.4.0.tar.gz" - git = "https://github.com/LLNL/blt.git" - tags = ["radiuss"] - - maintainers("white238", "davidbeckingsale") - - license("BSD-3-Clause") - - version("develop", branch="develop") - version("main", branch="main") - # Note: 0.4.0+ contains a breaking change to BLT created targets - # if you export targets this could cause problems in downstream - # projects if not handled properly. More info here: - # https://llnl-blt.readthedocs.io/en/develop/tutorial/exporting_targets.html - version("0.7.1", sha256="136765087b78da96dff77dfd6eb9a1238dbfb67da9c7474bc8fb8532fc8ee015") - version("0.7.0", sha256="df8720a9cba1199d21f1d32649cebb9dddf95aa61bc3ac23f6c8a3c6b6083528") - version("0.6.2", sha256="84b663162957c1fe0e896ac8e94cbf2b6def4a152ccfa12a293db14fb25191c8") - version("0.6.1", sha256="205540b704b8da5a967475be9e8f2d1a5e77009b950e7fbf01c0edabc4315906") - version("0.6.0", sha256="ede355e85f7b11d7c8442b51e4f7871c152093818606e00b1e1cf30f67ebdb23") - version("0.5.3", sha256="75d17caac98e78432ce25371c50d45ad3e7053820976bc5ed210bbef998f1732") - version("0.5.2", sha256="95b924cfbb2bddd9b1a92e96603b2fd485a19721d59ddf8ff50baefc1714d7ea") - version("0.5.1", sha256="ff7e87eefc48704a0721b66174612b945955adaa0a56aa69dd0473074fa4badf") - version("0.5.0", sha256="5f680ef922d0e0a7ff1b1a5fc8aa107cd4f543ad888cbc9b12639bea72a6ab1f") - version("0.4.1", sha256="16cc3e067ddcf48b99358107e5035a17549f52dcc701a35cd18a9d9f536826c1") - version("0.4.0", sha256="f3bc45d28b9b2eb6df43b75d4f6f89a1557d73d012da7b75bac1be0574767193") - version("0.3.6", sha256="6276317c29e7ff8524fbea47d9288ddb40ac06e9f9da5e878bf9011e2c99bf71") - version("0.3.5", sha256="68a1c224bb9203461ae6f5ab0ff3c50b4a58dcce6c2d2799489a1811f425fb84") - version("0.3.0", sha256="bb917a67cb7335d6721c997ba9c5dca70506006d7bba5e0e50033dd0836481a5") - version("0.2.5", sha256="3a000f60194e47b3e5623cc528cbcaf88f7fea4d9620b3c7446ff6658dc582a5") - version("0.2.0", sha256="c0cadf1269c2feb189e398a356e3c49170bc832df95e5564e32bdbb1eb0fa1b3") - - # https://github.com/google/googletest/pull/4798 - patch( - "https://github.com/LLNL/blt/commit/5ff55b519fc8d5216b07edaf301e2d2bf328021e.patch?full_index=1", - sha256="116702b89d01e022546911fe0b823afa99a6b37a35077055141ad5d480508422", - when="@0.7.1:", - ) - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - - depends_on("cmake", type="run") - - def install(self, spec, prefix): - install_tree(".", prefix) diff --git a/spack_repo/llnl_radiuss/packages/caliper/for_aarch64.patch b/spack_repo/llnl_radiuss/packages/caliper/for_aarch64.patch deleted file mode 100644 index eca9e034..00000000 --- a/spack_repo/llnl_radiuss/packages/caliper/for_aarch64.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- spack-src/src/services/callpath/Callpath.cpp.bak 2020-10-28 14:38:19.668122844 +0900 -+++ spack-src/src/services/callpath/Callpath.cpp 2020-10-28 15:03:12.258061188 +0900 -@@ -63,7 +63,7 @@ - unw_context_t unw_ctx; - unw_cursor_t unw_cursor; - -- unw_getcontext(&unw_ctx); -+ unw_getcontext(unw_ctx); - - if (unw_init_local(&unw_cursor, &unw_ctx) < 0) { - Log(0).stream() << "callpath: unable to init libunwind cursor" << endl; \ No newline at end of file diff --git a/spack_repo/llnl_radiuss/packages/caliper/libunwind.patch b/spack_repo/llnl_radiuss/packages/caliper/libunwind.patch deleted file mode 100644 index 9fe02b46..00000000 --- a/spack_repo/llnl_radiuss/packages/caliper/libunwind.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff --git a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake -index 04f325d9..7868138f 100644 ---- a/cmake/FindLibunwind.cmake -+++ b/cmake/FindLibunwind.cmake -@@ -3,20 +3,38 @@ - # - # LIBUNWIND_PREFIX - Set to the libunwind installation directory - # --# LIBUNWIND_INCLUDE_DIR - Path to libunwind.h -+# LIBUNWIND_INCLUDE_DIRS - Path to libunwind.h - # LIBUNWIND_LIBRARIES - List of libraries for using libunwind - # LIBUNWIND_FOUND - True if libunwind was found - --find_path(LIBUNWIND_PREFIX -- include/libunwind.h) -+if(LIBUNWIND_PREFIX) -+ # When prefix is explicitly provided, only look there -+ find_library(LIBUNWIND_LIBRARIES -+ NAMES unwind -+ PATHS ${LIBUNWIND_PREFIX}/lib -+ NO_DEFAULT_PATH) - --find_library(LIBUNWIND_LIBRARIES -- NAMES unwind -- HINTS ${LIBUNWIND_PREFIX}/lib) -+ find_path(LIBUNWIND_INCLUDE_DIRS -+ NAMES libunwind.h -+ PATHS ${LIBUNWIND_PREFIX}/include -+ NO_DEFAULT_PATH) - --find_path(LIBUNWIND_INCLUDE_DIRS -- NAMES libunwind.h -- HINTS ${LIBUNWIND_PREFIX}/include) -+ if(NOT LIBUNWIND_LIBRARIES OR NOT LIBUNWIND_INCLUDE_DIRS) -+ message(WARNING "LIBUNWIND_PREFIX was set to '${LIBUNWIND_PREFIX}' but libunwind was not found there") -+ endif() -+else() -+ # Try to find libunwind in standard locations -+ find_path(LIBUNWIND_PREFIX -+ include/libunwind.h) -+ -+ find_library(LIBUNWIND_LIBRARIES -+ NAMES unwind -+ HINTS ${LIBUNWIND_PREFIX}/lib) -+ -+ find_path(LIBUNWIND_INCLUDE_DIRS -+ NAMES libunwind.h -+ HINTS ${LIBUNWIND_PREFIX}/include) -+endif() - - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Libunwind DEFAULT_MSG LIBUNWIND_LIBRARIES LIBUNWIND_INCLUDE_DIRS) diff --git a/spack_repo/llnl_radiuss/packages/caliper/package.py b/spack_repo/llnl_radiuss/packages/caliper/package.py deleted file mode 100644 index dbea3805..00000000 --- a/spack_repo/llnl_radiuss/packages/caliper/package.py +++ /dev/null @@ -1,272 +0,0 @@ -# Copyright 2013-2025 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os -import socket -import sys - -from spack_repo.builtin.build_systems.cached_cmake import ( - CachedCMakePackage, - cmake_cache_option, - cmake_cache_path, -) -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage - -from spack_repo.llnl_radiuss.packages.camp.package import ( - hip_for_radiuss_projects, - cuda_for_radiuss_projects, - mpi_for_radiuss_projects, -) - -from spack.package import * - - -class Caliper(CachedCMakePackage, CudaPackage, ROCmPackage): - """Caliper is a program instrumentation and performance measurement - framework. It is designed as a performance analysis toolbox in a - library, allowing one to bake performance analysis capabilities - directly into applications and activate them at runtime. - """ - - homepage = "https://github.com/LLNL/Caliper" - git = "https://github.com/LLNL/Caliper.git" - url = "https://github.com/LLNL/Caliper/archive/v2.12.1.tar.gz" - tags = ["e4s", "radiuss"] - - maintainers("daboehme", "adrienbernede") - - test_requires_compiler = True - - license("BSD-3-Clause") - - version("master", branch="master") - version("2.13.1", sha256="7cef0173e0e0673abb7943a2641b660adfbc3d6bc4b33941ab4f431f92a4d016") - version("2.13.0", sha256="28c6e8fd940bdee9e80d1e8ae1ce0f76d6a690cbb6242d4eec115d6c0204e331") - version("2.12.1", sha256="2b5a8f98382c94dc75cc3f4517c758eaf9a3f9cea0a8dbdc7b38506060d6955c") - version("2.11.0", sha256="b86b733cbb73495d5f3fe06e6a9885ec77365c8aa9195e7654581180adc2217c") - version("2.10.0", sha256="14c4fb5edd5e67808d581523b4f8f05ace8549698c0e90d84b53171a77f58565") - version("2.9.1", sha256="4771d630de505eff9227e0ec498d0da33ae6f9c34df23cb201b56181b8759e9e") - version("2.9.0", sha256="507ea74be64a2dfd111b292c24c4f55f459257528ba51a5242313fa50978371f") - - is_linux = sys.platform.startswith("linux") - variant("shared", default=True, description="Build shared libraries") - variant("adiak", default=True, description="Enable Adiak support") - variant("mpi", default=True, description="Enable MPI support") - # libunwind has some issues on Mac - variant( - "libunwind", default=sys.platform != "darwin", description="Enable stack unwind support" - ) - variant("libdw", default=is_linux, description="Enable DWARF symbol lookup") - # pthread_self() signature is incompatible with PAPI_thread_init() on Mac - variant("papi", default=sys.platform != "darwin", description="Enable PAPI service") - variant("libpfm", default=False, description="Enable libpfm (perf_events) service") - # Gotcha is Linux-only - variant("gotcha", default=is_linux, description="Enable GOTCHA support") - variant("sampler", default=is_linux, description="Enable sampling support on Linux") - variant("fortran", default=False, description="Enable Fortran support") - variant("variorum", default=False, description="Enable Variorum support") - variant("vtune", default=False, description="Enable Intel Vtune support") - variant("kokkos", default=True, description="Enable Kokkos profiling support") - variant("tests", default=False, description="Enable tests") - variant("tools", default=True, description="Enable tools") - variant("python", default=False, description="Build Python bindings") - - depends_on("c", type="build") - depends_on("cxx", type="build") - depends_on("fortran", when="+fortran", type="build") - - depends_on("adiak@0.1:0", when="@:2.10 +adiak") - depends_on("adiak@0.4:0", when="@2.11: +adiak") - - depends_on("papi@5.3:", when="+papi") - - depends_on("libpfm4@4.8:4", when="+libpfm") - - depends_on("mpi", when="+mpi") - depends_on("unwind@1.2:1", when="+libunwind") - depends_on("elfutils", when="+libdw") - depends_on("variorum", when="+variorum") - depends_on("intel-oneapi-vtune", when="+vtune") - - depends_on("cmake", type="build") - depends_on("python", type="build") - - depends_on("python@3", when="+python", type=("build", "link", "run")) - depends_on("py-pybind11", when="+python", type=("build", "link", "run")) - - conflicts("+rocm+cuda") - # Legacy nvtx is only supported until cuda@12.8, newer cuda only provides nvtx3. - conflicts("^cuda@12.9:", "@:2.12.1") - - patch("libunwind.patch", when="@:2.13") - patch( - "https://github.com/LLNL/Caliper/commit/648f8ab496a4a2c3f38e0cfa572340e429d8c76e.patch?full_index=1", - sha256="d947b5df6b68a24f516bb3b4ec04c28d4b8246ac0cbe664cf113dd2b6ca92073", - when="@2.12:2.13", - ) - patch("for_aarch64.patch", when="@:2.11 target=aarch64:") - patch( - "sampler-service-missing-libunwind-include-dir.patch", - when="@2.9.0:2.9.1 +libunwind +sampler", - ) - - def _get_sys_type(self, spec): - sys_type = spec.architecture - if "SYS_TYPE" in env: - 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() - - entries.append(cmake_cache_option("WITH_FORTRAN", spec.satisfies("+fortran"))) - - entries.append(cmake_cache_option("BUILD_SHARED_LIBS", spec.satisfies("+shared"))) - entries.append(cmake_cache_option("BUILD_TESTING", spec.satisfies("+tests"))) - entries.append(cmake_cache_option("WITH_TOOLS", spec.satisfies("+tools"))) - entries.append(cmake_cache_option("BUILD_DOCS", False)) - entries.append(cmake_cache_path("PYTHON_EXECUTABLE", spec["python"].command.path)) - - return entries - - def initconfig_hardware_entries(self): - spec = self.spec - compiler = self.compiler - entries = super().initconfig_hardware_entries() - - if spec.satisfies("+cuda"): - entries.append(cmake_cache_option("WITH_CUPTI", True)) - entries.append(cmake_cache_option("WITH_NVTX", True)) - entries.append(cmake_cache_path("CUDA_TOOLKIT_ROOT_DIR", spec["cuda"].prefix)) - entries.append(cmake_cache_path("CUPTI_PREFIX", spec["cuda"].prefix)) - cuda_for_radiuss_projects(entries, spec) - else: - entries.append(cmake_cache_option("WITH_CUPTI", False)) - entries.append(cmake_cache_option("WITH_NVTX", False)) - - if spec.satisfies("+rocm"): - entries.append(cmake_cache_option("WITH_ROCTRACER", True)) - entries.append(cmake_cache_option("WITH_ROCTX", True)) - hip_for_radiuss_projects(entries, spec, compiler) - else: - entries.append(cmake_cache_option("WITH_ROCTRACER", False)) - entries.append(cmake_cache_option("WITH_ROCTX", False)) - - return entries - - def initconfig_mpi_entries(self): - spec = self.spec - entries = super().initconfig_mpi_entries() - - entries.append(cmake_cache_option("WITH_MPI", spec.satisfies("+mpi"))) - if spec.satisfies("+mpi"): - mpi_for_radiuss_projects(entries, spec, env) - - return entries - - def initconfig_package_entries(self): - spec = self.spec - entries = [] - - # TPL locations - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# TPLs") - entries.append("#------------------{0}\n".format("-" * 60)) - - if spec.satisfies("+adiak"): - entries.append(cmake_cache_path("adiak_DIR", spec["adiak"].prefix)) - if spec.satisfies("+papi"): - entries.append(cmake_cache_path("PAPI_PREFIX", spec["papi"].prefix)) - if spec.satisfies("+libdw"): - entries.append(cmake_cache_path("LIBDW_PREFIX", spec["elfutils"].prefix)) - if spec.satisfies("+libpfm"): - entries.append(cmake_cache_path("LIBPFM_INSTALL", spec["libpfm4"].prefix)) - if spec.satisfies("+sosflow"): - entries.append(cmake_cache_path("SOS_PREFIX", spec["sosflow"].prefix)) - if spec.satisfies("+variorum"): - entries.append(cmake_cache_path("VARIORUM_PREFIX", spec["variorum"].prefix)) - if spec.satisfies("+vtune"): - itt_dir = join_path(spec["intel-oneapi-vtune"].prefix, "vtune", "latest") - entries.append(cmake_cache_path("ITT_PREFIX", itt_dir)) - if spec.satisfies("+libunwind"): - entries.append(cmake_cache_path("LIBUNWIND_PREFIX", spec["unwind"].prefix)) - - # Build options - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# Build Options") - entries.append("#------------------{0}\n".format("-" * 60)) - - entries.append(cmake_cache_option("WITH_ADIAK", spec.satisfies("+adiak"))) - entries.append(cmake_cache_option("WITH_GOTCHA", spec.satisfies("+gotcha"))) - entries.append(cmake_cache_option("WITH_SAMPLER", spec.satisfies("+sampler"))) - entries.append(cmake_cache_option("WITH_PAPI", spec.satisfies("+papi"))) - entries.append(cmake_cache_option("WITH_LIBDW", spec.satisfies("+libdw"))) - entries.append(cmake_cache_option("WITH_LIBPFM", spec.satisfies("+libpfm"))) - entries.append(cmake_cache_option("WITH_SOSFLOW", spec.satisfies("+sosflow"))) - entries.append(cmake_cache_option("WITH_KOKKOS", spec.satisfies("+kokkos"))) - entries.append(cmake_cache_option("WITH_VARIORUM", spec.satisfies("+variorum"))) - entries.append(cmake_cache_option("WITH_VTUNE", spec.satisfies("+vtune"))) - entries.append(cmake_cache_option("WITH_PYTHON_BINDINGS", spec.satisfies("+python"))) - entries.append(cmake_cache_option("WITH_LIBUNWIND", spec.satisfies("+libunwind"))) - - return entries - - def cmake_args(self): - return [] - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - if self.spec.satisfies("+python"): - env.prepend_path("PYTHONPATH", self.spec.prefix.join(python_platlib)) - env.prepend_path("PYTHONPATH", self.spec.prefix.join(python_purelib)) - - @run_after("install") - def cache_test_sources(self): - """Copy the example source files after the package is installed to an - install test subdirectory for use during `spack test run`.""" - cache_extra_test_sources(self, [join_path("examples", "apps")]) - - def test_cxx_example(self): - """build and run cxx-example""" - - exe = "cxx-example" - source_file = "{0}.cpp".format(exe) - - source_path = find_required_file( - self.test_suite.current_test_cache_dir, source_file, expected=1, recursive=True - ) - - lib_dir = self.prefix.lib if os.path.exists(self.prefix.lib) else self.prefix.lib64 - - cxx = which(os.environ["CXX"]) - test_dir = os.path.dirname(source_path) - with working_dir(test_dir): - cxx( - "-L{0}".format(lib_dir), - "-I{0}".format(self.prefix.include), - source_path, - "-o", - exe, - "-std=c++11", - "-lcaliper", - "-lstdc++", - ) - - cxx_example = which(exe) - cxx_example() diff --git a/spack_repo/llnl_radiuss/packages/caliper/sampler-service-missing-libunwind-include-dir.patch b/spack_repo/llnl_radiuss/packages/caliper/sampler-service-missing-libunwind-include-dir.patch deleted file mode 100644 index a198ada6..00000000 --- a/spack_repo/llnl_radiuss/packages/caliper/sampler-service-missing-libunwind-include-dir.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -ruN spack-src/src/services/sampler/CMakeLists.txt spack-src-patched/src/services/sampler/CMakeLists.txt ---- spack-src/src/services/sampler/CMakeLists.txt 2022-11-30 13:52:42.000000000 -0500 -+++ spack-src-patched/src/services/sampler/CMakeLists.txt 2023-05-04 20:43:47.240310306 -0400 -@@ -17,6 +17,10 @@ - - include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) - -+if (CALIPER_HAVE_LIBUNWIND) -+ include_directories(${LIBUNWIND_INCLUDE_DIRS}) -+endif() -+ - add_library(caliper-sampler OBJECT ${CALIPER_SAMPLER_SOURCES}) - - add_service_objlib("caliper-sampler") \ No newline at end of file diff --git a/spack_repo/llnl_radiuss/packages/camp/camp-rocm6.patch b/spack_repo/llnl_radiuss/packages/camp/camp-rocm6.patch deleted file mode 100644 index dbb3fa02..00000000 --- a/spack_repo/llnl_radiuss/packages/camp/camp-rocm6.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -ruN spack-src/include/camp/resource/hip.hpp spack-src-patched/include/camp/resource/hip.hpp ---- spack-src/include/camp/resource/hip.hpp 2021-08-20 23:38:39.000000000 +0000 -+++ spack-src-patched/include/camp/resource/hip.hpp 2024-06-06 21:34:25.174477941 +0000 -@@ -111,7 +111,11 @@ - hipPointerAttribute_t a; - hipError_t status = hipPointerGetAttributes(&a, p); - if (status == hipSuccess) { -+#if (HIP_VERSION_MAJOR >= 6) -+ switch (a.type) { -+#else - switch (a.memoryType) { -+#endif - case hipMemoryTypeHost: - return MemoryAccess::Pinned; - case hipMemoryTypeDevice: diff --git a/spack_repo/llnl_radiuss/packages/camp/libstdc++-13-missing-header.patch b/spack_repo/llnl_radiuss/packages/camp/libstdc++-13-missing-header.patch deleted file mode 100644 index d3c642ab..00000000 --- a/spack_repo/llnl_radiuss/packages/camp/libstdc++-13-missing-header.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/include/camp/resource.hpp b/include/camp/resource.hpp -index 58df206..763aa20 100644 ---- a/include/camp/resource.hpp -+++ b/include/camp/resource.hpp -@@ -12,6 +12,7 @@ http://github.com/llnl/camp - #define __CAMP_RESOURCE_HPP - - #include -+#include - #include - #include - #include -diff --git a/include/camp/resource/host.hpp b/include/camp/resource/host.hpp -index c765175..4428c57 100644 ---- a/include/camp/resource/host.hpp -+++ b/include/camp/resource/host.hpp -@@ -13,6 +13,7 @@ http://github.com/llnl/camp - - #include "camp/resource/event.hpp" - #include "camp/resource/platform.hpp" -+#include - - namespace camp - { diff --git a/spack_repo/llnl_radiuss/packages/camp/package.py b/spack_repo/llnl_radiuss/packages/camp/package.py deleted file mode 100644 index 063f340c..00000000 --- a/spack_repo/llnl_radiuss/packages/camp/package.py +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright 2013-2025 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import glob -import re - -from os.path import dirname - -from spack_repo.builtin.build_systems.cached_cmake import ( - cmake_cache_path, - cmake_cache_string, -) -from spack_repo.builtin.build_systems.cmake import CMakePackage -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage - -from spack.package import * -from spack.util.executable import which_string - - -def spec_uses_toolchain(spec): - gcc_toolchain_regex = re.compile(".*gcc-toolchain.*") - using_toolchain = list(filter(gcc_toolchain_regex.match, spec.compiler_flags["cxxflags"])) - return using_toolchain - -def spec_uses_gccname(spec): - gcc_name_regex = re.compile(".*gcc-name.*") - using_gcc_name = list(filter(gcc_name_regex.match, spec.compiler_flags["cxxflags"])) - return using_gcc_name - -def hip_for_radiuss_projects(options, spec, compiler): - rocm_root = spec["llvm-amdgpu"].prefix - hip_link_flags = "" - if spec_uses_toolchain(spec): - gcc_prefix = spec_uses_toolchain(spec)[0] - options.append(cmake_cache_string("HIP_CLANG_FLAGS", "--gcc-toolchain={0}".format(gcc_prefix))) - options.append(cmake_cache_string("CMAKE_EXE_LINKER_FLAGS", hip_link_flags + " -Wl,-rpath={0}/lib64".format(gcc_prefix))) - else: - options.append(cmake_cache_string("CMAKE_EXE_LINKER_FLAGS", "-Wl,-rpath={0}/llvm/lib/".format(rocm_root))) - -def cuda_for_radiuss_projects(options, spec): - # Here is what is typically needed for radiuss projects when building with cuda - - # CUDA_FLAGS - cuda_flags = [] - - if not spec.satisfies("cuda_arch=none"): - cuda_archs = ";".join(spec.variants["cuda_arch"].value) - options.append(cmake_cache_string("CMAKE_CUDA_ARCHITECTURES", cuda_archs)) - - if spec_uses_toolchain(spec): - cuda_flags.append("-Xcompiler {}".format(spec_uses_toolchain(spec)[0])) - - if spec.satisfies("target=ppc64le %gcc@8.1:"): - cuda_flags.append("-Xcompiler -mno-float128") - - options.append(cmake_cache_string("CMAKE_CUDA_FLAGS", " ".join(cuda_flags))) - -def mpi_for_radiuss_projects(options, spec, env): - - if spec["mpi"].name == "spectrum-mpi" and spec.satisfies("^blt"): - options.append(cmake_cache_string("BLT_MPI_COMMAND_APPEND", "mpibind")) - - sys_type = spec.architecture - if "SYS_TYPE" in env: - sys_type = env["SYS_TYPE"] - # Replace /usr/bin/srun path with srun flux wrapper path on TOSS 4 - # TODO: Remove this logic by adding `using_flux` case in - # spack/lib/spack/spack/build_systems/cached_cmake.py:196 and remove hard-coded - # path to srun in same file. - if "toss_4" in sys_type: - srun_wrapper = which_string("srun") - mpi_exec_index = [ - index for index, entry in enumerate(options) if "MPIEXEC_EXECUTABLE" in entry - ] - if len(mpi_exec_index) > 0: - del options[mpi_exec_index[0]] - mpi_exec_flag_index = [ - index for index, entry in enumerate(options) if "MPIEXEC_NUMPROC_FLAG" in entry - ] - if len(mpi_exec_flag_index) > 0: - del options[mpi_exec_flag_index[0]] - options.append(cmake_cache_path("MPIEXEC_EXECUTABLE", srun_wrapper)) - options.append(cmake_cache_string("MPIEXEC_NUMPROC_FLAG", "-n")) - - -class Camp(CMakePackage, CudaPackage, ROCmPackage): - """ - Compiler agnostic metaprogramming library providing concepts, - type operations and tuples for C++ and cuda - """ - - homepage = "https://github.com/LLNL/camp" - git = "https://github.com/LLNL/camp.git" - url = "https://github.com/LLNL/camp/archive/v0.1.0.tar.gz" - - maintainers("adrienbernede", "kab163", "trws") - - license("BSD-3-Clause") - - version("main", branch="main", submodules=False) - version( - "2025.12.0", - tag="v2025.12.0", - commit="a8caefa9f4c811b1a114b4ed2c9b681d40f12325", - submodules=False, - ) - version( - "2025.09.2", - tag="v2025.09.2", - commit="4070ce93a802849d61037310a87c50cc24c9e498", - submodules=False, - ) - version( - "2025.09.0", - tag="v2025.09.0", - commit="b642f29b9d0eee9113bea2791958c29243063e5c", - submodules=False, - ) - version( - "2025.03.0", - tag="v2025.03.0", - commit="ee0a3069a7ae72da8bcea63c06260fad34901d43", - submodules=False, - ) - version( - "2024.07.0", - tag="v2024.07.0", - commit="0f07de4240c42e0b38a8d872a20440cb4b33d9f5", - submodules=False, - ) - version( - "2024.02.1", - tag="v2024.02.1", - commit="79c320fa09db987923b56884afdc9f82f4b70fc4", - submodules=False, - ) - version( - "2024.02.0", - tag="v2024.02.0", - commit="03c80a6c6ab4f97e76a52639563daec71435a277", - submodules=False, - ) - version( - "2023.06.0", - tag="v2023.06.0", - commit="ac34c25b722a06b138bc045d38bfa5e8fa3ec9c5", - submodules=False, - ) - version("2022.10.1", sha256="2d12f1a46f5a6d01880fc075cfbd332e2cf296816a7c1aa12d4ee5644d386f02") - version("2022.10.0", sha256="3561c3ef00bbcb61fe3183c53d49b110e54910f47e7fc689ad9ccce57e55d6b8") - version("2022.03.2", sha256="bc4aaeacfe8f2912e28f7a36fc731ab9e481bee15f2c6daf0cb208eed3f201eb") - version("2022.03.0", sha256="e9090d5ee191ea3a8e36b47a8fe78f3ac95d51804f1d986d931e85b8f8dad721") - version("0.3.0", sha256="129431a049ca5825443038ad5a37a86ba6d09b2618d5fe65d35f83136575afdb") - version("0.2.3", sha256="58a0f3bd5eadb588d7dc83f3d050aff8c8db639fc89e8d6553f9ce34fc2421a7") - version("0.2.2", sha256="194d38b57e50e3494482a7f94940b27f37a2bee8291f2574d64db342b981d819") - version("0.1.0", sha256="fd4f0f2a60b82a12a1d9f943f8893dc6fe770db493f8fae5ef6f7d0c439bebcc") - - # TODO: figure out gtest dependency and then set this default True. - variant("tests", default=False, description="Build tests") - variant("openmp", default=False, description="Build with OpenMP support") - variant("omptarget", default=False, description="Build with OpenMP Target support") - variant("sycl", default=False, description="Build with Sycl support") - - depends_on("c", type="build") - depends_on("cxx", type="build") - - with when("+cuda"): - depends_on("cub", when="^cuda@:10") - - depends_on("blt", type="build") - depends_on("blt@0.7.1:", type="build", when="@2025.09.0:") - 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.0:0.5.3", type="build", when="@2022.03.0:2023.06.0") - - patch("libstdc++-13-missing-header.patch", when="@:2022.10") - - patch("camp-rocm6.patch", when="@0.2.3 +rocm ^hip@6:") - - conflicts("^blt@:0.3.6", when="+rocm") - - conflicts("+omptarget +rocm") - conflicts("+sycl +omptarget") - conflicts("+sycl +rocm") - conflicts( - "+sycl", - when="@:2024.02.99", - msg="Support for SYCL was introduced in RAJA after 2024.02 release, " - "please use a newer release.", - ) - - def cmake_args(self): - spec = self.spec - - options = [] - - options.append("-DBLT_SOURCE_DIR={0}".format(spec["blt"].prefix)) - - options.append(self.define_from_variant("ENABLE_CUDA", "cuda")) - if spec.satisfies("+cuda"): - options.append("-DCUDA_TOOLKIT_ROOT_DIR={0}".format(spec["cuda"].prefix)) - - if not spec.satisfies("cuda_arch=none"): - cuda_arch = spec.variants["cuda_arch"].value - options.append("-DCMAKE_CUDA_ARCHITECTURES={0}".format(cuda_arch[0])) - options.append("-DCUDA_ARCH=sm_{0}".format(cuda_arch[0])) - flag = "-arch sm_{0}".format(cuda_arch[0]) - options.append("-DCMAKE_CUDA_FLAGS:STRING={0}".format(flag)) - - options.append(self.define_from_variant("ENABLE_HIP", "rocm")) - if spec.satisfies("+rocm"): - rocm_root = spec["llvm-amdgpu"].prefix - options.append(self.define("ROCM_PATH", rocm_root)) - - archs = ";".join(self.spec.variants["amdgpu_target"].value) - options.append("-DCMAKE_HIP_ARCHITECTURES={0}".format(archs)) - options.append("-DGPU_TARGETS={0}".format(archs)) - options.append("-DAMDGPU_TARGETS={0}".format(archs)) - - if spec.satisfies("+omptarget"): - options.append(cmake_cache_string("RAJA_DATA_ALIGN", 64)) - - options.append(self.define_from_variant("ENABLE_TESTS", "tests")) - options.append(self.define_from_variant("ENABLE_OPENMP", "openmp")) - options.append(self.define_from_variant("CAMP_ENABLE_TARGET_OPENMP", "omptarget")) - options.append(self.define_from_variant("ENABLE_SYCL", "sycl")) - - return options diff --git a/spack_repo/llnl_radiuss/packages/care/package.py b/spack_repo/llnl_radiuss/packages/care/package.py deleted file mode 100644 index b5bf544a..00000000 --- a/spack_repo/llnl_radiuss/packages/care/package.py +++ /dev/null @@ -1,336 +0,0 @@ -# Copyright 2013-2025 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import socket - -from spack_repo.builtin.build_systems.cached_cmake import ( - CachedCMakePackage, - cmake_cache_option, - cmake_cache_path, - cmake_cache_string, -) -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage - -from spack_repo.llnl_radiuss.packages.camp.package import ( - hip_for_radiuss_projects, - cuda_for_radiuss_projects, - mpi_for_radiuss_projects, -) -from spack_repo.llnl_radiuss.packages.blt.package import llnl_link_helpers - -from spack.package import * - - -class Care(CachedCMakePackage, CudaPackage, ROCmPackage): - """ - CHAI and RAJA extensions (includes data structures and algorithms). - """ - - homepage = "https://github.com/LLNL/CARE" - git = "https://github.com/LLNL/CARE.git" - tags = ["radiuss"] - - license("BSD-3-Clause") - - maintainers("adayton1", "adrienbernede") - - version("develop", branch="develop", submodules=False) - version("master", branch="master", submodules=False) - version( - "0.15.2", - tag="v0.15.2", - commit="f61289ab3db627b568e5c211b1ab8e13a3b6d211", - submodules=False, - ) - version( - "0.15.1", - tag="v0.15.1", - commit="f198c8b3d5dcfd274107b4263331818e86b50c7a", - 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", - commit="93853696b452647278eae9311b835ad206236522", - submodules=False, - ) - version( - "0.13.2", - tag="v0.13.2", - commit="b25dcd2a35683a68db1c25173e849be69833ed4f", - submodules=False, - ) - version( - "0.13.1", - tag="v0.13.1", - commit="0fd0d47aaaa57076f26caad88e667fbc01ff7214", - submodules=False, - ) - version( - "0.13.0", - tag="v0.13.0", - commit="2b288e2c557c3b14befeebc8e14a7d48348bd857", - submodules=False, - ) - version( - "0.12.0", - tag="v0.12.0", - commit="a9978083035eb00a090451bd36d7987bc935204d", - submodules=False, - ) - version("0.10.0", tag="v0.10.0", submodules="True") - version( - "0.3.0", tag="v0.3.0", commit="5e2b69b2836c9f2215207ca9a36a690cb77eea33", submodules="True" - ) - version( - "0.2.0", tag="v0.2.0", commit="30135e03b14b1dc753634e9147dafede0663906f", submodules="True" - ) - - variant("openmp", default=False, description="Build with OpenMP support") - variant("mpi", default=False, description="Enable MPI support") - variant( - "implicit_conversions", - default=False, - when="@:0.14", - description="Enable implicit conversions to/from raw pointers", - ) - variant("tests", default=False, description="Build tests") - variant("benchmarks", default=False, description="Build benchmarks.") - variant("examples", default=False, description="Build examples.") - variant("docs", default=False, description="Build documentation") - variant("loop_fuser", default=False, description="Enable loop fusion capability") - - depends_on("c", type="build") # generated - depends_on("cxx", type="build") # generated - depends_on("fortran", type="build") # generated - - depends_on("cmake", type="build") - depends_on("cmake@3.23:", type="build", when="@0.13.2:") - depends_on("cmake@3.21:", type="build", when="@0.12.0:+rocm") - depends_on("cmake@3.18:", type="build", when="@0.12.0:") - depends_on("cmake@3.14:", type="build", when="@0.10.0:") - depends_on("cmake@3.9:", type="build", when="+cuda") - depends_on("cmake@3.8:", type="build") - - depends_on("blt", type="build") - depends_on("blt@0.7.1:", type="build", when="@0.15.2:") - depends_on("blt@0.6.2:", type="build", when="@0.13.0:") - depends_on("blt@0.6.1:", type="build", when="@0.12.0:") - depends_on("blt@0.5.2:", type="build", when="@0.10.0:") - depends_on("blt@0.4.1:", type="build", when="@0.3.1:") - depends_on("blt@:0.3.6", type="build", when="@:0.3.0") - conflicts("^blt@:0.3.6", when="+rocm") - - depends_on("camp", when="@:0.11.1") - - depends_on("umpire") - depends_on("umpire+mpi", when="+mpi") - depends_on("umpire@2025.09:", when="@0.15.2:") - depends_on("umpire@2025.03", when="@0.15.0") - depends_on("umpire@2024.07.0", when="@0.13.2") - depends_on("umpire@2024.02.1", when="@0.13.0") - depends_on("umpire@2024.02.0", when="@0.12.0") - depends_on("umpire@2022.10.0", when="@0.10.0") - - depends_on("raja") - depends_on("raja@2025.09:", when="@0.15.2:") - depends_on("raja@2025.03", when="@0.15.0") - depends_on("raja@2024.07.0", when="@0.13.2") - depends_on("raja@2024.02.2", when="@0.13.1") - depends_on("raja@2024.02.1", when="@0.13.0") - depends_on("raja@2024.02.0", when="@0.12.0") - depends_on("raja@2022.10.5", when="@0.10.0") - - depends_on("chai+enable_pick", when="@:0.14.99") - depends_on("chai+raja") - depends_on("chai@2025.09.1:", when="@0.15.2:") - depends_on("chai@2025.03", when="@0.15.0") - depends_on("chai@2024.07.0", when="@0.13.2") - depends_on("chai@2024.02.2", when="@0.13.1") - depends_on("chai@2024.02.1", when="@0.13.0") - depends_on("chai@2024.02.0", when="@0.12.0") - depends_on("chai@2022.10.0", when="@0.10.0") - - conflicts("+openmp", when="+rocm") - conflicts("+openmp", when="+cuda") - conflicts("~tests", when="+benchmarks") - - with when("+openmp"): - depends_on("umpire+openmp") - depends_on("raja+openmp") - depends_on("chai+openmp") - - with when("+cuda"): - depends_on("cub") - - depends_on("umpire+cuda") - depends_on("raja+cuda") - depends_on("chai+cuda") - - for sm_ in CudaPackage.cuda_arch_values: - depends_on("umpire+cuda cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - depends_on("raja+cuda cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - depends_on("chai+cuda cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - - with when("+rocm"): - depends_on("umpire+rocm") - depends_on("raja+rocm") - depends_on("chai+rocm") - - for arch_ in ROCmPackage.amdgpu_targets: - depends_on( - "umpire+rocm amdgpu_target={0}".format(arch_), - when="amdgpu_target={0}".format(arch_), - ) - depends_on( - "raja+rocm amdgpu_target={0}".format(arch_), when="amdgpu_target={0}".format(arch_) - ) - depends_on( - "chai+rocm amdgpu_target={0}".format(arch_), when="amdgpu_target={0}".format(arch_) - ) - - def _get_sys_type(self, spec): - sys_type = spec.architecture - if "SYS_TYPE" in env: - 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 - compiler = self.compiler - entries = super().initconfig_compiler_entries() - - llnl_link_helpers(entries, spec, compiler) - - return entries - - def initconfig_hardware_entries(self): - spec = self.spec - compiler = self.compiler - entries = super().initconfig_hardware_entries() - - entries.append(cmake_cache_option("ENABLE_OPENMP", spec.satisfies("+openmp"))) - - if spec.satisfies("+cuda"): - entries.append(cmake_cache_option("ENABLE_CUDA", True)) - entries.append(cmake_cache_option("CUDA_SEPARABLE_COMPILATION", True)) - entries.append(cmake_cache_string("NVTOOLSEXT_DIR", spec["cuda"].prefix)) - entries.append(cmake_cache_string("CUB_DIR", spec["cub"].prefix)) - cuda_for_radiuss_projects(entries, spec) - else: - entries.append(cmake_cache_option("ENABLE_CUDA", False)) - - if spec.satisfies("+rocm"): - entries.append(cmake_cache_option("ENABLE_HIP", True)) - hip_for_radiuss_projects(entries, spec, compiler) - else: - entries.append(cmake_cache_option("ENABLE_HIP", False)) - - return entries - - def initconfig_mpi_entries(self): - spec = self.spec - - entries = super(Care, self).initconfig_mpi_entries() - entries.append(cmake_cache_option("ENABLE_MPI", spec.satisfies("+mpi"))) - if spec.satisfies("+mpi"): - mpi_for_radiuss_projects(entries, spec, env) - - return entries - - def initconfig_package_entries(self): - spec = self.spec - entries = [] - - # TPL locations - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# TPLs") - entries.append("#------------------{0}\n".format("-" * 60)) - - entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix)) - entries.append(cmake_cache_path("CAMP_DIR", spec["camp"].prefix)) - entries.append(cmake_cache_path("UMPIRE_DIR", spec["umpire"].prefix)) - entries.append(cmake_cache_path("RAJA_DIR", spec["raja"].prefix)) - entries.append(cmake_cache_path("CHAI_DIR", spec["chai"].prefix)) - - # Build options - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# Build Options") - entries.append("#------------------{0}\n".format("-" * 60)) - - 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. - # This will take care of the gtest dependency. CARE developers should - # consider consolidating these flags in the future. - entries.append(cmake_cache_option("BLT_ENABLE_TESTS", spec.satisfies("+tests"))) - - # There are both CARE_ENABLE_* and ENABLE_* variables in here because - # one controls the BLT infrastructure and the other controls the CARE - # infrastructure. The goal is to just be able to use the CARE_ENABLE_* - # variables, but CARE isn't set up correctly for that yet. - entries.append(cmake_cache_option("ENABLE_BENCHMARKS", spec.satisfies("+benchmarks"))) - entries.append(cmake_cache_option("CARE_ENABLE_BENCHMARKS", spec.satisfies("+benchmarks"))) - - entries.append(cmake_cache_option("ENABLE_EXAMPLES", spec.satisfies("+examples"))) - entries.append(cmake_cache_option("CARE_ENABLE_EXAMPLES", spec.satisfies("+examples"))) - - entries.append(cmake_cache_option("ENABLE_DOCS", spec.satisfies("+docs"))) - entries.append(cmake_cache_option("CARE_ENABLE_DOCS", spec.satisfies("+docs"))) - - entries.append( - cmake_cache_option( - "CARE_ENABLE_IMPLICIT_CONVERSIONS", spec.satisfies("+implicit_conversions") - ) - ) - - entries.append(cmake_cache_option("CARE_ENABLE_LOOP_FUSER", spec.satisfies("+loop_fuser"))) - - return entries - - def cmake_args(self): - return [] diff --git a/spack_repo/llnl_radiuss/packages/chai/change_mpi_target_name_umpire_patch.patch b/spack_repo/llnl_radiuss/packages/chai/change_mpi_target_name_umpire_patch.patch deleted file mode 100644 index ca866408..00000000 --- a/spack_repo/llnl_radiuss/packages/chai/change_mpi_target_name_umpire_patch.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/cmake/thirdparty/SetupChaiThirdparty.cmake b/cmake/thirdparty/SetupChaiThirdparty.cmake -index d0be864..a8b33f0 100644 ---- a/cmake/thirdparty/SetupChaiThirdparty.cmake -+++ b/cmake/thirdparty/SetupChaiThirdparty.cmake -@@ -12,7 +12,7 @@ if (NOT TARGET umpire) - find_package(umpire REQUIRED) - - if (ENABLE_MPI) -- set(UMPIRE_DEPENDS mpi) -+ set(UMPIRE_DEPENDS MPI::MPI_CXX) - else() - set(UMPIRE_DEPENDS) - endif() diff --git a/spack_repo/llnl_radiuss/packages/chai/package.py b/spack_repo/llnl_radiuss/packages/chai/package.py deleted file mode 100644 index bede4f75..00000000 --- a/spack_repo/llnl_radiuss/packages/chai/package.py +++ /dev/null @@ -1,370 +0,0 @@ -# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import socket - -from spack_repo.builtin.build_systems.cached_cmake import ( - CachedCMakePackage, - cmake_cache_option, - cmake_cache_path, - cmake_cache_string, -) -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage - -from spack_repo.llnl_radiuss.packages.camp.package import ( - hip_for_radiuss_projects, - cuda_for_radiuss_projects, - mpi_for_radiuss_projects, -) -from spack_repo.llnl_radiuss.packages.blt.package import llnl_link_helpers - -from spack.package import * - - -class Chai(CachedCMakePackage, CudaPackage, ROCmPackage): - """ - Copy-hiding array interface for data migration between memory spaces - """ - - homepage = "https://github.com/LLNL/CHAI" - git = "https://github.com/LLNL/CHAI.git" - tags = ["ecp", "e4s", "radiuss"] - - maintainers("adayton1", "adrienbernede", "davidbeckingsale", "kab163") - - license("BSD-3-Clause") - - version("develop", branch="develop", submodules=False) - version( - "2025.09.1", - tag="v2025.09.1", - commit="51e66b8a5a6caac41aa329c8643180b8e2b33e5f", - submodules=False, - ) - version( - "2025.09.0", - tag="v2025.09.0", - commit="352ae302535d9dc5ba50b77bf508c89fc7500d30", - submodules=False, - ) - version( - "2025.03.1", - tag="v2025.03.1", - commit="2e83ca803ec8656d2ca677972fdd1378a17ad5d2", - submodules=False, - ) - version( - "2025.03.0", - tag="v2025.03.0", - commit="79f6414a00a89070054ac97baed47d21d10c83a4", - submodules=False, - ) - version( - "2024.07.0", - tag="v2024.07.0", - commit="df7741f1dbbdc5fff5f7d626151fdf1904e62b19", - submodules=False, - ) - version( - "2024.02.2", - tag="v2024.02.2", - commit="5ba0944d862513f600432c34b009824875df27e5", - submodules=False, - ) - version( - "2024.02.1", - tag="v2024.02.1", - commit="7597134729bd3a38b45b67b4dfbf7f199d8106f3", - submodules=False, - ) - version( - "2024.02.0", - tag="v2024.02.0", - commit="31773a2f0d30f3f64c82939f60fc4da32cf33261", - submodules=False, - ) - version( - "2023.06.0", - tag="v2023.06.0", - commit="6fe3470ad020303530af2f3dbbfe18826bd3319b", - submodules=False, - ) - version( - "2022.10.0", - tag="v2022.10.0", - commit="9510efd33b06e4443b15447eebb7dad761822654", - submodules=False, - ) - version( - "2022.03.0", - tag="v2022.03.0", - commit="f0b809de1ac194376866b3ac0f5933d4146ec09e", - submodules=False, - ) - version( - "2.4.0", tag="v2.4.0", commit="77d22da28187245a2c5454cf471c0c352bd98ad7", submodules=True - ) - version( - "2.3.0", tag="v2.3.0", commit="42f3fbcc0b966227b40b4467dc919a4c24f07196", submodules=True - ) - version( - "2.2.2", tag="v2.2.2", commit="56e75fc0f805b2746f3992af0c00c474513e3b24", submodules=True - ) - version( - "2.2.1", tag="v2.2.1", commit="c912f583828ea5963850816e3e232cc45608ccf7", submodules=True - ) - version( - "2.2.0", tag="v2.2.0", commit="18536c61a4817db6b3b3025f35e2dd3ae532330c", submodules=True - ) - version( - "2.1.1", tag="v2.1.1", commit="496911e00d15c350560860f7964cd5fb5ab7f515", submodules=True - ) - version( - "2.1.0", tag="v2.1.0", commit="fff02768068a64970b34760a1041585319edee87", submodules=True - ) - version( - "2.0.0", tag="v2.0.0", commit="63139cf45443b1266950826b165e042c7679b557", submodules=True - ) - version( - "1.2.0", tag="v1.2.0", commit="7bb5bc12e4508db45910d8e2b98444687da7ebf6", submodules=True - ) - version( - "1.1.0", tag="v1.1.0", commit="907d5f40d653a73955387067799913397807adf3", submodules=True - ) - version("1.0", tag="v1.0", commit="501a098ad879dc8deb4a74fcfe8c08c283a10627", submodules=True) - - # Patching Umpire for dual BLT targets import changed MPI target name in Umpire link interface - # 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, when="@:2024", description="Enable pick method") - variant( - "separable_compilation", - default=True, - description="Build with CUDA_SEPARABLE_COMPILATION flag on ", - ) - variant("shared", default=True, description="Build Shared Libs") - variant("mpi", default=False, description="Enable MPI support") - variant("raja", default=False, description="Build plugin for RAJA") - variant("examples", default=True, description="Build examples.") - variant("openmp", default=False, description="Build using OpenMP") - variant("disable_rm", default=False, description="Disable resource manager") - # TODO: figure out gtest dependency and then set this default True - # and remove the +tests conflict below. - variant( - "tests", - default="none", - values=("none", "basic", "benchmarks"), - multi=False, - description="Tests to run", - ) - - depends_on("c", type="build") - depends_on("cxx", type="build") - - depends_on("cmake", type="build") - depends_on("cmake@3.23:", type="build", when="@2024.07.0:") - depends_on("cmake@3.14:", type="build", when="@2022.03.0:2024.2") - depends_on("cmake@3.9:", type="build", when="+cuda") - depends_on("cmake@3.8:", type="build") - - depends_on("blt", type="build") - depends_on("blt@0.7.1:", type="build", when="@2025.09.0:") - 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") - depends_on("blt@0.5.2:0.5.3", type="build", when="@2022.10.0") - depends_on("blt@0.5.0:0.5.3", type="build", when="@2022.03.0") - depends_on("blt@0.4.1:0.5.3", type="build", when="@2.4.0") - depends_on("blt@0.4.0:0.5.3", type="build", when="@2.3.0") - depends_on("blt@0.3.6:0.5.3", type="build", when="@:2.2.2") - conflicts("^blt@:0.3.6", when="+rocm") - - depends_on("umpire") - depends_on("umpire@2025.09:", when="@2025.09:") - depends_on("umpire@2025.03", when="@2025.03") - depends_on("umpire@2024.07.0", when="@2024.07.0") - depends_on("umpire@2024.02.1", when="@2024.02.1") - depends_on("umpire@2024.02.0", when="@2024.02.0") - depends_on("umpire@2023.06.0", when="@2023.06.0") - depends_on("umpire@2022.10.0:2023.06.0", when="@2022.10.0") - depends_on("umpire@2022.03.0:2023.06.0", when="@2022.03.0") - depends_on("umpire@6.0.0", when="@2.4.0") - depends_on("umpire@4.1.2", when="@2.2.0:2.3.0") - - depends_on("umpire+mpi", when="+mpi") - - with when("+cuda"): - depends_on("umpire+cuda") - for sm_ in CudaPackage.cuda_arch_values: - depends_on("umpire+cuda cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - with when("@2024.02.0:"): - depends_on("umpire~fmt_header_only") - - with when("+rocm"): - depends_on("umpire+rocm") - for arch in ROCmPackage.amdgpu_targets: - depends_on( - "umpire+rocm amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch) - ) - - with when("+raja"): - depends_on("raja~openmp", when="~openmp") - depends_on("raja+openmp", when="+openmp") - depends_on("raja@2025.09:", when="@2025.09.0:") - depends_on("raja@2025.03.2", when="@2025.03.1") - depends_on("raja@2025.03.0", when="@2025.03.0") - depends_on("raja@2024.07.0", when="@2024.07.0") - depends_on("raja@2024.02.2", when="@2024.02.2") - depends_on("raja@2024.02.1", when="@2024.02.1") - depends_on("raja@2024.02.0", when="@2024.02.0") - depends_on("raja@2023.06.0", when="@2023.06.0") - depends_on("raja@2022.10.0:2023.06.0", when="@2022.10.0") - depends_on("raja@2022.03.0:2023.06.0", when="@2022.03.0") - depends_on("raja@0.14.0", when="@2.4.0") - depends_on("raja@0.13.0", when="@2.3.0") - depends_on("raja@0.12.0", when="@2.2.0:2.2.2") - - with when("+cuda"): - depends_on("raja+cuda") - for sm_ in CudaPackage.cuda_arch_values: - depends_on("raja+cuda cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - with when("+rocm"): - depends_on("raja+rocm") - for arch in ROCmPackage.amdgpu_targets: - depends_on( - "raja+rocm amdgpu_target={0}".format(arch), - when="amdgpu_target={0}".format(arch), - ) - - depends_on("mpi", when="+mpi") - - def _get_sys_type(self, spec): - sys_type = spec.architecture - if "SYS_TYPE" in env: - 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 - compiler = self.compiler - # Default entries are already defined in CachedCMakePackage, inherit them: - entries = super().initconfig_compiler_entries() - - llnl_link_helpers(entries, spec, compiler) - - return entries - - def initconfig_hardware_entries(self): - spec = self.spec - compiler = self.compiler - entries = super().initconfig_hardware_entries() - - entries.append("#------------------{0}".format("-" * 30)) - entries.append("# Package custom hardware settings") - entries.append("#------------------{0}\n".format("-" * 30)) - - if spec.satisfies("+cuda"): - entries.append(cmake_cache_option("ENABLE_CUDA", True)) - if spec.satisfies("+separable_compilation"): - entries.append(cmake_cache_option("CMAKE_CUDA_SEPARABLE_COMPILATION", True)) - entries.append(cmake_cache_option("CUDA_SEPARABLE_COMPILATION", True)) - cuda_for_radiuss_projects(entries, spec) - else: - entries.append(cmake_cache_option("ENABLE_CUDA", False)) - - if spec.satisfies("+rocm"): - entries.append(cmake_cache_option("ENABLE_HIP", True)) - hip_for_radiuss_projects(entries, spec, compiler) - else: - entries.append(cmake_cache_option("ENABLE_HIP", False)) - - return entries - - def initconfig_mpi_entries(self): - spec = self.spec - - entries = super(Chai, self).initconfig_mpi_entries() - entries.append(cmake_cache_option("ENABLE_MPI", spec.satisfies("+mpi"))) - if spec.satisfies("+mpi"): - mpi_for_radiuss_projects(entries, spec, env) - - return entries - - def initconfig_package_entries(self): - spec = self.spec - entries = [] - - option_prefix = "CHAI_" if spec.satisfies("@2022.03.0:") else "" - - # TPL locations - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# TPLs") - entries.append("#------------------{0}\n".format("-" * 60)) - - # - BLT - entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix)) - - # - RAJA - if spec.satisfies("+raja"): - entries.append(cmake_cache_option("{}ENABLE_RAJA_PLUGIN".format(option_prefix), True)) - entries.append(cmake_cache_path("RAJA_DIR", spec["raja"].prefix)) - else: - entries.append(cmake_cache_option("{}ENABLE_RAJA_PLUGIN".format(option_prefix), False)) - - # - Umpire - entries.append(cmake_cache_path("umpire_DIR", spec["umpire"].prefix)) - - # Build options - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# Build Options") - entries.append("#------------------{0}\n".format("-" * 60)) - - entries.append(cmake_cache_string("CMAKE_BUILD_TYPE", spec.variants["build_type"].value)) - entries.append(cmake_cache_option("BUILD_SHARED_LIBS", spec.satisfies("+shared"))) - - # Generic options that have a prefixed equivalent in CHAI CMake - entries.append(cmake_cache_option("ENABLE_OPENMP", spec.satisfies("+openmp"))) - entries.append(cmake_cache_option("ENABLE_EXAMPLES", spec.satisfies("+examples"))) - entries.append(cmake_cache_option("ENABLE_DOCS", False)) - if spec.satisfies("tests=benchmarks"): - # BLT requires ENABLE_TESTS=True to enable benchmarks - entries.append(cmake_cache_option("ENABLE_BENCHMARKS", True)) - entries.append(cmake_cache_option("ENABLE_TESTS", True)) - else: - entries.append(cmake_cache_option("ENABLE_TESTS", not spec.satisfies("tests=none"))) - - # Prefixed options that used to be name without one - entries.append( - cmake_cache_option( - "{}ENABLE_PICK".format(option_prefix), spec.satisfies("+enable_pick") - ) - ) - - entries.append( - cmake_cache_option( - "{}DISABLE_RM".format(option_prefix), spec.satisfies("+disable_rm") - ) - ) - - return entries - - def cmake_args(self): - return [] diff --git a/spack_repo/llnl_radiuss/packages/quandary/package.py b/spack_repo/llnl_radiuss/packages/quandary/package.py deleted file mode 100644 index edd3903e..00000000 --- a/spack_repo/llnl_radiuss/packages/quandary/package.py +++ /dev/null @@ -1,75 +0,0 @@ -# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack_repo.builtin.build_systems.cached_cmake import ( - CachedCMakePackage, - cmake_cache_option, - cmake_cache_path, -) -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage - -from spack.package import * - - -class Quandary(CachedCMakePackage, CudaPackage, ROCmPackage): - """Optimal control for open quantum systems""" - - homepage = "https://github.com/LLNL/quandary" - git = "https://github.com/LLNL/quandary.git" - - maintainers("steffi7574", "tdrwenski", "adrienbernede") - - license("MIT", checked_by="tdrwenski") - - version("main", branch="main", preferred=True) - version("4.3", tag="v4.3", commit="d5087e7ac82665ceb028b492c88b3fe8acd5cd13") - version("4.2", tag="v4.2", commit="557675fd76daf9fd0be7ebd6321bf2afcb6a6b9c") - version("learning", branch="learning") - - variant("slepc", default=False, description="Build with SLEPc library") - variant("int64", default=False, description="Use 64 bit ints for PetscInts") - variant("test", default=False, description="Add dependencies needed for testing") - variant("werror", default=False, description="Enable warnings as errors") - - depends_on("cxx", type="build") - depends_on("c", type="build") - - depends_on("petsc~hypre~metis~fortran") - depends_on("petsc+debug", when="build_type=Debug") - depends_on("petsc~debug", when="build_type=Release") - depends_on("petsc~debug", when="build_type=RelWithDebInfo") - depends_on("petsc+int64", when="+int64") - depends_on("petsc~int64", when="~int64") - - depends_on("slepc", when="+slepc") - depends_on("mpi", type=("build", "link", "run")) - - depends_on("blt@0.6.0:", type="build") - - with when("+rocm"): - for arch_ in ROCmPackage.amdgpu_targets: - depends_on(f"petsc+rocm amdgpu_target={arch_}", when=f"amdgpu_target={arch_}") - - with when("+cuda"): - for sm_ in CudaPackage.cuda_arch_values: - depends_on(f"petsc+cuda cuda_arch={sm_}", when=f"cuda_arch={sm_}") - - with when("+test"): - depends_on("python", type="run") - depends_on("py-pip", type="run") - - build_targets = ["all"] - install_targets = ["install"] - - def initconfig_package_entries(self): - spec = self.spec - entries = [] - - entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix)) - entries.append(cmake_cache_option("WITH_SLEPC", spec.satisfies("+slepc"))) - entries.append(cmake_cache_option("ENABLE_WARNINGS_AS_ERRORS", spec.satisfies("+werror"))) - - return entries diff --git a/spack_repo/llnl_radiuss/packages/raja/package.py b/spack_repo/llnl_radiuss/packages/raja/package.py deleted file mode 100644 index 1068610c..00000000 --- a/spack_repo/llnl_radiuss/packages/raja/package.py +++ /dev/null @@ -1,611 +0,0 @@ -# Copyright 2013-2025 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import socket - -from spack_repo.builtin.build_systems.cached_cmake import ( - CachedCMakePackage, - cmake_cache_option, - cmake_cache_path, - cmake_cache_string, -) -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage - -from spack_repo.llnl_radiuss.packages.camp.package import ( - hip_for_radiuss_projects, - cuda_for_radiuss_projects, -) -from spack_repo.llnl_radiuss.packages.blt.package import llnl_link_helpers - -from spack.package import * - - -# Starting with 2022.03.0, the only submodule we want to fetch is tpl/desul -# since there is no package for it. Other RAJA submodules are defined as -# dependencies. -def submodules(package): - submodules = [] - submodules.append("tpl/desul") - return submodules - - -class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): - """RAJA Parallel Framework.""" - - homepage = "https://github.com/LLNL/RAJA" - git = "https://github.com/LLNL/RAJA.git" - tags = ["radiuss", "e4s"] - - maintainers("adrienbernede", "davidbeckingsale", "kab163") - - license("BSD-3-Clause") - - version("develop", branch="develop", submodules=submodules) - version("main", branch="main", submodules=submodules) - version( - "2025.09.1", - tag="v2025.09.1", - commit="1e0756eda3c344da362e483afb9100ebd8137a2c", - submodules=submodules, - ) - version( - "2025.09.0", - tag="v2025.09.0", - commit="ca756788dbdd43fec2a3840389126ae94a905d5f", - submodules=submodules, - ) - version( - "2025.03.2", - tag="v2025.03.2", - commit="6e36a94380adbe88fed11a3213fc08461428ece0", - submodules=submodules, - ) - version( - "2025.03.1", - tag="v2025.03.1", - commit="ffa7b92377705aff855b4bf602e197ae4f8e8cc3", - submodules=submodules, - ) - version( - "2025.03.0", - tag="v2025.03.0", - commit="1d70abf171474d331f1409908bdf1b1c3fe19222", - submodules=submodules, - ) - version( - "2024.07.0", - tag="v2024.07.0", - commit="4d7fcba55ebc7cb972b7cc9f6778b48e43792ea1", - submodules=submodules, - ) - version( - "2024.02.2", - tag="v2024.02.2", - commit="593f756b14ac57ded33ee61d8d2292d4beb840e6", - submodules=submodules, - ) - version( - "2024.02.1", - tag="v2024.02.1", - commit="3ada0950b0774ec907d30a9eceaf6af7478b833b", - submodules=submodules, - ) - version( - "2024.02.0", - tag="v2024.02.0", - commit="82d1b926ada0fbb15a4a6e0adadc30c715cfda7b", - submodules=submodules, - ) - version( - "2023.06.1", - tag="v2023.06.1", - commit="9b5f61edf3aa1e6fdbc9a4b30828c81504639963", - submodules=submodules, - ) - version( - "2023.06.0", - tag="v2023.06.0", - commit="e330b2560747d5417cd7bd265fab3fb91d32ecbd", - submodules=submodules, - ) - version( - "2022.10.5", - tag="v2022.10.5", - commit="3774f51339459bbbdb77055aa23f82919b6335b6", - submodules=submodules, - ) - version( - "2022.10.4", - tag="v2022.10.4", - commit="c2a6b1740759ae3ae7c85b35e20dbffbe235355d", - submodules=submodules, - ) - version( - "2022.03.0", - tag="v2022.03.0", - commit="4351fe6a50bd579511a625b017c9e054885e7fd2", - submodules=submodules, - ) - version( - "0.14.0", - tag="v0.14.0", - commit="357933a42842dd91de5c1034204d937fce0a2a44", - submodules="True", - ) - version( - "0.13.0", - tag="v0.13.0", - commit="3047fa720132d19ee143b1fcdacaa72971f5988c", - submodules="True", - ) - version( - "0.12.1", - tag="v0.12.1", - commit="9cb6370bb2868e35ebba23cdce927f5f7f9da530", - submodules="True", - ) - version( - "0.12.0", - tag="v0.12.0", - commit="32d92e38da41cc8d4db25ec79b9884a73a0cb3a1", - submodules="True", - ) - version( - "0.11.0", - tag="v0.11.0", - commit="0502b9b69c4cb60aa0afbdf699b555c76cb18f22", - submodules="True", - ) - version( - "0.10.1", - tag="v0.10.1", - commit="be91e040130678b1350dbda56cc352433db758bd", - submodules="True", - ) - version( - "0.10.0", - tag="v0.10.0", - commit="53cb89cf788d28bc4ed2b4e6f75483fdd26024aa", - submodules="True", - ) - version( - "0.9.0", tag="v0.9.0", commit="df7ca1fa892b6ac4147c614d2d739d5022f63fc7", submodules="True" - ) - version( - "0.8.0", tag="v0.8.0", commit="8d19a8c2cbac611de6f92ad8852b9f3454b27e63", submodules="True" - ) - version( - "0.7.0", tag="v0.7.0", commit="caa33b371b586dfae3d8569caee91c5eddfd7b31", submodules="True" - ) - version( - "0.6.0", tag="v0.6.0", commit="cc7a97e8b4e52c3de820c9dfacd358822a147871", submodules="True" - ) - version( - "0.5.3", tag="v0.5.3", commit="1ca35c0ed2a43a3fa9c6cd70c5d25f16d88ecd8c", submodules="True" - ) - version( - "0.5.2", tag="v0.5.2", commit="4d5c3d5d7f311838855f7010810610349e729f64", submodules="True" - ) - version( - "0.5.1", tag="v0.5.1", commit="bf340abe5199d7e051520913c9a7a5de336b5820", submodules="True" - ) - version( - "0.5.0", tag="v0.5.0", commit="9b539d84fdad049f65caeba836f41031f5baf4cc", submodules="True" - ) - version( - "0.4.1", tag="v0.4.1", commit="3618cfe95d6a442fa50fbe7bfbcf654cf9f800b9", submodules="True" - ) - version( - "0.4.0", tag="v0.4.0", commit="31b2a48192542c2da426885baa5af0ed57606b78", submodules="True" - ) - - # export targets when building pre-2.4.0 release with BLT 0.4.0+ - patch( - "https://github.com/LLNL/RAJA/commit/eca1124ee4af380d6613adc6012c307d1fd4176b.patch?full_index=1", - sha256="12bb78c00b6683ad3e7fd4e3f87f9776bae074b722431b79696bc862816735ef", - when="@:0.13.0 ^blt@0.4:", - ) - - # Backward compatibility is stopped from ROCm 6.0 - # Future relase will have the change from PR https://github.com/LLNL/RAJA/pull/1568 - patch( - "https://github.com/LLNL/RAJA/commit/406eb8dee05a41eb32c421c375688a4863b60642.patch?full_index=1", - sha256="d9ce5ef038555cbccb330a9016b7be77e56ae0660583cba955dab9d0297a4b07", - when="^hip@6.0", - ) - - # Fix compilation issue reported by Intel from their new compiler version - patch( - "https://github.com/LLNL/RAJA/commit/3e831e034bd92daacf49f40b66459aefd6ea3972.patch?full_index=1", - sha256="c0548fc5220f24082fb2592d5b4e8b7c8c783b87906d5f0950d53953d25161f6", - when="@2024.02.1:2024.02.99 %oneapi@2025:", - ) - - variant("openmp", default=False, description="Build OpenMP backend") - variant("shared", default=False, description="Build shared libs") - variant("desul", default=False, description="Build desul atomics backend") - variant("vectorization", default=True, description="Build SIMD/SIMT intrinsics support") - variant( - "omptask", default=False, description="Build OpenMP task variants of internal algorithms" - ) - variant("omptarget", default=False, description="Build OpenMP on target device support") - variant("sycl", default=False, description="Build sycl backend") - variant("gpu-profiling", default=False, description="Enable GPU profiling") - - variant("plugins", default=False, description="Enable runtime plugins") - variant("caliper", default=False, description="Enable caliper support") - variant("examples", default=True, description="Build examples.") - variant("exercises", default=True, description="Build exercises.") - # TODO: figure out gtest dependency and then set this default True - # and remove the +tests conflict below. - variant("tests", default=False, description="Build tests") - - # we don't use variants to express the failing test, we only add a variant to - # define whether we want to run all the tests (including those known to fail) - # or only the passing ones. - variant( - "run-all-tests", - default=False, - description="Run all the tests, including those known to fail.", - ) - - variant( - "lowopttest", - default=False, - description="For developers, lowers optimization level to pass tests with some compilers", - ) - - depends_on("cxx", type="build") - - depends_on("blt", type="build") - depends_on("blt@0.7.1:", type="build", when="@2025.09.0:") - 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:2023.06.1") - depends_on("blt@0.5.2:0.5.3", type="build", when="@2022.10.5") - depends_on("blt@0.5.0:0.5.3", type="build", when="@0.14.1:2022.10.4") - depends_on("blt@0.4.1", type="build", when="@0.14.0") - depends_on("blt@0.4.0:0.4.1", type="build", when="@0.13.0") - depends_on("blt@0.3.6:0.4.1", type="build", when="@:0.12.0") - conflicts("^blt@:0.3.6", when="+rocm") - - depends_on("camp") - depends_on("camp+openmp", when="+openmp") - depends_on("camp+omptarget", when="+omptarget") - depends_on("camp+sycl", when="+sycl") - depends_on("camp@main", when="@develop") - depends_on("camp@2025.09:", when="@2025.09:") - depends_on("camp@2025.03", when="@2025.03") - depends_on("camp@2024.07", when="@2024.07") - depends_on("camp@2024.02.1", when="@2024.02.1") - depends_on("camp@2024.02.0", when="@2024.02.0") - depends_on("camp@2023.06.0", when="@2023.06.0:2023.06.1") - depends_on("camp@2022.10.1:2023.06.0", when="@2022.10.3:2022.10.5") - depends_on("camp@2022.10.0:2023.06.0", when="@2022.10.0:2022.10.2") - depends_on("camp@2022.03.2", when="@2022.03.0:2022.03.1") - depends_on("camp@0.2.2:0.2.3", when="@0.14.0") - depends_on("camp@0.1.0", when="@0.10.0:0.13.0") - - depends_on("cmake@3.24:", when="@2025.09.0:", type="build") - depends_on("cmake@3.23:", when="@2024.07.0:2025.03.2", type="build") - depends_on("cmake@3.23:", when="@2022.10.0:2024.02.2+rocm", type="build") - depends_on("cmake@3.20:", when="@2022.10.0:2024.02.2", type="build") - depends_on("cmake@3.20:", when="@:2022.03+rocm", type="build") - depends_on("cmake@3.14:", when="@:2022.03", type="build") - - depends_on("llvm-openmp", when="+openmp %apple-clang") - - depends_on("caliper", when="+caliper") - - depends_on("rocprim", when="+rocm") - with when("+rocm @0.12.0:"): - depends_on("camp+rocm") - for arch in ROCmPackage.amdgpu_targets: - depends_on( - "camp+rocm amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch) - ) - conflicts("+openmp", when="@:2022.03") - - with when("+cuda @0.12.0:"): - depends_on("camp+cuda") - for sm_ in CudaPackage.cuda_arch_values: - depends_on("camp +cuda cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - - conflicts("+gpu-profiling", when="~cuda~rocm", msg="GPU profiling requires CUDA or ROCm") - conflicts("+gpu-profiling +cuda", when="@:2022.02.99") - conflicts("+gpu-profiling +rocm", when="@:2022.02.99") - - conflicts("+omptarget +rocm") - conflicts("+sycl +omptarget") - conflicts("+sycl +rocm") - conflicts( - "+sycl", - when="@:2024.02.99", - msg="Support for SYCL was introduced in RAJA after 2024.02 release, " - "please use a newer release.", - ) - - # https://github.com/spack/spack-packages/pull/2059#issuecomment-3443184517 - conflicts("^cuda@13:", when="+cuda") - - def _get_sys_type(self, spec): - sys_type = spec.architecture - if "SYS_TYPE" in env: - sys_type = env["SYS_TYPE"] - return sys_type - - @property - def libs(self): - shared = "+shared" in self.spec - return find_libraries("libRAJA", root=self.prefix, shared=shared, recursive=True) - - @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 - compiler = self.compiler - # Default entries are already defined in CachedCMakePackage, inherit them: - entries = super().initconfig_compiler_entries() - - llnl_link_helpers(entries, spec, compiler) - - return entries - - def initconfig_hardware_entries(self): - spec = self.spec - compiler = self.compiler - entries = super().initconfig_hardware_entries() - - entries.append("#------------------{0}".format("-" * 30)) - entries.append("# Package custom hardware settings") - entries.append("#------------------{0}\n".format("-" * 30)) - - entries.append(cmake_cache_option("ENABLE_OPENMP", spec.satisfies("+openmp"))) - entries.append(cmake_cache_option("ENABLE_CUDA", spec.satisfies("+cuda"))) - - if spec.satisfies("+cuda"): - cuda_for_radiuss_projects(entries, spec) - - if spec.satisfies("+rocm"): - entries.append(cmake_cache_option("ENABLE_HIP", True)) - hipcc_flags = [] - if self.spec.satisfies("^rocprim@7.0"): - hipcc_flags.append("-std=c++17") - elif self.spec.satisfies("@2025.09.0:"): - hipcc_flags.append("-std=c++17") - elif self.spec.satisfies("@0.14.0:2025.09.0"): - hipcc_flags.append("-std=c++14") - entries.append(cmake_cache_string("HIP_HIPCC_FLAGS", " ".join(hipcc_flags))) - hip_for_radiuss_projects(entries, spec, compiler) - else: - entries.append(cmake_cache_option("ENABLE_HIP", False)) - - return entries - - def initconfig_package_entries(self): - spec = self.spec - entries = [] - - option_prefix = "RAJA_" if spec.satisfies("@0.14.0:") else "" - - # TPL locations - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# TPLs") - entries.append("#------------------{0}\n".format("-" * 60)) - - entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix)) - if "camp" in self.spec: - entries.append(cmake_cache_path("camp_DIR", spec["camp"].prefix)) - - if "caliper" in self.spec: - entries.append(cmake_cache_path("caliper_DIR", spec["caliper"].prefix)) - - # Build options - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# Build Options") - entries.append("#------------------{0}\n".format("-" * 60)) - - entries.append(cmake_cache_string("CMAKE_BUILD_TYPE", spec.variants["build_type"].value)) - entries.append(cmake_cache_option("BUILD_SHARED_LIBS", spec.satisfies("+shared"))) - - entries.append(cmake_cache_option("RAJA_ENABLE_DESUL_ATOMICS", spec.satisfies("+desul"))) - - entries.append( - cmake_cache_option("RAJA_ENABLE_VECTORIZATION", spec.satisfies("+vectorization")) - ) - - entries.append(cmake_cache_option("RAJA_ENABLE_OPENMP_TASK", spec.satisfies("+omptask"))) - - entries.append( - cmake_cache_option("RAJA_ENABLE_TARGET_OPENMP", spec.satisfies("+omptarget")) - ) - - entries.append(cmake_cache_option("RAJA_ENABLE_SYCL", spec.satisfies("+sycl"))) - entries.append( - cmake_cache_option("RAJA_ENABLE_NV_TOOLS_EXT", spec.satisfies("+gpu-profiling +cuda")) - ) - entries.append( - cmake_cache_option("RAJA_ENABLE_ROCTX", spec.satisfies("+gpu-profiling +rocm")) - ) - - if spec.satisfies("+lowopttest"): - entries.append(cmake_cache_string("CMAKE_CXX_FLAGS_RELEASE", "-O1")) - - # C++17 - if ( - spec.satisfies("@2025.09.0:") - or (spec.satisfies("@2024.07.0:") and spec.satisfies("+sycl")) - or (spec.satisfies("^rocprim@7.0:")) - ): - entries.append(cmake_cache_string("BLT_CXX_STD", "c++17")) - # C++14 - elif spec.satisfies("@0.14.0:2025.09.0"): - entries.append(cmake_cache_string("BLT_CXX_STD", "c++14")) - - if spec.satisfies("+desul"): - if spec.satisfies("+cuda"): - entries.append(cmake_cache_string("CMAKE_CUDA_STANDARD", "14")) - - entries.append( - cmake_cache_option("RAJA_ENABLE_RUNTIME_PLUGINS", spec.satisfies("+plugins")) - ) - - entries.append( - cmake_cache_option("RAJA_ENABLE_CALIPER", spec.satisfies("+caliper")) - ) - - if spec.satisfies("+omptarget"): - entries.append( - cmake_cache_string( - "BLT_OPENMP_COMPILE_FLAGS", "-fopenmp;-fopenmp-targets=nvptx64-nvidia-cuda" - ) - ) - entries.append( - cmake_cache_string( - "BLT_OPENMP_LINK_FLAGS", "-fopenmp;-fopenmp-targets=nvptx64-nvidia-cuda" - ) - ) - - entries.append( - cmake_cache_option( - "{}ENABLE_EXAMPLES".format(option_prefix), spec.satisfies("+examples") - ) - ) - if spec.satisfies("@0.14.0:"): - entries.append( - cmake_cache_option( - "{}ENABLE_EXERCISES".format(option_prefix), spec.satisfies("+exercises") - ) - ) - else: - entries.append(cmake_cache_option("ENABLE_EXERCISES", spec.satisfies("+exercises"))) - - # TODO: Treat the workaround when building tests with spack wrapper - # For now, removing it to test CI, which builds tests outside of wrapper. - # Work around spack adding -march=ppc64le to SPACK_TARGET_ARGS which - # is used by the spack compiler wrapper. This can go away when BLT - # removes -Werror from GTest flags - # - # if self.spec.satisfies("%clang target=ppc64le:") - # or (not self.run_tests and not spec.satisfies("+tests")): - if not self.run_tests and not spec.satisfies("+tests"): - entries.append(cmake_cache_option("ENABLE_TESTS", False)) - else: - entries.append(cmake_cache_option("ENABLE_TESTS", True)) - if not spec.satisfies("+run-all-tests"): - if spec.satisfies("%clang@12.0.0:13.9.999"): - entries.append( - cmake_cache_string( - "CTEST_CUSTOM_TESTS_IGNORE", - "test-algorithm-sort-OpenMP.exe;test-algorithm-stable-sort-OpenMP.exe", - ) - ) - excluded_tests = [ - "test-algorithm-sort-Cuda.exe", - "test-algorithm-stable-sort-Cuda.exe", - "test-algorithm-sort-OpenMP.exe", - "test-algorithm-stable-sort-OpenMP.exe", - ] - if spec.satisfies("+cuda %clang@12.0.0:13.9.999"): - entries.append( - cmake_cache_string("CTEST_CUSTOM_TESTS_IGNORE", ";".join(excluded_tests)) - ) - if spec.satisfies("+cuda %xl@16.1.1.12"): - entries.append( - cmake_cache_string( - "CTEST_CUSTOM_TESTS_IGNORE", - "test-algorithm-sort-Cuda.exe;test-algorithm-stable-sort-Cuda.exe", - ) - ) - - entries.append(cmake_cache_option("RAJA_HOST_CONFIG_LOADED", True)) - - return entries - - def cmake_args(self): - return [] - - @property - def build_relpath(self): - """Relative path to the cmake build subdirectory.""" - return join_path("..", self.build_dirname) - - @run_after("install") - def setup_build_tests(self): - """Copy the build test files after the package is installed to a - relative install test subdirectory for use during `spack test run`.""" - # Now copy the relative files - cache_extra_test_sources(self, self.build_relpath) - - # Ensure the path exists since relying on a relative path at the - # same level as the normal stage source path. - mkdirp(install_test_root(self)) - - @property - def _extra_tests_path(self): - # TODO: The tests should be converted to re-build and run examples - # TODO: using the installed libraries. - return join_path(install_test_root(self), self.build_relpath, "bin") - - def run_example(self, exe, expected): - """run and check outputs of the example""" - with working_dir(self._extra_tests_path): - example = which(exe) - if example is None: - raise SkipTest(f"{exe} was not built") - - out = example(output=str.split, error=str.split) - check_outputs(expected, out) - - def test_line_of_sight(self): - """check line of sight example""" - self.run_example( - "ex5_line-of-sight_solution", - [r"C-style sequential", r"RAJA sequential", r"result -- PASS"], - ) - - def test_stencil_offset_layout(self): - """check stencil offset layout""" - self.run_example( - "ex6_stencil-offset-layout_solution", [r"RAJA Views \(permuted\)", r"result -- PASS"] - ) - - def test_tiled_matrix(self): - """check tiled matrix transpose""" - self.run_example( - "ex8_tiled-matrix-transpose_solution", - [r"C-version", r"RAJA sequential", r"result -- PASS"], - ) - - def test_dynamic_tile(self): - """check kernel dynamic tile""" - self.run_example("kernel-dynamic-tile", [r"Running index", r"(24,24)"]) - - def test_plugin_example(self): - """check plugin example""" - self.run_example("plugin-example", [r"Launching host kernel for the 10 time"]) - - def test_matrix_multiply(self): - """check batched matrix multiple tutorial""" - self.run_example( - "tut_batched-matrix-multiply", [r"batched matrix multiplication", r"result -- PASS"] - ) - - def test_wave_equation(self): - """check wave equation""" - self.run_example("wave-eqn", [r"Max Error = 2", r"Evolved solution to time"]) diff --git a/spack_repo/llnl_radiuss/packages/raja_perf/package.py b/spack_repo/llnl_radiuss/packages/raja_perf/package.py deleted file mode 100644 index e1fb7998..00000000 --- a/spack_repo/llnl_radiuss/packages/raja_perf/package.py +++ /dev/null @@ -1,378 +0,0 @@ -# Copyright 2013-2025 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import socket - -from spack_repo.builtin.build_systems.cached_cmake import ( - CachedCMakePackage, - cmake_cache_option, - cmake_cache_path, - cmake_cache_string, -) -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage - -from spack_repo.llnl_radiuss.packages.camp.package import ( - hip_for_radiuss_projects, - cuda_for_radiuss_projects, - mpi_for_radiuss_projects, -) -from spack_repo.llnl_radiuss.packages.blt.package import llnl_link_helpers - -from spack.package import * - - -class RajaPerf(CachedCMakePackage, CudaPackage, ROCmPackage): - """RAJA Performance Suite.""" - - homepage = "https://github.com/LLNL/RAJAPerf" - git = "https://github.com/LLNL/RAJAPerf.git" - tags = ["radiuss"] - - maintainers("davidbeckingsale", "adrienbernede") - - license("BSD-3-Clause") - - version("develop", branch="develop", submodules="True") - version("main", branch="main", submodules="True") - version( - "2025.03.0", - tag="v2025.03.0", - commit="b66b9d7a1c6826037fed991492bc3ea1893d86ac", - submodules="True", - ) - version( - "2024.07.0", - tag="v2024.07.0", - commit="6e81aa58af244a13755a694bfdc7bc301139a244", - submodules="True", - ) - version( - "2023.06.0", - tag="v2023.06.0", - commit="e5b2102f50e4642f53d9c86fb622b398a748974a", - submodules="True", - ) - version( - "2022.10.0", - tag="v2022.10.0", - commit="57ee53e402d2ac0a398df39ad1ca85cf1d2be45b", - submodules="True", - ) - version( - "0.12.0", - tag="v0.12.0", - commit="388c1d7562e1cb364191cb34c1ff62f3cadf54a0", - submodules="True", - ) - version( - "0.11.0", - tag="v0.11.0", - commit="22ac1de533ebd477c781d53962a92478c0a11d43", - submodules="True", - ) - version( - "0.10.0", - tag="v0.10.0", - commit="6bf725af38da41b1ebd1d29c75ffa5b8e57f7cbf", - submodules="True", - ) - version( - "0.9.0", tag="v0.9.0", commit="064dd17dae696c3e440eeb7469fa90341858a636", submodules="True" - ) - version( - "0.8.0", tag="v0.8.0", commit="94c65b2caefec2220f712f34c2a198b682ca7e23", submodules="True" - ) - version( - "0.7.0", tag="v0.7.0", commit="a6ef0279d9d240199947d872d8f28bf121f2192c", submodules="True" - ) - version( - "0.6.0", tag="v0.6.0", commit="21e476f031bc10bbdb8514425c380553bfb23bdc", submodules="True" - ) - version( - "0.5.2", tag="v0.5.2", commit="2da5e27bc648ff5540ffa69bbde67f125e4581d3", submodules="True" - ) - version( - "0.5.1", tag="v0.5.1", commit="a7b6f63e4fef2d0146932eff409788da51ab0cb3", submodules="True" - ) - version( - "0.5.0", tag="v0.5.0", commit="888f5ebe69a9b2ae35058cf8fb8d89d91a379bea", submodules="True" - ) - version( - "0.4.0", tag="v0.4.0", commit="a8f669c1ad01d51132a4e3d9d6aa8b2cabc9eff0", submodules="True" - ) - - variant("mpi", default=False, description="Enable MPI support") - variant("openmp", default=False, description="Build OpenMP backend") - variant("omptarget", default=False, description="Build with OpenMP target support") - variant("sycl", default=False, description="Build sycl backend") - variant("shared", default=False, description="Build Shared Libs") - variant("omptask", default=False, description="Build OpenMP task variants of algorithms") - variant( - "tests", - default="basic", - values=("none", "basic", "benchmarks"), - multi=False, - description="Tests to run", - ) - variant("caliper", default=False, description="Build with support for Caliper based profiling") - variant( - "lowopttest", - default=False, - description="For developers, lowers optimization level to pass tests with some compilers", - ) - - depends_on("cxx", type="build") # generated - - depends_on("blt") - depends_on("blt@0.7.0:", type="build", when="@2025.03.0:") - depends_on("blt@0.6.2:", type="build", when="@2024.07.0:") - depends_on("blt@0.5.3", type="build", when="@2023.06") - depends_on("blt@0.5.2:0.5.3", type="build", when="@2022.10") - depends_on("blt@0.5.0:", type="build", when="@0.12.0:") - depends_on("blt@0.4.1:", type="build", when="@0.11.0:") - depends_on("blt@0.4.0:", type="build", when="@0.8.0:") - depends_on("blt@0.3.0:", type="build", when="@:0.7.0") - - depends_on("cmake@3.23:", when="@2024.07.0:", type="build") - depends_on("cmake@3.23:", when="@0.12.0:2023.06.0 +rocm", type="build") - depends_on("cmake@3.20:", when="@0.12.0:2023.06.0", type="build") - depends_on("cmake@3.14:", when="@:0.12.0", type="build") - - depends_on("mpi", when="+mpi") - - depends_on("llvm-openmp", when="+openmp %apple-clang") - - depends_on("rocprim", when="+rocm") - - depends_on("caliper@2.9.0:", when="+caliper") - depends_on("caliper@2.9.0: +cuda", when="+caliper +cuda") - depends_on("caliper@2.9.0: +rocm", when="+caliper +rocm") - - with when("@0.12.0: +rocm +caliper"): - depends_on("caliper +rocm") - for arch in ROCmPackage.amdgpu_targets: - depends_on( - "caliper +rocm amdgpu_target={0}".format(arch), - when="amdgpu_target={0}".format(arch), - ) - conflicts("+openmp", when="@:2022.03") - - with when("@0.12.0: +cuda +caliper"): - depends_on("caliper +cuda") - for sm_ in CudaPackage.cuda_arch_values: - depends_on("caliper +cuda cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - - conflicts("~openmp", when="+omptarget", msg="OpenMP target requires OpenMP") - conflicts("+cuda", when="+omptarget", msg="Cuda may not be activated when omptarget is ON") - conflicts("+omptarget +rocm") - conflicts("+sycl +omptarget") - conflicts("+sycl +rocm") - # Using RAJA version as threshold on purpose (no 2024.02 version of RAJAPerf were released). - conflicts( - "+sycl", - when="@:2024.02.99", - msg="Support for SYCL was introduced in RAJA after 2024.02 release, " - "please use a newer release.", - ) - - def _get_sys_type(self, spec): - sys_type = str(spec.architecture) - if "SYS_TYPE" in env: - 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 - compiler = self.compiler - # 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")) - - # adrienbernede-23-01 - # Maybe we want to share this in the above llnl_link_helpers function. - compilers_using_cxx14 = ["intel-17", "intel-18", "xl"] - if any(compiler in self.compiler.cxx for compiler in compilers_using_cxx14): - entries.append(cmake_cache_string("BLT_CXX_STD", "c++14")) - - llnl_link_helpers(entries, spec, compiler) - - return entries - - def initconfig_hardware_entries(self): - spec = self.spec - compiler = self.compiler - entries = super().initconfig_hardware_entries() - - entries.append("#------------------{0}".format("-" * 30)) - entries.append("# Package custom hardware settings") - entries.append("#------------------{0}\n".format("-" * 30)) - - entries.append(cmake_cache_option("ENABLE_OPENMP", "+openmp" in spec)) - - # T benefit from the shared function "cuda_for_radiuss_projects", - # we do not modify CMAKE_CUDA_FLAGS: it is already appended by the - # shared function. - if "+cuda" in spec: - entries.append(cmake_cache_option("ENABLE_CUDA", True)) - # Shared handling of cuda. - cuda_for_radiuss_projects(entries, spec) - - # Custom options. - # We place everything in CMAKE_CUDA_FLAGS_(RELEASE|RELWITHDEBINFO|DEBUG) - # which are not set by cuda_for_radiuss_projects - if "xl" in compiler.cxx: - all_targets_flags = ( - "-Xcompiler -qstrict -Xcompiler -qxlcompatmacros -Xcompiler -qalias=noansi" - + "-Xcompiler -qsmp=omp -Xcompiler -qhot -Xcompiler -qnoeh" - + "-Xcompiler -qsuppress=1500-029 -Xcompiler -qsuppress=1500-036" - + "-Xcompiler -qsuppress=1500-030" - ) - cuda_release_flags = "-O3 -Xcompiler -O2 " + all_targets_flags - cuda_reldebinf_flags = "-O3 -g -Xcompiler -O2 " + all_targets_flags - cuda_debug_flags = "-O0 -g -Xcompiler -O2 " + all_targets_flags - - elif "gcc" in compiler.cxx: - all_targets_flags = "-Xcompiler -finline-functions -Xcompiler -finline-limit=20000" - - cuda_release_flags = "-O3 -Xcompiler -Ofast " + all_targets_flags - cuda_reldebinf_flags = "-O3 -g -Xcompiler -Ofast " + all_targets_flags - cuda_debug_flags = "-O0 -g -Xcompiler -O0 " + all_targets_flags - - else: - all_targets_flags = "-Xcompiler -finline-functions" - - cuda_release_flags = "-O3 -Xcompiler -Ofast " + all_targets_flags - cuda_reldebinf_flags = "-O3 -g -Xcompiler -Ofast " + all_targets_flags - cuda_debug_flags = "-O0 -g -Xcompiler -O0 " + all_targets_flags - - entries.append(cmake_cache_string("CMAKE_CUDA_FLAGS_RELEASE", cuda_release_flags)) - entries.append( - cmake_cache_string("CMAKE_CUDA_FLAGS_RELWITHDEBINFO", cuda_reldebinf_flags) - ) - entries.append(cmake_cache_string("CMAKE_CUDA_FLAGS_DEBUG", cuda_debug_flags)) - - else: - entries.append(cmake_cache_option("ENABLE_CUDA", False)) - - if "+rocm" in spec: - entries.append(cmake_cache_option("ENABLE_HIP", True)) - hip_for_radiuss_projects(entries, spec, compiler) - else: - entries.append(cmake_cache_option("ENABLE_HIP", False)) - - entries.append(cmake_cache_option("RAJA_ENABLE_TARGET_OPENMP", "+omptarget" in spec)) - if "+omptarget" in spec: - if "%xl" in spec: - entries.append( - cmake_cache_string( - "BLT_OPENMP_COMPILE_FLAGS", "-qoffload;-qsmp=omp;-qnoeh;-qalias=noansi" - ) - ) - entries.append( - cmake_cache_string( - "BLT_OPENMP_LINK_FLAGS", "-qoffload;-qsmp=omp;-qnoeh;-qalias=noansi" - ) - ) - if "%clang" in spec: - entries.append( - cmake_cache_string( - "BLT_OPENMP_COMPILE_FLAGS", "-fopenmp;-fopenmp-targets=nvptx64-nvidia-cuda" - ) - ) - entries.append( - cmake_cache_string( - "BLT_OPENMP_LINK_FLAGS", "-fopenmp;-fopenmp-targets=nvptx64-nvidia-cuda" - ) - ) - - return entries - - def initconfig_mpi_entries(self): - spec = self.spec - entries = super().initconfig_mpi_entries() - - entries.append(cmake_cache_option("ENABLE_MPI", "+mpi" in spec)) - if "+mpi" in spec: - mpi_for_radiuss_projects(entries, spec, env) - - return entries - - def initconfig_package_entries(self): - spec = self.spec - entries = [] - - # option_prefix = "RAJA_" if spec.satisfies("@0.14.0:") else "" - - # TPL locations - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# TPLs") - entries.append("#------------------{0}\n".format("-" * 60)) - - entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix)) - if "caliper" in self.spec: - entries.append( - cmake_cache_path("caliper_DIR", spec["caliper"].prefix + "/share/cmake/caliper/") - ) - entries.append( - cmake_cache_path("adiak_DIR", spec["adiak"].prefix + "/lib/cmake/adiak/") - ) - - # Build options - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# Build Options") - entries.append("#------------------{0}\n".format("-" * 60)) - - entries.append(cmake_cache_string("CMAKE_BUILD_TYPE", spec.variants["build_type"].value)) - - entries.append(cmake_cache_string("RAJA_RANGE_ALIGN", "4")) - entries.append(cmake_cache_string("RAJA_RANGE_MIN_LENGTH", "32")) - entries.append(cmake_cache_string("RAJA_DATA_ALIGN", "64")) - - entries.append(cmake_cache_option("RAJA_HOST_CONFIG_LOADED", True)) - - 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("RAJA_ENABLE_SYCL", spec.satisfies("+sycl"))) - - # C++17 - if ( - spec.satisfies("@2025.09.0:") - or (spec.satisfies("@2024.07.0:") and spec.satisfies("+sycl")) - or (spec.satisfies("^rocprim@7.0:")) - ): - entries.append(cmake_cache_string("BLT_CXX_STD", "c++17")) - # C++14 - # Using RAJA version as threshold on purpose (no 0.14 version of RAJAPerf were released). - elif spec.satisfies("@0.14.0:2025.09.0"): - entries.append(cmake_cache_string("BLT_CXX_STD", "c++14")) - - entries.append(cmake_cache_option("ENABLE_BENCHMARKS", "tests=benchmarks" in spec)) - entries.append( - cmake_cache_option("ENABLE_TESTS", "tests=none" not in spec or self.run_tests) - ) - - entries.append(cmake_cache_option("RAJA_PERFSUITE_USE_CALIPER", "+caliper" in spec)) - - return entries - - def cmake_args(self): - return [] diff --git a/spack_repo/llnl_radiuss/packages/umpire/camp_target_umpire_3.0.0.patch b/spack_repo/llnl_radiuss/packages/umpire/camp_target_umpire_3.0.0.patch deleted file mode 100644 index 2deb565c..00000000 --- a/spack_repo/llnl_radiuss/packages/umpire/camp_target_umpire_3.0.0.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/umpire-config.cmake.in b/umpire-config.cmake.in -index a98ad5fe..4e54e173 100644 ---- a/umpire-config.cmake.in -+++ b/umpire-config.cmake.in -@@ -7,6 +7,13 @@ - get_filename_component(UMPIRE_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) - set(UMPIRE_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") - -+if (NOT TARGET camp) -+ if (NOT DEFINED camp_DIR) -+ set(camp_DIR @CMAKE_INSTALL_PREFIX@/lib/cmake/camp) -+ endif () -+ find_package(camp REQUIRED) -+endif () -+ - set(Umpire_VERSION_MAJOR @Umpire_VERSION_MAJOR@) - set(Umpire_VERSION_MINOR @Umpire_VERSION_MINOR@) - set(Umpire_VERSION_PATCH @Umpire_VERSION_PATCH@) diff --git a/spack_repo/llnl_radiuss/packages/umpire/cmake_version_check.patch b/spack_repo/llnl_radiuss/packages/umpire/cmake_version_check.patch deleted file mode 100644 index 05f80e0b..00000000 --- a/spack_repo/llnl_radiuss/packages/umpire/cmake_version_check.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/umpire/CMakeLists.txt b/src/umpire/CMakeLists.txt -index 18518f13..c2e45e03 100644 ---- a/src/umpire/CMakeLists.txt -+++ b/src/umpire/CMakeLists.txt -@@ -105,7 +105,7 @@ blt_add_library( - DEPENDS_ON ${umpire_depends} - DEFINES ${umpire_defines}) - --if (NOT WIN32 AND CMAKE_VERSION VERSION_GREATER 3.17) -+if (NOT WIN32 AND NOT ${CMAKE_VERSION} VERSION_LESS 3.18) - target_link_options( - umpire INTERFACE - $>:-rdynamic>> diff --git a/spack_repo/llnl_radiuss/packages/umpire/dual_blt_import_umpire_2022.10_2023.06.patch b/spack_repo/llnl_radiuss/packages/umpire/dual_blt_import_umpire_2022.10_2023.06.patch deleted file mode 100644 index c8edc801..00000000 --- a/spack_repo/llnl_radiuss/packages/umpire/dual_blt_import_umpire_2022.10_2023.06.patch +++ /dev/null @@ -1,106 +0,0 @@ -diff --git a/cmake/SetupUmpireThirdParty.cmake b/cmake/SetupUmpireThirdParty.cmake -index fc351369..6e82ab6e 100644 ---- a/cmake/SetupUmpireThirdParty.cmake -+++ b/cmake/SetupUmpireThirdParty.cmake -@@ -80,29 +80,40 @@ if (UMPIRE_ENABLE_SQLITE_EXPERIMENTAL) - find_package(SQLite3 REQUIRED) - endif() - --set(UMPIRE_NEEDS_BLT_TPLS False) --if (UMPIRE_ENABLE_MPI OR UMPIRE_ENABLE_HIP OR UMPIRE_ENABLE_OPENMP OR UMPIRE_ENABLE_CUDA) -- set(UMPIRE_NEEDS_BLT_TPLS True) -- -- if (NOT BLT_EXPORTED) -- set(BLT_EXPORTED On CACHE BOOL "" FORCE) -- blt_import_library(NAME blt_stub EXPORTABLE On) -- set_target_properties(blt_stub PROPERTIES EXPORT_NAME blt::blt_stub) -- install(TARGETS blt_stub -- EXPORT bltTargets) -- blt_export_tpl_targets(EXPORT bltTargets NAMESPACE blt) -- install(EXPORT bltTargets -- DESTINATION lib/cmake/umpire) -- elseif (UMPIRE_ENABLE_MPI) -+ -+################################################# -+# use bonafide cmake targets for openmp and mpi -+################################################# -+set(umpire_mpi_deps "") -+if (UMPIRE_ENABLE_MPI) -+ if(ENABLE_FIND_MPI) -+ set (umpire_mpi_deps MPI::MPI_CXX) -+ endif() -+endif() -+ -+set(umpire_openmp_deps "") -+if (UMPIRE_ENABLE_OPENMP) -+ set (umpire_openmp_deps OpenMP::OpenMP_CXX) -+endif () -+ -+################################################# -+# export necessary blt targets -+################################################# -+ -+set(UMPIRE_BLT_TPL_DEPS_EXPORTS) -+ -+blt_list_append(TO UMPIRE_BLT_TPL_DEPS_EXPORTS ELEMENTS cuda cuda_runtime IF UMPIRE_ENABLE_CUDA) -+blt_list_append(TO UMPIRE_BLT_TPL_DEPS_EXPORTS ELEMENTS blt_hip blt_hip_runtime IF UMPIRE_ENABLE_HIP) -+ -+foreach(dep ${UMPIRE_BLT_TPL_DEPS_EXPORTS}) - # If the target is EXPORTABLE, add it to the export set -- get_target_property(_is_imported mpi IMPORTED) -+ get_target_property(_is_imported ${dep} IMPORTED) - if(NOT ${_is_imported}) -- install(TARGETS mpi -- EXPORT ${arg_EXPORT}) -- # Namespace target to avoid conflicts -- set_target_properties(mpi PROPERTIES EXPORT_NAME blt::mpi) -- install(EXPORT bltTargets -- DESTINATION lib/cmake/umpire) -+ install(TARGETS ${dep} -+ EXPORT umpire-targets -+ DESTINATION lib/cmake/umpire) -+ # Namespace target to avoid conflicts -+ set_target_properties(${dep} PROPERTIES EXPORT_NAME umpire::blt_tpl_exports_${dep}) - endif() -- endif() --endif() -+endforeach() -+ -diff --git a/src/umpire/interface/c_fortran/CMakeLists.txt b/src/umpire/interface/c_fortran/CMakeLists.txt -index ab675adf..22e4dc90 100644 ---- a/src/umpire/interface/c_fortran/CMakeLists.txt -+++ b/src/umpire/interface/c_fortran/CMakeLists.txt -@@ -43,7 +43,7 @@ set_source_files_properties( - set(umpire_interface_c_fortran_depends camp umpire_util) - blt_list_append( TO umpire_interface_c_fortran_depends ELEMENTS cuda_runtime IF UMPIRE_ENABLE_CUDA ) --blt_list_append( TO umpire_interface_c_fortran_depends ELEMENTS blt::hip_runtime IF UMPIRE_ENABLE_HIP ) --blt_list_append( TO umpire_interface_c_fortran_depends ELEMENTS mpi IF UMPIRE_ENABLE_MPI ) -+blt_list_append( TO umpire_interface_c_fortran_depends ELEMENTS blt_hip_runtime IF UMPIRE_ENABLE_HIP ) -+blt_list_append( TO umpire_interface_c_fortran_depends ELEMENTS ${umpire_mpi_deps} IF UMPIRE_ENABLE_MPI ) - - blt_add_library( - NAME umpire_interface -diff --git a/src/umpire/util/CMakeLists.txt b/src/umpire/util/CMakeLists.txt -index 551f8188..02eb13e4 100644 ---- a/src/umpire/util/CMakeLists.txt -+++ b/src/umpire/util/CMakeLists.txt -@@ -73,14 +73,15 @@ endif() - - if (UMPIRE_ENABLE_MPI) - set (umpire_util_depends -- ${umpire_util_depends} -- mpi) -+ ${umpire_util_depends} -+ ${umpire_mpi_deps} -+ ) - endif () - - if (UMPIRE_ENABLE_OPENMP_TARGET) - set (umpire_util_depends -- ${umpire_util_depends} -- openmp) -+ ${umpire_util_depends} -+ ${umpire_openmp_deps}) - endif () - - if (UMPIRE_ENABLE_HIP) diff --git a/spack_repo/llnl_radiuss/packages/umpire/export_includes.patch b/spack_repo/llnl_radiuss/packages/umpire/export_includes.patch deleted file mode 100644 index c5a56518..00000000 --- a/spack_repo/llnl_radiuss/packages/umpire/export_includes.patch +++ /dev/null @@ -1,130 +0,0 @@ -diff --git a/src/tpl/CMakeLists.txt b/src/tpl/CMakeLists.txt -index 6803f0a4..60269f88 100644 ---- a/src/tpl/CMakeLists.txt -+++ b/src/tpl/CMakeLists.txt -@@ -50,7 +50,13 @@ target_include_directories( - umpire_tpl_json - INTERFACE - $ -- $ -+ $) -+ -+blt_convert_to_system_includes(TARGET umpire_tpl_json) -+ -+target_include_directories( -+ umpire_tpl_json -+ INTERFACE - $) - - install(FILES -@@ -64,8 +70,6 @@ install(TARGETS - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) - --blt_patch_target(NAME umpire_tpl_json -- TREAT_INCLUDES_AS_SYSTEM ON) - - # - # CLI11 Option Parsing Headers -@@ -82,7 +86,13 @@ target_include_directories( - umpire_tpl_CLI11 - INTERFACE - $ -- $ -+ $) -+ -+blt_convert_to_system_includes(TARGET umpire_tpl_CLI11) -+ -+target_include_directories( -+ umpire_tpl_CLI11 -+ INTERFACE - $) - - install(FILES -@@ -96,9 +106,6 @@ install(TARGETS - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) - --blt_patch_target(NAME umpire_tpl_CLI11 -- TREAT_INCLUDES_AS_SYSTEM ON) -- - add_subdirectory(umpire/judy) - - if (NOT TARGET camp) -@@ -153,7 +160,14 @@ target_include_directories( - umpire_tpl_fmt - INTERFACE - $ -- $ -+ $) -+ -+# Avoid warnings from fmt (so we can still use -Werror) -+blt_convert_to_system_includes(TARGET umpire_tpl_fmt) -+ -+target_include_directories( -+ umpire_tpl_fmt -+ INTERFACE - $) - - if (C_COMPILER_FAMILY_IS_XL) -@@ -168,21 +182,17 @@ if (C_COMPILER_FAMILY_IS_PGI) - set(_fmt_warning_disable_flag - "--diag_suppress 1625;--diag_suppress 185;--diag_suppress 811;--diag_suppress 186") - -- if (ENABLE_FORTRAN) -+ if (ENABLE_FORTRAN) - target_compile_options(umpire_tpl_fmt - INTERFACE - $<$>:${_fmt_warning_disable_flag}>) -- else () -- target_compile_options(umpire_tpl_fmt -- INTERFACE -- ${_fmt_warning_disable_flag}) -- endif () -+ else () -+ target_compile_options(umpire_tpl_fmt -+ INTERFACE -+ ${_fmt_warning_disable_flag}) -+ endif () - endif () - --# Avoid warnings from fmt (so we can still use -Werror) --blt_patch_target(NAME umpire_tpl_fmt -- TREAT_INCLUDES_AS_SYSTEM ON) -- - if (C_COMPILER_FAMILY_IS_GNU) - target_compile_options(umpire_tpl_fmt - INTERFACE -diff --git a/src/umpire/interface/c_fortran/CMakeLists.txt b/src/umpire/interface/c_fortran/CMakeLists.txt -index cf0d6932..ab675adf 100644 ---- a/src/umpire/interface/c_fortran/CMakeLists.txt -+++ b/src/umpire/interface/c_fortran/CMakeLists.txt -@@ -57,15 +57,22 @@ target_include_directories( - PUBLIC - $ - $ -- $:${CMAKE_Fortran_MODULE_DIRECTORY}>> -- $:include/umpire>> # for Fortran module files - $) - - install(FILES - ${umpire_interface_c_fortran_headers} - DESTINATION include/umpire/interface/c_fortran) - --install(DIRECTORY -- ${CMAKE_Fortran_MODULE_DIRECTORY}/ -- DESTINATION include/umpire -- FILES_MATCHING PATTERN "*.mod") -+if(UMPIRE_ENABLE_FORTRAN) -+ target_include_directories( -+ umpire_interface -+ PUBLIC -+ $ -+ $) -+ -+ install(DIRECTORY -+ ${CMAKE_Fortran_MODULE_DIRECTORY}/ -+ DESTINATION include/umpire -+ FILES_MATCHING PATTERN "*.mod") -+endif() -+ diff --git a/spack_repo/llnl_radiuss/packages/umpire/missing_header_for_numeric_limits.patch b/spack_repo/llnl_radiuss/packages/umpire/missing_header_for_numeric_limits.patch deleted file mode 100644 index 6e89e370..00000000 --- a/spack_repo/llnl_radiuss/packages/umpire/missing_header_for_numeric_limits.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/umpire/util/allocation_statistics.cpp b/src/umpire/util/allocation_statistics.cpp -index 597ae61f..0c3f7865 100644 ---- a/src/umpire/util/allocation_statistics.cpp -+++ b/src/umpire/util/allocation_statistics.cpp -@@ -8,6 +8,7 @@ - #include "umpire/util/allocation_statistics.hpp" - - #include -+#include - - namespace umpire { - namespace util { diff --git a/spack_repo/llnl_radiuss/packages/umpire/package.py b/spack_repo/llnl_radiuss/packages/umpire/package.py deleted file mode 100644 index 6e2427db..00000000 --- a/spack_repo/llnl_radiuss/packages/umpire/package.py +++ /dev/null @@ -1,593 +0,0 @@ -# Copyright 2013-2025 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os -import socket - -from spack_repo.builtin.build_systems.cached_cmake import ( - CachedCMakePackage, - cmake_cache_option, - cmake_cache_path, - cmake_cache_string, -) -from spack_repo.builtin.build_systems.cuda import CudaPackage -from spack_repo.builtin.build_systems.rocm import ROCmPackage - -from spack_repo.llnl_radiuss.packages.camp.package import ( - hip_for_radiuss_projects, - cuda_for_radiuss_projects, - mpi_for_radiuss_projects, -) -from spack_repo.llnl_radiuss.packages.blt.package import llnl_link_helpers - -from spack.package import * - - -class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): - """An application-focused API for memory management on NUMA & GPU - architectures""" - - homepage = "https://github.com/LLNL/Umpire" - git = "https://github.com/LLNL/Umpire.git" - tags = ["radiuss", "e4s"] - - maintainers("adrienbernede", "davidbeckingsale", "kab163") - - license("MIT") - - version("develop", branch="develop", submodules=False) - version( - "2025.09.0", - tag="v2025.09.0", - commit="6b0ea9edbbbc741c8a429768d946549cd3bd7d33", - submodules=False, - ) - version( - "2025.03.1", - tag="v2025.03.1", - commit="df47e275d538ce2337fcdd2c09875616715101db", - submodules=False, - ) - version( - "2025.03.0", - tag="v2025.03.0", - commit="1ed0669c57f041baa1f1070693991c3a7a43e7ee", - submodules=False, - ) - version( - "2024.07.0", - tag="v2024.07.0", - commit="abd729f40064175e999a83d11d6b073dac4c01d2", - submodules=False, - ) - version( - "2024.02.1", - tag="v2024.02.1", - commit="3058d562fc707650e904f9321b1ee9bcebad3ae2", - submodules=False, - ) - version( - "2024.02.0", - tag="v2024.02.0", - commit="1db3fef913a70d8882ca510a4830c77c388873e0", - submodules=False, - ) - version( - "2023.06.0", - tag="v2023.06.0", - commit="1e5ef604de88e81bb3b6fc4a5d914be833529da5", - submodules=False, - ) - version( - "2022.10.0", - tag="v2022.10.0", - commit="93b1441aaa258c1dcd211a552b75cff6461a2a8a", - submodules=False, - ) - version( - "2022.03.1", - tag="v2022.03.1", - commit="6bf231bdbbc797df70d60027ddb714ac2ef7c0a1", - submodules=False, - ) - version( - "2022.03.0", - tag="v2022.03.0", - commit="2db6224ae0c3f3e0bbd6722e95c1167b7f79be7b", - submodules=False, - ) - version( - "6.0.0", tag="v6.0.0", commit="5f886b4299496b7cb6f9d62dc1372ce6d3832fbc", submodules=True - ) - version( - "5.0.1", tag="v5.0.1", commit="5201a47a35e3844160dcbecd0916f8c96aa7dd07", submodules=True - ) - version( - "5.0.0", tag="v5.0.0", commit="2196615500057e068f2d93597b4f8da89d582afb", submodules=True - ) - version( - "4.1.2", tag="v4.1.2", commit="447f4640eff7b8f39d3c59404f3b03629b90c021", submodules=True - ) - version( - "4.1.1", tag="v4.1.1", commit="df1830b5ea04185f93fc229ed667da62d1d2d6e3", submodules=True - ) - version( - "4.1.0", tag="v4.1.0", commit="62f146d9c6b291cd79b29386dcb84b30f7b4212e", submodules=True - ) - version( - "4.0.1", tag="v4.0.1", commit="06d8692d084a88b15b0ef2794a1da779197da747", submodules=True - ) - version( - "4.0.0", tag="v4.0.0", commit="bdd598512516bdc4238502f180c8a7e145c6e68f", submodules=True - ) - version( - "3.0.0", tag="v3.0.0", commit="657676087574f61f9d90b996a3bdbf4e1cdfc92e", submodules=True - ) - version( - "2.1.0", tag="v2.1.0", commit="52e10c05cd40dfdfde186c1e63213695f5aeaf65", submodules=True - ) - version( - "2.0.0", tag="v2.0.0", commit="0dc8b4736357645b99632ee7c17a3dc6af771fbb", submodules=True - ) - version( - "1.1.0", tag="v1.1.0", commit="3db26e6a2626ee8c0cfa5c9769cfac6e33587122", submodules=True - ) - version( - "1.0.1", tag="v1.0.1", commit="a6741073431cab3a7a2434f9119a54d18e9978f4", submodules=True - ) - version( - "1.0.0", tag="v1.0.0", commit="82482fd7450ab378db110f06f7e0302112c22c05", submodules=True - ) - version( - "0.3.5", tag="v0.3.5", commit="a283977bb548cbaa0221bdb6c9832f7834f69e74", submodules=True - ) - version( - "0.3.4", tag="v0.3.4", commit="20a77408d8ae467af21d5802d14afe54f1253694", submodules=True - ) - version( - "0.3.3", tag="v0.3.3", commit="715a8bd003eb1d9db1e2ac7ff2c6251cfd445c27", submodules=True - ) - version( - "0.3.2", tag="v0.3.2", commit="06f37f2011fa4d9482f15e04fc206e2e7b7aa9e2", submodules=True - ) - version( - "0.3.1", tag="v0.3.1", commit="aef223065fdfe85d1e46bab95e3874821702891a", submodules=True - ) - version( - "0.3.0", tag="v0.3.0", commit="529004f9e88fbb49ee93a97465ff904be249039c", submodules=True - ) - version( - "0.2.4", tag="v0.2.4", commit="f774afae69b6f2e5c99ea8bf5660ccf68bd5436d", submodules=True - ) - version( - "0.2.3", tag="v0.2.3", commit="af158291f574701aabb6a2b16e6536aefaf4496e", submodules=True - ) - version( - "0.2.2", tag="v0.2.2", commit="68f4b86fd877c9ca00c9438c603e5dbc40d5f219", submodules=True - ) - version( - "0.2.1", tag="v0.2.1", commit="c22df368e2f52398351f49fbe2522bd1150ad171", submodules=True - ) - version( - "0.2.0", tag="v0.2.0", commit="7910b8d4dbfe83faacf65e864304ca916e34b86c", submodules=True - ) - version( - "0.1.4", tag="v0.1.4", commit="c2848289ba9d8c85346610d25af9531b82c50fc3", submodules=True - ) - version( - "0.1.3", tag="v0.1.3", commit="cc347edeb17f5f30f694aa47f395d17369a2e449", submodules=True - ) - - # Some projects importing both camp and umpire targets end up with conflicts in BLT targets - # import. This is not addressing the root cause, which will be addressed in BLT@5.4.0 and will - # require adapting umpire build system. - patch("dual_blt_import_umpire_2022.10_2023.06.patch", when="@2022.10.0:2023.06.0") - patch("export_includes.patch", when="@2022.10.0") - patch("std-filesystem-pr784.patch", when="@2022.03.1 +rocm ^blt@0.5.2:") - patch("camp_target_umpire_3.0.0.patch", when="@3.0.0") - patch("cmake_version_check.patch", when="@4.1") - patch("missing_header_for_numeric_limits.patch", when="@4.1:5.0.1") - - # export targets when building pre-6.0.0 release with BLT 0.4.0+ - patch( - "https://github.com/LLNL/Umpire/commit/5773ce9af88952c8d23f9bcdcb2e503ceda40763.patch?full_index=1", - sha256="f3b21335ce5cf9c0fecc852a94dfec90fb5703032ac97f9fee104af9408d8899", - when="@:5.0.1 ^blt@0.4:", - ) - - # https://github.com/LLNL/Umpire/pull/805 - patch( - "https://github.com/LLNL/Umpire/commit/47ff0aa1f7a01a917c3b7ac618e8a9e44a10fd25.patch?full_index=1", - sha256="802f074a05e1cb1f428e13d99c5fcb1435f86bd8f36a1ea2f7b6756e6625e0a0", - when="@2022.10.0", - ) - - # https://github.com/LLNL/Umpire/pull/816 - patch( - "https://github.com/LLNL/Umpire/commit/2292d1d6078f6d9523b7ad0886ffa053644569d5.patch?full_index=1", - sha256="170dbcadb9ae36c7e211119c17a812695f11f4fe1be290b750f7af4fb4896192", - when="@2022.10.0", - ) - - # https://github.com/LLNL/Umpire/pull/853 - patch( - "https://github.com/LLNL/Umpire/commit/4bd9b2ded81d3216b3f62e2aad62d0e34fe2c256.patch?full_index=1", - sha256="c9ddae1f4212cef72e1050b6ac482ce5b795dad4977d2462cff2e884b8d7aff5", - when="@2022.10:2023.06", - ) - - variant("fortran", default=False, description="Build C/Fortran API") - 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, - description="Enable sqlite integration with umpire events (Experimental)", - ) - variant("numa", default=False, description="Enable NUMA support") - variant("shared", default=True, description="Enable Shared libs") - variant("openmp", default=False, description="Build with OpenMP support") - variant("omptarget", default=False, description="Build with OpenMP 4.5 support") - variant("deviceconst", default=False, description="Enables support for constant device memory") - variant("examples", default=False, description="Build Umpire Examples") - variant( - "tests", - default="none", - values=("none", "basic", "benchmarks"), - multi=False, - description="Tests to run", - ) - variant("tools", default=False, description="Enable tools") - variant("backtrace", default=False, description="Enable backtrace tools") - variant("dev_benchmarks", default=False, description="Enable developer benchmarks") - variant("device_alloc", default=False, description="Enable DeviceAllocator") - variant("werror", default=True, description="Enable warnings as errors") - variant("asan", default=False, description="Enable ASAN") - variant("sanitizer_tests", default=False, description="Enable address sanitizer tests") - variant("fmt_header_only", default=True, description="Link to header-only fmt target") - - depends_on("c", type="build") - depends_on("cxx", type="build") - depends_on("fortran", type="build", when="+fortran") - - depends_on("cmake@3.23:", when="@2024.07.0:", type="build") - depends_on("cmake@3.23:", when="@2022.10.0: +rocm", type="build") - depends_on("cmake@3.20:", when="@2022.10.0:2024.02.1", type="build") - depends_on("cmake@:3.20", when="@2022.03.0:2022.03 +rocm", type="build") - depends_on("cmake@3.14:", when="@2022.03.0:", type="build") - depends_on("cmake@3.9:", when="+cuda", type="build") - depends_on("cmake@3.8:", type="build") - - depends_on("blt", type="build") - depends_on("blt@0.7.1:", type="build", when="@2025.09.0:") - 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") - depends_on("blt@0.5.2:0.5.3", type="build", when="@2022.10.0") - depends_on("blt@0.5.0:0.5.3", type="build", when="@2022.03.0:2022.03.1") - depends_on("blt@0.4.1", type="build", when="@6.0.0") - depends_on("blt@0.4.0:0.4.1", type="build", when="@4.1.3:5.0.1") - depends_on("blt@0.3.6:0.4.1", type="build", when="@:4.1.2") - conflicts("^blt@:0.3.6", when="+rocm") - - depends_on("camp") - depends_on("camp+openmp", when="+openmp") - depends_on("camp~cuda", when="~cuda") - depends_on("camp~rocm", when="~rocm") - depends_on("camp@2025.12:", when="@develop") - depends_on("camp@2025.09", when="@2025.09") - depends_on("camp@2025.03", when="@2025.03") - depends_on("camp@2024.07", when="@2024.07") - depends_on("camp@2024.02.1", when="@2024.02.1") - depends_on("camp@2024.02.0", when="@2024.02.0") - depends_on("camp@2023.06.0", when="@2023.06.0") - depends_on("camp@2022.10.0:2023.06.0", when="@2022.10.0") - depends_on("camp@2022.03.2:2023.06.0", when="@2022.03.0:2022.03.1") - depends_on("camp@0.2.2:0.2.3", when="@6.0.0") - depends_on("camp@0.1.0", when="@5.0.0:5.0.1") - - depends_on("sqlite", when="+sqlite_experimental") - depends_on("mpi", when="+mpi") - - depends_on("fmt@12.1.0", when="@2026:") - depends_on("fmt@9.1:11.0", when="@2024.02.0:2025") - # We need c++ 17 only with intel - depends_on("fmt@9.1:11.0 cxxstd=17", when="@2024.02.0: %intel@19.1") - - with when("@5.0.0:"): - with when("+cuda"): - depends_on("camp+cuda") - for sm_ in CudaPackage.cuda_arch_values: - depends_on("camp+cuda cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - - with when("+rocm"): - depends_on("camp+rocm") - for arch_ in ROCmPackage.amdgpu_targets: - depends_on( - "camp+rocm amdgpu_target={0}".format(arch_), - when="amdgpu_target={0}".format(arch_), - ) - - conflicts("+numa", when="@:0.3.2") - conflicts("~c", when="+fortran", msg="Fortran API requires C API") - - # device allocator must be used with more current umpire versions, rocm 5.4.0 and greater, - # and with either rocm or cuda enabled - conflicts("+device_alloc", when="@:2022.03.0") - conflicts("+device_alloc", when="^hip@:5.3.99") - conflicts("+device_alloc", when="~rocm~cuda") - - conflicts("+deviceconst", when="~rocm~cuda") - conflicts("~openmp", when="+omptarget", msg="OpenMP target requires OpenMP") - conflicts("+cuda", when="+rocm") - conflicts("+tools", when="+rocm") - conflicts( - "+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 @:2025.03.0") - - conflicts("+sqlite_experimental", when="@:6.0.0") - conflicts("+sanitizer_tests", when="~asan") - - # device allocator exports device code, which requires static libs - # currently only available for cuda. - conflicts("+shared", when="+cuda") - - # https://github.com/LLNL/Umpire/pull/992 - conflicts("^cuda@13:", when="+cuda") - - def _get_sys_type(self, spec): - sys_type = spec.architecture - if "SYS_TYPE" in env: - 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 - compiler = self.compiler - # Default entries are already defined in CachedCMakePackage, inherit them: - entries = super().initconfig_compiler_entries() - - option_prefix = "UMPIRE_" if spec.satisfies("@2022.03.0:") else "" - - if spec.satisfies("+fortran"): - entries.append(cmake_cache_option("ENABLE_FORTRAN", True)) - else: - entries.append(cmake_cache_option("ENABLE_FORTRAN", False)) - - entries.append( - cmake_cache_option("{}ENABLE_C".format(option_prefix), spec.satisfies("+c")) - ) - - llnl_link_helpers(entries, spec, compiler) - - return entries - - def initconfig_hardware_entries(self): - spec = self.spec - compiler = self.compiler - entries = super().initconfig_hardware_entries() - - entries.append("#------------------{0}".format("-" * 30)) - entries.append("# Package custom hardware settings") - entries.append("#------------------{0}\n".format("-" * 30)) - - option_prefix = "UMPIRE_" if spec.satisfies("@2022.03.0:") else "" - - if spec.satisfies("+cuda"): - entries.append(cmake_cache_option("ENABLE_CUDA", True)) - # Umpire used to pick only the first architecture in the list. The shared logic in - # CachedCMakePackage keeps the list of architectures. - cuda_for_radiuss_projects(entries, spec) - else: - entries.append(cmake_cache_option("ENABLE_CUDA", False)) - - if spec.satisfies("+rocm"): - entries.append(cmake_cache_option("ENABLE_HIP", True)) - hip_for_radiuss_projects(entries, spec, compiler) - else: - entries.append(cmake_cache_option("ENABLE_HIP", False)) - - entries.append( - cmake_cache_option( - "{}ENABLE_DEVICE_CONST".format(option_prefix), spec.satisfies("+deviceconst") - ) - ) - - entries.append( - cmake_cache_option( - "{}ENABLE_OPENMP_TARGET".format(option_prefix), spec.satisfies("+omptarget") - ) - ) - - if spec.satisfies("+omptarget") and spec.satisfies("%xl"): - entries.append(cmake_cache_string("OpenMP_CXX_FLAGS", "-qsmp;-qoffload")) - - return entries - - def initconfig_mpi_entries(self): - spec = self.spec - - 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")) - ) - - if spec.satisfies("+mpi"): - mpi_for_radiuss_projects(entries, spec, env) - - return entries - - def initconfig_package_entries(self): - spec = self.spec - entries = [] - - option_prefix = "UMPIRE_" if spec.satisfies("@2022.03.0:") else "" - - # TPL locations - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# TPLs") - entries.append("#------------------{0}\n".format("-" * 60)) - - entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix)) - if spec.satisfies("@5.0.0:"): - entries.append(cmake_cache_path("camp_DIR", spec["camp"].prefix)) - - if spec.satisfies("@2024.02.0:"): - entries.append(cmake_cache_path("fmt_DIR", spec["fmt"].prefix)) - - # Build options - entries.append("#------------------{0}".format("-" * 60)) - entries.append("# Build Options") - entries.append("#------------------{0}\n".format("-" * 60)) - - entries.append(cmake_cache_string("CMAKE_BUILD_TYPE", spec.variants["build_type"].value)) - entries.append(cmake_cache_option("BUILD_SHARED_LIBS", spec.satisfies("+shared"))) - entries.append(cmake_cache_option("ENABLE_WARNINGS_AS_ERRORS", spec.satisfies("+werror"))) - - # Generic options that have a prefixed equivalent in Umpire CMake - entries.append(cmake_cache_option("ENABLE_OPENMP", spec.satisfies("+openmp"))) - entries.append(cmake_cache_option("ENABLE_EXAMPLES", spec.satisfies("+examples"))) - entries.append(cmake_cache_option("ENABLE_DOCS", False)) - if spec.satisfies("tests=benchmarks") or spec.satisfies("+dev_benchmarks"): - # BLT requires ENABLE_TESTS=True to enable benchmarks - entries.append(cmake_cache_option("ENABLE_BENCHMARKS", True)) - entries.append(cmake_cache_option("ENABLE_TESTS", True)) - else: - entries.append(cmake_cache_option("ENABLE_BENCHMARKS", False)) - entries.append(cmake_cache_option("ENABLE_TESTS", not spec.satisfies("tests=none"))) - - # Prefixed options that used to be name without one - entries.append( - cmake_cache_option("{}ENABLE_NUMA".format(option_prefix), spec.satisfies("+numa")) - ) - entries.append( - cmake_cache_option( - "{}ENABLE_DEVELOPER_BENCHMARKS".format(option_prefix), - spec.satisfies("+dev_benchmarks"), - ) - ) - entries.append( - cmake_cache_option("{}ENABLE_TOOLS".format(option_prefix), spec.satisfies("+tools")) - ) - entries.append( - cmake_cache_option( - "{}ENABLE_BACKTRACE".format(option_prefix), spec.satisfies("+backtrace") - ) - ) - entries.append( - cmake_cache_option("{}ENABLE_ASAN".format(option_prefix), spec.satisfies("+asan")) - ) - entries.append( - cmake_cache_option( - "{}ENABLE_SANITIZER_TESTS".format(option_prefix), - spec.satisfies("+sanitizer_tests"), - ) - ) - - # Recent options, were never name without prefix - entries.append( - cmake_cache_option("UMPIRE_ENABLE_DEVICE_ALLOCATOR", spec.satisfies("+device_alloc")) - ) - entries.append( - cmake_cache_option( - "UMPIRE_ENABLE_SQLITE_EXPERIMENTAL", spec.satisfies("+sqlite_experimental") - ) - ) - if spec.satisfies("+sqlite_experimental"): - entries.append(cmake_cache_path("SQLite3_ROOT", spec["sqlite"].prefix)) - - # This option was renamed later than the others - if spec.satisfies("@2022.10.0:"): - entries.append( - cmake_cache_option("UMPIRE_ENABLE_IPC_SHARED_MEMORY", spec.satisfies("+ipc_shmem")) - ) - else: - entries.append( - cmake_cache_option("ENABLE_IPC_SHARED_MEMORY", spec.satisfies("+ipc_shmem")) - ) - - if spec.satisfies("~fmt_header_only"): - entries.append(cmake_cache_string("UMPIRE_FMT_TARGET", "fmt::fmt")) - - return entries - - def cmake_args(self): - return [] - - def setup_run_environment(self, env: EnvironmentModifications) -> None: - for library in ["lib", "lib64"]: - lib_path = join_path(self.prefix, library) - if os.path.exists(lib_path): - env.append_path("LD_LIBRARY_PATH", lib_path) - - def run_example(self, exe, expected): - """Perform stand-alone checks on the installed package.""" - - exe_run = which(join_path(self.prefix.bin, exe)) - if exe_run is None: - raise SkipTest(f"{exe} is not installed for version {self.version}") - out = exe_run(output=str.split, error=str.split) - check_outputs(expected, out) - - def test_malloc(self): - """Run Malloc""" - self.run_example("malloc", ["99 should be 99"]) - - def test_recipe_dynamic_pool_heuristic(self): - """Multiple use allocator test""" - self.run_example("recipe_dynamic_pool_heuristic", ["in the pool", "releas"]) - - def test_recipe_no_introspection(self): - """Test without introspection""" - self.run_example("recipe_no_introspection", ["has allocated", "used"]) - - def test_strategy_example(self): - """Memory allocation strategy test""" - self.run_example("strategy_example", ["Available allocators", "HOST"]) - - def test_tut_copy(self): - """Copy data test""" - self.run_example("tut_copy", ["Copied source data"]) - - def test_tut_introspection(self): - """Keep track of pointer allocation test""" - self.run_example("tut_introspection", ["Allocator used is HOST", "size of the allocation"]) - - def test_tut_memset(self): - """Set entire block of memory to one value test""" - self.run_example("tut_memset", ["Set data from HOST"]) - - def test_tut_move(self): - """Move memory test""" - self.run_example("tut_move", ["Moved source data", "HOST"]) - - def test_tut_reallocate(self): - """Reallocate memory test""" - self.run_example("tut_reallocate", ["Reallocated data"]) - - def test_vector_allocator(self): - """Allocate vector memory test""" - self.run_example("vector_allocator", [""]) diff --git a/spack_repo/llnl_radiuss/packages/umpire/std-filesystem-pr784.patch b/spack_repo/llnl_radiuss/packages/umpire/std-filesystem-pr784.patch deleted file mode 100644 index 67714421..00000000 --- a/spack_repo/llnl_radiuss/packages/umpire/std-filesystem-pr784.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -ruN spack-src/cmake/SetupCompilerFlags.cmake spack-src-patched/cmake/SetupCompilerFlags.cmake ---- spack-src/cmake/SetupCompilerFlags.cmake 2022-10-12 08:05:03.538390165 -0700 -+++ spack-src-patched/cmake/SetupCompilerFlags.cmake 2022-10-12 09:47:56.317645003 -0700 -@@ -11,20 +11,20 @@ - - message(STATUS "Checking for std::filesystem") - --include(CheckCXXSourceCompiles) --check_cxx_source_compiles( -- "#include -- #include -- -- int main(int, char**) -- { -+blt_check_code_compiles(CODE_COMPILES UMPIRE_ENABLE_FILESYSTEM -+ SOURCE_STRING -+[=[ -+#include -+#include - -+int main(int, char**) -+{ - auto path = std::filesystem::path(\".\"); - (void)(path); - - return 0; -- }" -- UMPIRE_ENABLE_FILESYSTEM) -+} -+]=]) - - if (UMPIRE_ENABLE_FILESYSTEM) - message(STATUS "std::filesystem found") diff --git a/toss_4_x86_64_ib/corona/packages.yaml b/toss_4_x86_64_ib/corona/packages.yaml index 82bb8dfc..843f8207 100644 --- a/toss_4_x86_64_ib/corona/packages.yaml +++ b/toss_4_x86_64_ib/corona/packages.yaml @@ -278,6 +278,12 @@ prefix: /opt/rocm-6.0.2/ - spec: rocprim@6.4.2%llvm-amdgpu@6.4.2 prefix: /opt/rocm-6.4.2/ + rocprofiler-sdk: + version: [6.4.2] + buildable: false + externals: + - spec: rocprofiler-sdk@6.4.2%llvm-amdgpu@6.4.2 + prefix: /opt/rocm-6.4.2 # Special case (module / wrapper) mvapich2: diff --git a/toss_4_x86_64_ib/packages.yaml b/toss_4_x86_64_ib/packages.yaml index a52fbf10..cc4b467e 100644 --- a/toss_4_x86_64_ib/packages.yaml +++ b/toss_4_x86_64_ib/packages.yaml @@ -290,6 +290,12 @@ prefix: /opt/rocm-6.0.2/ - spec: rocprim@6.4.2%llvm-amdgpu@6.4.2 prefix: /opt/rocm-6.4.2/ + rocprofiler-sdk: + version: [6.4.2] + buildable: false + externals: + - spec: rocprofiler-sdk@6.4.2%llvm-amdgpu@6.4.2 + prefix: /opt/rocm-6.4.2 cuda: version: [12.9.1, 12.6.0, 12.2.2, 11.8.0, 11.7.0, 11.5.0, 11.2.0, 11.1.0, 10.2.89, 10.1.168] diff --git a/toss_4_x86_64_ib/spack.yaml b/toss_4_x86_64_ib/spack.yaml index 933cb18d..39b7fad5 100644 --- a/toss_4_x86_64_ib/spack.yaml +++ b/toss_4_x86_64_ib/spack.yaml @@ -1,8 +1,8 @@ spack: repos: builtin:: - commit: a229f54670 git: https://github.com/spack/spack-packages.git + commit: 3f482a6fca include: - config.yaml - packages.yaml diff --git a/toss_4_x86_64_ib_cray/packages.yaml b/toss_4_x86_64_ib_cray/packages.yaml index 8b84d841..ca89d46c 100644 --- a/toss_4_x86_64_ib_cray/packages.yaml +++ b/toss_4_x86_64_ib_cray/packages.yaml @@ -283,6 +283,16 @@ prefix: /opt/rocm-6.3.1 - spec: rocprim@6.4.1%llvm-amdgpu@6.4.1 prefix: /opt/rocm-6.4.1 + rocprofiler-sdk: + version: [6.2.4, 6.3.1, 6.4.1] + buildable: false + externals: + - spec: rocprofiler-sdk@6.2.4%llvm-amdgpu@6.2.4 + prefix: /opt/rocm-6.2.4 + - spec: rocprofiler-sdk@6.3.1%llvm-amdgpu@6.3.1 + prefix: /opt/rocm-6.3.1 + - spec: rocprofiler-sdk@6.4.1%llvm-amdgpu@6.4.1 + prefix: /opt/rocm-6.4.1 rocthrust: version: [5.7.1, 6.1.2, 6.2.4, 6.3.1, 6.4.1] buildable: false diff --git a/toss_4_x86_64_ib_cray/spack.yaml b/toss_4_x86_64_ib_cray/spack.yaml index 933cb18d..39b7fad5 100644 --- a/toss_4_x86_64_ib_cray/spack.yaml +++ b/toss_4_x86_64_ib_cray/spack.yaml @@ -1,8 +1,8 @@ spack: repos: builtin:: - commit: a229f54670 git: https://github.com/spack/spack-packages.git + commit: 3f482a6fca include: - config.yaml - packages.yaml diff --git a/toss_4_x86_64_ib_cray/tioga/packages.yaml b/toss_4_x86_64_ib_cray/tioga/packages.yaml index 3dbab90f..0ac632b7 100644 --- a/toss_4_x86_64_ib_cray/tioga/packages.yaml +++ b/toss_4_x86_64_ib_cray/tioga/packages.yaml @@ -283,6 +283,16 @@ prefix: /opt/rocm-6.3.1 - spec: rocprim@6.4.1%llvm-amdgpu@6.4.1 prefix: /opt/rocm-6.4.1 + rocprofiler-sdk: + version: [6.2.4, 6.3.1, 6.4.1] + buildable: false + externals: + - spec: rocprofiler-sdk@6.2.4%llvm-amdgpu@6.2.4 + prefix: /opt/rocm-6.2.4 + - spec: rocprofiler-sdk@6.3.1%llvm-amdgpu@6.3.1 + prefix: /opt/rocm-6.3.1 + - spec: rocprofiler-sdk@6.4.1%llvm-amdgpu@6.4.1 + prefix: /opt/rocm-6.4.1 rocthrust: version: [5.7.1, 6.1.2, 6.2.4, 6.3.1, 6.4.1] buildable: false diff --git a/toss_4_x86_64_ib_cray/tuolumne/packages.yaml b/toss_4_x86_64_ib_cray/tuolumne/packages.yaml index 854803f2..91c20a91 100644 --- a/toss_4_x86_64_ib_cray/tuolumne/packages.yaml +++ b/toss_4_x86_64_ib_cray/tuolumne/packages.yaml @@ -283,6 +283,16 @@ prefix: /opt/rocm-6.3.1 - spec: rocprim@6.4.1%llvm-amdgpu@6.4.1 prefix: /opt/rocm-6.4.1 + rocprofiler-sdk: + version: [6.2.4, 6.3.1, 6.4.1] + buildable: false + externals: + - spec: rocprofiler-sdk@6.2.4%llvm-amdgpu@6.2.4 + prefix: /opt/rocm-6.2.4 + - spec: rocprofiler-sdk@6.3.1%llvm-amdgpu@6.3.1 + prefix: /opt/rocm-6.3.1 + - spec: rocprofiler-sdk@6.4.1%llvm-amdgpu@6.4.1 + prefix: /opt/rocm-6.4.1 rocthrust: version: [5.7.1, 6.1.2, 6.2.4, 6.3.1, 6.4.1] buildable: false