From 07f0db21c1dbfa6c9d0e11e8c37a0de77bd36011 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sat, 30 May 2026 23:16:23 -0700 Subject: [PATCH 01/22] Changes to the spack packages for kripke and its dependencies in preparation to upstream to the spack-packages repository --- experiments/kripke/experiment.py | 21 ++++++++++++--- .../benchpark/packages/chai/package.py | 27 +++++++++++++++++-- .../benchpark/packages/kripke/package.py | 10 +++++-- 3 files changed, 51 insertions(+), 7 deletions(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 8ea0b97ad..05482f2d0 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -98,6 +98,7 @@ def compute_applications_section(self): if self.spec.satisfies("+throughput"): problem_spec = { "nzx": [ + 64, 80, 100, 120, @@ -106,8 +107,13 @@ def compute_applications_section(self): 180, 200, 220, + 240, + 260, + 280, + 300, ], "nzy": [ + 64, 80, 100, 120, @@ -116,8 +122,13 @@ def compute_applications_section(self): 180, 200, 220, + 240, + 260, + 280, + 300, ], "nzz": [ + 32, 40, 50, 60, @@ -126,11 +137,15 @@ def compute_applications_section(self): 90, 100, 110, + 120, + 130, + 140, + 150, ], "pool": 120, - "npx": [2, 2, 2, 2, 2, 2, 2, 2], - "npy": [2, 2, 2, 2, 2, 2, 2, 2], - "npz": [1, 1, 1, 1, 1, 1, 1, 1], + "npx": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], + "npy": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], + "npz": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], "ngroups": 48, "gs": 1, "nquad": 80, diff --git a/repos/spack_repo/benchpark/packages/chai/package.py b/repos/spack_repo/benchpark/packages/chai/package.py index 129a348b5..a4ccc9050 100644 --- a/repos/spack_repo/benchpark/packages/chai/package.py +++ b/repos/spack_repo/benchpark/packages/chai/package.py @@ -4,13 +4,23 @@ # SPDX-License-Identifier: Apache-2.0 from spack.package import * -from spack_repo.builtin.build_systems.cached_cmake import cmake_cache_option +from spack_repo.builtin.build_systems.cached_cmake import ( + cmake_cache_option, + cmake_cache_string, +) from spack_repo.builtin.packages.chai.package import Chai as BuiltinChai class Chai(BuiltinChai): variant("single_memory", default=False, description="Enable single memory space model") + variant( + "cxxstd", + default="17", + values=("11", "14", "17", "20"), + description="C++ standard to build with", + ) + conflicts("+single_memory", when="~rocm") version( @@ -19,7 +29,11 @@ class Chai(BuiltinChai): commit="26d5646707e1848b0524379b12a7716e4a830a27", submodules=False, ) - + + @property + def cxx_std(self): + return self.spec.variants.get("cxxstd").value + def initconfig_hardware_entries(self): spec = self.spec entries = super().initconfig_hardware_entries() @@ -30,6 +44,15 @@ def initconfig_hardware_entries(self): return entries + def initconfig_package_entries(self): + spec = self.spec + entries = super().initconfig_package_entries() + + # C++ standard + entries.append(cmake_cache_string("BLT_CXX_STD", f"c++{self.cxx_std}")) + + return entries + def setup_build_environment(self, env): super().setup_build_environment(env) if "+cuda" in self.spec: diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index 82705980c..4ea75f2b6 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -23,7 +23,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") - version("develop", branch="develop", submodules=False) + version("develop", branch="task/chen59/initmemgpu", submodules=False) version("2025.12.0", submodules=False, commit="01f6f85c02ceffcd2bc06e42cee997867dd142c5") version("2025.07.0", submodules=False, commit="8cf38433a6a11e0dcd17864e649b2d045159ee9c") version( @@ -66,7 +66,11 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): depends_on("cxx", type="build") depends_on("fortran", type="build") - depends_on("chai@2025.12.0+raja", when="@develop") + depends_on("camp@main", when="@develop") + depends_on("chai@develop+raja cxxstd=20", when="@develop") + depends_on("raja@develop cxxstd=20", when="@develop") + depends_on("umpire@develop", when="@develop") + depends_on("chai@2025.12.0+raja", when="@2025.12.0") depends_on("fmt@9.1", when=f"^chai@2024.07.0") depends_on("chai@2024.07.0+raja", when="@:2025.07.0") @@ -124,6 +128,7 @@ def setup_run_environment(self, env): def cmake_args(self): spec = self.spec args = [] + blt_cxx_std = "20" if spec.satisfies("@develop") else "17" if "+rocm" in spec or "+cuda" in spec: enable_chai = "ON" @@ -141,6 +146,7 @@ def cmake_args(self): "-Dchai_DIR=%s" % self.spec["chai"].prefix, "-DENABLE_CHAI=%s" % enable_chai, "-DENABLE_CHAI_SINGLE_MEMORY=%s" % enable_chai_single_memory, + "-DBLT_CXX_STD=%s" % f"c++{blt_cxx_std}", "-DMPI_CXX_LINK_FLAGS='%s'" % self.spec['mpi'].libs.ld_flags, ] ) From 6978f7dbcbf799077c59a93aa88147b67e246c51 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sat, 30 May 2026 23:26:12 -0700 Subject: [PATCH 02/22] Fix develop branch --- repos/spack_repo/benchpark/packages/kripke/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index 4ea75f2b6..de6aa4008 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -23,7 +23,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") - version("develop", branch="task/chen59/initmemgpu", submodules=False) + version("develop", branch="develop", submodules=False) version("2025.12.0", submodules=False, commit="01f6f85c02ceffcd2bc06e42cee997867dd142c5") version("2025.07.0", submodules=False, commit="8cf38433a6a11e0dcd17864e649b2d045159ee9c") version( From d74ad9804d03790d9eed5bcb89b9c9906037278d Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sun, 21 Jun 2026 09:14:44 -0700 Subject: [PATCH 03/22] Weak scaling size --- experiments/kripke/experiment.py | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 05482f2d0..027ceeb92 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -41,6 +41,13 @@ class Kripke( description="Enable single memory space model in rocm", ) + variant( + "problem_size", + default="large", + values=("large", "medium", "small"), + description="Problem size", + ) + variant( "other", default=False, @@ -159,6 +166,45 @@ def compute_applications_section(self): "throughput_n": None, "throughput_p": None, } + elif self.spec.satisfies("+weak"): + problem_spec = { + "nzx": 80, + "nzy": 80, + "nzz": 40, + "pool": 120, + "npx": 2, + "npy": 2, + "npz": 1, + "ngroups": 48, + "gs": 1, + "nquad": 80, + "ds": 80, + "lorder": 4, + "layout": "GDZ", + "strong_n": None, + "strong_p": None, + "weak_n": lambda var, itr, dim, scaling_factor: var.val(dim) + * scaling_factor, + "weak_p": lambda var, itr, dim, scaling_factor: var.val(dim) + * scaling_factor, + "throughput_n": None, + "throughput_p": None, + } + if self.spec.satisfies("problem_size=large"): + problem_spec["nzx"] = 220 + problem_spec["nzy"] = 220 + problem_spec["nzz"] = 110 + problem_spec["pool"] = 105 + if self.spec.satisfies("problem_size=medium"): + problem_spec["nzx"] = 200 + problem_spec["nzy"] = 200 + problem_spec["nzz"] = 100 + problem_spec["pool"] = 77 + if self.spec.satisfies("problem_size=small"): + problem_spec["nzx"] = 188 + problem_spec["nzy"] = 188 + problem_spec["nzz"] = 94 + problem_spec["pool"] = 70 else: problem_spec = { "nzx": 80, From 300c54b2473394e52bd5df8d467f32b3d34d56f4 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Thu, 9 Jul 2026 21:55:09 -0700 Subject: [PATCH 04/22] CHAI, Umpire and GPU-aware MPI changes --- experiments/kripke/experiment.py | 30 ++-- .../benchpark/packages/kripke/package.py | 135 ++++++++++-------- 2 files changed, 92 insertions(+), 73 deletions(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 027ceeb92..a6219f7f9 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -36,9 +36,10 @@ class Kripke( ) variant( - "single_memory", + "gpu-aware-mpi", default=False, - description="Enable single memory space model in rocm", + values=(True, False), + description="Enable GPU-aware MPI", ) variant( @@ -49,10 +50,10 @@ class Kripke( ) variant( - "other", - default=False, + "chai", + default=True, values=(True, False), - description="Set other input/environment variables", + description="Enable CHAI", ) maintainers("pearce8") @@ -260,9 +261,6 @@ def compute_applications_section(self): self.add_experiment_variable("layout", problem_spec["layout"], True) self.add_experiment_variable("pool", problem_spec["pool"], True) - if self.spec.satisfies("+other"): - self.set_environment_variable("HSA_XNACK", 1) - # Set the variables required by the experiment self.set_required_variables( n_resources="{npx}*{npy}*{npz}", @@ -312,12 +310,16 @@ def compute_applications_section(self): self.add_experiment_variable("n_ranks", "{n_resources}", True) def compute_package_section(self): - # get package version - single_memory = ( - "+single_memory" - if self.spec.variants["single_memory"][0] - else "~single_memory" + gam = ( + "+gpu-aware-mpi" + if self.spec.variants["gpu-aware-mpi"][0] + else "~gpu-aware-mpi" + ) + chai = ( + "+chai" + if self.spec.variants["chai"][0] + else "~chai" ) self.add_package_spec( - self.name, [f"kripke{self.determine_version()} {single_memory} +mpi"] + self.name, [f"kripke{self.determine_version()} {gam} {chai} +mpi"] ) diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index 9874ff3cb..f65309246 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -15,7 +15,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): """ homepage = "https://computing.llnl.gov/projects/co-design/kripke" - git = "https://github.com/LLNL/Kripke.git" + git = "https://github.com/rfhaque/Kripke.git" tags = ["proxy-app"] @@ -23,7 +23,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") - version("develop", branch="develop", submodules=False) + version("develop", branch="kripke_chai_umpire", submodules=False) version("2025.12.0", submodules=False, commit="01f6f85c02ceffcd2bc06e42cee997867dd142c5") version("2025.07.0", submodules=False, commit="8cf38433a6a11e0dcd17864e649b2d045159ee9c") version( @@ -55,62 +55,86 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): ) variant("mpi", default=True, description="Build with MPI.") + variant("chai", default=True, description="Build with CHAI/Umpire.") variant("openmp", default=False, description="Build with OpenMP enabled.") variant("caliper", default=False, description="Build with Caliper support enabled.") - variant("single_memory", default=False, description="Enable single memory space model in rocm") - - conflicts("+single_memory", when="~rocm") - depends_on("chai+single_memory", when="+single_memory") + variant("gpu-aware-mpi", default=False, description="Enable GPU-aware MPI") depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") depends_on("camp@main", when="@develop") - depends_on("chai@develop+raja cxxstd=20", when="@develop") depends_on("raja@develop cxxstd=20", when="@develop") - depends_on("umpire@develop", when="@develop") - - depends_on("chai@2025.12.0+raja", when="@2025.12.0") - depends_on("fmt@9.1", when=f"^chai@2024.07.0") - depends_on("chai@2024.07.0+raja", when="@:2025.07.0") - depends_on("chai@2024.07.0+raja", when="@1.2.7.0:2025.07.0") - depends_on("fmt@9.1", when=f"^chai@2024.07.0") depends_on("mpi", when="+mpi") - depends_on("chai+mpi", when="+mpi") + + with when("+chai"): + depends_on("chai+mpi", when="+mpi") + depends_on("chai@develop+raja cxxstd=20", when="@develop") + depends_on("chai@2025.12.0+raja", when="@2025.12.0") + depends_on("chai@2024.07.0+raja", when="@1.2.7.0:2025.07.0") + depends_on("fmt@9.1", when=f"^chai@2024.07.0") + + depends_on("chai+openmp", when="+openmp") + depends_on("chai~openmp", when="~openmp") + + depends_on("chai+cuda", when="+cuda") + depends_on("chai~cuda", when="~cuda") + for sm_ in CudaPackage.cuda_arch_values: + depends_on("chai cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) + + depends_on("chai+rocm", when="+rocm") + depends_on("chai~rocm", when="~rocm") + for arch in ROCmPackage.amdgpu_targets: + depends_on("chai amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) + + depends_on("umpire@develop", when="@develop") + depends_on("umpire+openmp", when="+openmp") + depends_on("umpire~openmp", when="~openmp") + + depends_on("umpire+cuda", when="+cuda") + depends_on("umpire~cuda", when="~cuda") + for sm_ in CudaPackage.cuda_arch_values: + depends_on("umpire cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) + + depends_on("umpire+rocm", when="+rocm") + depends_on("umpire~rocm", when="~rocm") + for arch in ROCmPackage.amdgpu_targets: + depends_on("umpire amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) + + conflicts("^blt@0.7:", when="^chai@:2024.07.0") + depends_on("caliper", when="+caliper") depends_on("adiak@0.4:", when="+caliper") conflicts("^blt@:0.3.6", when="+rocm") - conflicts("^blt@0.7:", when="^chai@:2024.07.0") depends_on("blt@0.6.2:", type="build", when=f"@1.2.7:") - depends_on("chai+openmp", when="+openmp") - depends_on("chai~openmp", when="~openmp") + with when("+cuda~chai"): + depends_on("umpire@develop", when="@develop") + depends_on("umpire+cuda") + for sm_ in CudaPackage.cuda_arch_values: + depends_on("umpire cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - depends_on("chai+cuda", when="+cuda") - depends_on("chai~cuda", when="~cuda") - for sm_ in CudaPackage.cuda_arch_values: - depends_on("chai cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) + with when("+rocm~chai"): + depends_on("umpire@develop", when="@develop") + depends_on("umpire+rocm") + for arch in ROCmPackage.amdgpu_targets: + depends_on("umpire amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) - depends_on("chai+rocm", when="+rocm") - depends_on("chai~rocm", when="~rocm") - for arch in ROCmPackage.amdgpu_targets: - depends_on("chai amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) + depends_on("raja+openmp", when="+openmp") + depends_on("raja~openmp", when="~openmp") - depends_on("umpire+openmp", when="+openmp") - depends_on("umpire~openmp", when="~openmp") - - depends_on("umpire+cuda", when="+cuda") - depends_on("umpire~cuda", when="~cuda") + depends_on("raja+cuda", when="+cuda") + depends_on("raja~cuda", when="~cuda") for sm_ in CudaPackage.cuda_arch_values: - depends_on("umpire cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) + depends_on("raja cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - depends_on("umpire+rocm", when="+rocm") - depends_on("umpire~rocm", when="~rocm") + depends_on("raja+rocm", when="+rocm") + depends_on("raja~rocm", when="~rocm") for arch in ROCmPackage.amdgpu_targets: - depends_on("umpire amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) + depends_on("raja amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) def setup_build_environment(self, env): spec = self.spec @@ -129,52 +153,47 @@ def cmake_args(self): args = [] blt_cxx_std = "20" if spec.satisfies("@develop") else "17" - if "+rocm" in spec or "+cuda" in spec: - enable_chai = "ON" - enable_chai_single_memory = "ON" if "+single_memory" in spec else "OFF" - else: - enable_chai = "OFF" - enable_chai_single_memory = "OFF" - args.extend( [ - "-DCAMP_DIR=%s" % self.spec["camp"].prefix, + "-Dcamp_DIR=%s" % self.spec["camp"].prefix, "-DBLT_SOURCE_DIR=%s" % self.spec["blt"].prefix, - "-Dumpire_DIR=%s" % self.spec["umpire"].prefix, "-DRAJA_DIR=%s" % self.spec["raja"].prefix, - "-Dchai_DIR=%s" % self.spec["chai"].prefix, - "-DENABLE_CHAI=%s" % enable_chai, - "-DENABLE_CHAI_SINGLE_MEMORY=%s" % enable_chai_single_memory, "-DBLT_CXX_STD=%s" % f"c++{blt_cxx_std}", "-DMPI_CXX_LINK_FLAGS='%s'" % self.spec['mpi'].libs.ld_flags, ] ) - if "+openmp" in spec: - args.append("-DENABLE_OPENMP=ON") + args.append(self.define_from_variant("ENABLE_CHAI", "chai")) + if "+chai" in spec: + args.extend( + [ + "-Dchai_DIR=%s" % self.spec["chai"].prefix, + "-Dumpire_DIR=%s" % self.spec["umpire"].prefix, + ] + ) - if "+caliper" in spec: - args.append("-DENABLE_CALIPER=ON") + args.append(self.define_from_variant("ENABLE_GPU_AWARE_MPI", "gpu-aware-mpi")) + args.append(self.define_from_variant("ENABLE_OPENMP", "openmp")) + args.append(self.define_from_variant("ENABLE_CALIPER", "caliper")) + args.append(self.define_from_variant("ENABLE_MPI", "mpi")) if "+mpi" in spec: - args.append("-DENABLE_MPI=ON") args.append(self.define("CMAKE_CXX_COMPILER", self.spec["mpi"].mpicxx)) + args.append(self.define_from_variant("ENABLE_HIP", "rocm")) if "+rocm" in spec: # Set up the hip macros needed by the build - args.append("-DENABLE_HIP=ON") + args.append("-Dumpire_DIR=%s" % self.spec["umpire"].prefix) args.append("-DHIP_ROOT_DIR={0}".format(spec["hip"].prefix)) rocm_archs = spec.variants["amdgpu_target"].value if "none" not in rocm_archs: arch_str = ",".join(rocm_archs) args.append("-DHIP_HIPCC_FLAGS=--amdgpu-target={0}".format(arch_str)) args.append("-DCMAKE_HIP_ARCHITECTURES={0}".format(arch_str)) - else: - # Ensure build with hip is disabled - args.append("-DENABLE_HIP=OFF") + args.append(self.define_from_variant("ENABLE_CUDA", "cuda")) if "+cuda" in spec: - args.append("-DENABLE_CUDA=ON") + args.append("-Dumpire_DIR=%s" % self.spec["umpire"].prefix) args.append(self.define("CMAKE_CUDA_HOST_COMPILER", self.spec["mpi"].mpicxx)) if not spec.satisfies("cuda_arch=none"): cuda_arch = spec.variants["cuda_arch"].value @@ -184,8 +203,6 @@ def cmake_args(self): "-DCMAKE_CUDA_FLAGS=--extended-lambda -I=%s" % (self.spec["mpi"].prefix.include) ) - else: - args.append("-DENABLE_CUDA=OFF") return args From 6ce19c3dd0d8dead511065c0632d398cb2e71ab0 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sun, 2 Aug 2026 15:14:47 -0700 Subject: [PATCH 05/22] Fix chai, raja, umpire and camp versions --- experiments/kripke/experiment.py | 26 ++-------- .../benchpark/packages/kripke/package.py | 48 +++++++++++++++---- 2 files changed, 42 insertions(+), 32 deletions(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index a6219f7f9..8945e05a9 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -42,13 +42,6 @@ class Kripke( description="Enable GPU-aware MPI", ) - variant( - "problem_size", - default="large", - values=("large", "medium", "small"), - description="Problem size", - ) - variant( "chai", default=True, @@ -191,21 +184,10 @@ def compute_applications_section(self): "throughput_n": None, "throughput_p": None, } - if self.spec.satisfies("problem_size=large"): - problem_spec["nzx"] = 220 - problem_spec["nzy"] = 220 - problem_spec["nzz"] = 110 - problem_spec["pool"] = 105 - if self.spec.satisfies("problem_size=medium"): - problem_spec["nzx"] = 200 - problem_spec["nzy"] = 200 - problem_spec["nzz"] = 100 - problem_spec["pool"] = 77 - if self.spec.satisfies("problem_size=small"): - problem_spec["nzx"] = 188 - problem_spec["nzy"] = 188 - problem_spec["nzz"] = 94 - problem_spec["pool"] = 70 + problem_spec["nzx"] = 220 + problem_spec["nzy"] = 220 + problem_spec["nzz"] = 110 + problem_spec["pool"] = 105 else: problem_spec = { "nzx": 80, diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index f65309246..077299a0b 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -15,7 +15,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): """ homepage = "https://computing.llnl.gov/projects/co-design/kripke" - git = "https://github.com/rfhaque/Kripke.git" + git = "https://github.com/LLNL/Kripke.git" tags = ["proxy-app"] @@ -23,7 +23,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") - version("develop", branch="kripke_chai_umpire", submodules=False) + version("develop", branch="llnl/bugfix/chen59/devicedirectsegfault", submodules=False) version("2025.12.0", submodules=False, commit="01f6f85c02ceffcd2bc06e42cee997867dd142c5") version("2025.07.0", submodules=False, commit="8cf38433a6a11e0dcd17864e649b2d045159ee9c") version( @@ -60,18 +60,43 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): variant("caliper", default=False, description="Build with Caliper support enabled.") variant("gpu-aware-mpi", default=False, description="Enable GPU-aware MPI") + variant( + "cxxstd", + default="17", + values=("11", "14", "17", "20"), + description="C++ standard to build with", + ) + depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") - depends_on("camp@main", when="@develop") - depends_on("raja@develop cxxstd=20", when="@develop") + # camp_version = "main" + camp_version = "2025.12.0" + # chai_version = "develop" + chai_version = "2025.12.0" + # raja_version = "develop" + raja_version = "2025.12.0" + # umpire_version = "develop" + umpire_version = "2025.12.0" + + with when("cxxstd=11"): + cxxstd = "11" + with when("cxxstd=14"): + cxxstd = "14" + with when("cxxstd=17"): + cxxstd = "17" + with when("cxxstd=20"): + cxxstd = "20" + + depends_on(f"camp@{camp_version}", when="@develop") + depends_on(f"raja@{raja_version}~examples~exercises cxxstd={cxxstd}", when="@develop") depends_on("mpi", when="+mpi") with when("+chai"): depends_on("chai+mpi", when="+mpi") - depends_on("chai@develop+raja cxxstd=20", when="@develop") + depends_on(f"chai@{chai_version}+raja cxxstd={cxxstd}", when="@develop") depends_on("chai@2025.12.0+raja", when="@2025.12.0") depends_on("chai@2024.07.0+raja", when="@1.2.7.0:2025.07.0") depends_on("fmt@9.1", when=f"^chai@2024.07.0") @@ -89,7 +114,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): for arch in ROCmPackage.amdgpu_targets: depends_on("chai amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) - depends_on("umpire@develop", when="@develop") + depends_on(f"umpire@{umpire_version}", when="@develop") depends_on("umpire+openmp", when="+openmp") depends_on("umpire~openmp", when="~openmp") @@ -112,13 +137,13 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): depends_on("blt@0.6.2:", type="build", when=f"@1.2.7:") with when("+cuda~chai"): - depends_on("umpire@develop", when="@develop") + depends_on(f"umpire@{umpire_version}", when="@develop") depends_on("umpire+cuda") for sm_ in CudaPackage.cuda_arch_values: depends_on("umpire cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) with when("+rocm~chai"): - depends_on("umpire@develop", when="@develop") + depends_on(f"umpire@{umpire_version}", when="@develop") depends_on("umpire+rocm") for arch in ROCmPackage.amdgpu_targets: depends_on("umpire amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) @@ -136,6 +161,10 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): for arch in ROCmPackage.amdgpu_targets: depends_on("raja amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) + @property + def cxx_std(self): + return self.spec.variants.get("cxxstd").value + def setup_build_environment(self, env): spec = self.spec if "+cuda" in spec: @@ -151,14 +180,13 @@ def setup_run_environment(self, env): def cmake_args(self): spec = self.spec args = [] - blt_cxx_std = "20" if spec.satisfies("@develop") else "17" args.extend( [ "-Dcamp_DIR=%s" % self.spec["camp"].prefix, "-DBLT_SOURCE_DIR=%s" % self.spec["blt"].prefix, "-DRAJA_DIR=%s" % self.spec["raja"].prefix, - "-DBLT_CXX_STD=%s" % f"c++{blt_cxx_std}", + "-DBLT_CXX_STD=%s" % f"c++{self.cxx_std}", "-DMPI_CXX_LINK_FLAGS='%s'" % self.spec['mpi'].libs.ld_flags, ] ) From 1457cf036b77572855c57667238878977fa4026a Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sun, 2 Aug 2026 15:26:54 -0700 Subject: [PATCH 06/22] Add CXX std variant --- experiments/kripke/experiment.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 8945e05a9..059e6356e 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -49,6 +49,13 @@ class Kripke( description="Enable CHAI", ) + variant( + "cxxstd", + default="17", + values=("11", "14", "17", "20"), + description="C++ standard to build with", + ) + maintainers("pearce8") def compute_applications_section(self): @@ -302,6 +309,7 @@ def compute_package_section(self): if self.spec.variants["chai"][0] else "~chai" ) + cxxstd = self.spec.variants["cxxstd"][0] self.add_package_spec( - self.name, [f"kripke{self.determine_version()} {gam} {chai} +mpi"] + self.name, [f"kripke{self.determine_version()} {gam} {chai} {cxxstd} +mpi"] ) From 3b4639e3db74a835daf58d0a4372d07502c261d3 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sun, 2 Aug 2026 15:27:54 -0700 Subject: [PATCH 07/22] Add CXX std variant --- experiments/kripke/experiment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 059e6356e..ab605b20c 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -311,5 +311,5 @@ def compute_package_section(self): ) cxxstd = self.spec.variants["cxxstd"][0] self.add_package_spec( - self.name, [f"kripke{self.determine_version()} {gam} {chai} {cxxstd} +mpi"] + self.name, [f"kripke{self.determine_version()} {gam} {chai} cxxstd={cxxstd} +mpi"] ) From 27b5d2e304322d5494a6116d39d54172535261bb Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sun, 2 Aug 2026 15:32:32 -0700 Subject: [PATCH 08/22] Fixes --- repos/spack_repo/benchpark/packages/kripke/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index 077299a0b..bde8d4b53 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -89,7 +89,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): with when("cxxstd=20"): cxxstd = "20" - depends_on(f"camp@{camp_version}", when="@develop") + depends_on(f"camp@{camp_version}", when="@develop") depends_on(f"raja@{raja_version}~examples~exercises cxxstd={cxxstd}", when="@develop") depends_on("mpi", when="+mpi") From 28379afbbe506b7a805d185d9fd2df9248749a56 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Wed, 5 Aug 2026 12:16:00 -0700 Subject: [PATCH 09/22] Fix package.py --- .../benchpark/packages/chai/package.py | 23 +------------ .../benchpark/packages/kripke/package.py | 33 +++++++++++-------- 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/repos/spack_repo/benchpark/packages/chai/package.py b/repos/spack_repo/benchpark/packages/chai/package.py index 752acad56..efd380e10 100644 --- a/repos/spack_repo/benchpark/packages/chai/package.py +++ b/repos/spack_repo/benchpark/packages/chai/package.py @@ -12,8 +12,6 @@ class Chai(BuiltinChai): - variant("single_memory", default=False, description="Enable single memory space model") - variant( "cxxstd", default="17", @@ -21,29 +19,10 @@ class Chai(BuiltinChai): description="C++ standard to build with", ) - conflicts("+single_memory", when="~rocm") - - version( - "2025.12.0", - tag="v2025.12.0", - commit="26d5646707e1848b0524379b12a7716e4a830a27", - submodules=False, - ) - @property def cxx_std(self): return self.spec.variants.get("cxxstd").value - def initconfig_hardware_entries(self): - spec = self.spec - entries = super().initconfig_hardware_entries() - - if spec.satisfies("+single_memory"): - entries.append(cmake_cache_option("CHAI_THIN_GPU_ALLOCATE", True)) - entries.append(cmake_cache_option("CHAI_DISABLE_RM", True)) - - return entries - def initconfig_package_entries(self): spec = self.spec entries = super().initconfig_package_entries() @@ -51,4 +30,4 @@ def initconfig_package_entries(self): # C++ standard entries.append(cmake_cache_string("BLT_CXX_STD", f"c++{self.cxx_std}")) - return entries \ No newline at end of file + return entries diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index bde8d4b53..b010735b7 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -23,7 +23,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): license("BSD-3-Clause") - version("develop", branch="llnl/bugfix/chen59/devicedirectsegfault", submodules=False) + version("develop", branch="develop", submodules=False) version("2025.12.0", submodules=False, commit="01f6f85c02ceffcd2bc06e42cee997867dd142c5") version("2025.07.0", submodules=False, commit="8cf38433a6a11e0dcd17864e649b2d045159ee9c") version( @@ -80,25 +80,30 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): # umpire_version = "develop" umpire_version = "2025.12.0" - with when("cxxstd=11"): - cxxstd = "11" - with when("cxxstd=14"): - cxxstd = "14" - with when("cxxstd=17"): - cxxstd = "17" - with when("cxxstd=20"): - cxxstd = "20" - depends_on(f"camp@{camp_version}", when="@develop") - depends_on(f"raja@{raja_version}~examples~exercises cxxstd={cxxstd}", when="@develop") + for cxxstd in ("11", "14", "17", "20"): + depends_on( + f"raja@{raja_version}~examples~exercises cxxstd={cxxstd}", + when=f"@develop cxxstd={cxxstd}", + ) depends_on("mpi", when="+mpi") with when("+chai"): depends_on("chai+mpi", when="+mpi") - depends_on(f"chai@{chai_version}+raja cxxstd={cxxstd}", when="@develop") - depends_on("chai@2025.12.0+raja", when="@2025.12.0") - depends_on("chai@2024.07.0+raja", when="@1.2.7.0:2025.07.0") + for cxxstd in ("11", "14", "17", "20"): + depends_on( + f"chai@{chai_version}+raja cxxstd={cxxstd}", + when=f"@develop cxxstd={cxxstd}", + ) + depends_on( + f"chai@2025.12.0+raja cxxstd={cxxstd}", + when=f"@2025.12.0 cxxstd={cxxstd}", + ) + depends_on( + f"chai@2024.07.0+raja cxxstd={cxxstd}", + when=f"@1.2.7.0:2025.07.0 cxxstd={cxxstd}", + ) depends_on("fmt@9.1", when=f"^chai@2024.07.0") depends_on("chai+openmp", when="+openmp") From 09d76b8723531107e95139606fe7cce115557515 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Fri, 7 Aug 2026 11:29:32 -0700 Subject: [PATCH 10/22] Add IPC environment variables and fix lint --- experiments/kripke/experiment.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index ab605b20c..71a5935eb 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -298,18 +298,19 @@ def compute_applications_section(self): else: self.add_experiment_variable("n_ranks", "{n_resources}", True) + if self.spec.satisfies("+gpu-aware-mpi"): + # self.set_environment_variable("MPICH_GPU_IPC_CACHE_MAX_SIZE", 1000) + self.set_environment_variable("MPICH_NOLOCAL", 1) + def compute_package_section(self): gam = ( "+gpu-aware-mpi" if self.spec.variants["gpu-aware-mpi"][0] else "~gpu-aware-mpi" ) - chai = ( - "+chai" - if self.spec.variants["chai"][0] - else "~chai" - ) + chai = "+chai" if self.spec.variants["chai"][0] else "~chai" cxxstd = self.spec.variants["cxxstd"][0] self.add_package_spec( - self.name, [f"kripke{self.determine_version()} {gam} {chai} cxxstd={cxxstd} +mpi"] + self.name, + [f"kripke{self.determine_version()} {gam} {chai} cxxstd={cxxstd} +mpi"], ) From af7ffd394333e72b59033965c162fa51e5be03aa Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sat, 8 Aug 2026 12:04:22 -0700 Subject: [PATCH 11/22] Add MPICH IPC environment variables --- experiments/kripke/experiment.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 71a5935eb..941707a36 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -299,8 +299,8 @@ def compute_applications_section(self): self.add_experiment_variable("n_ranks", "{n_resources}", True) if self.spec.satisfies("+gpu-aware-mpi"): - # self.set_environment_variable("MPICH_GPU_IPC_CACHE_MAX_SIZE", 1000) - self.set_environment_variable("MPICH_NOLOCAL", 1) + self.set_environment_variable("MPICH_GPU_IPC_CACHE_MAX_SIZE", 1000) + # self.set_environment_variable("MPICH_NOLOCAL", 1) def compute_package_section(self): gam = ( From 4ee3a0385142b80adc8390efe58ffa510cbff0c6 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sat, 8 Aug 2026 12:04:43 -0700 Subject: [PATCH 12/22] Add rocm v7.14beta1 --- systems/llnl-elcapitan/system.py | 59 ++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index f43ec4e98..41e43bb25 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -143,6 +143,7 @@ class LlnlElcapitan(System): "7.1.1", "7.2.0", "7.2.1", + "7.14beta1", ), description="ROCm version", ) @@ -220,6 +221,12 @@ def __init__(self, spec): super().__init__(spec) self.programming_models = [ROCmSystem(), OpenMPCPUOnlySystem()] self.rocm_version = Version(self.spec.variants["rocm"][0]) + if self.spec.satisfies("rocm=7.14beta1"): + self.rocm_path_prefix = "/usr/tce/packages/rocbeta/rocm" + self.rocm_version_str = "7.14beta1" + else: + self.rocm_path_prefix = "/opt/rocm" + self.rocm_version_str = f"{self.rocm_version}" self.gtl_flag = self.spec.variants["gtl"][0] self.override_cce_shortpath = None self.rccl_version = None @@ -618,7 +625,7 @@ def rocm_config(self): "externals": [ { "spec": f"hipfft@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -627,7 +634,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocfft@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -636,7 +643,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocprim@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -645,7 +652,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocrand@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -654,7 +661,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocsparse@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -663,7 +670,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocthrust@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -672,7 +679,7 @@ def rocm_config(self): "externals": [ { "spec": f"hip@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -681,7 +688,7 @@ def rocm_config(self): "externals": [ { "spec": f"hsa-rocr-dev@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -690,7 +697,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocprofiler-sdk@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -699,7 +706,7 @@ def rocm_config(self): "externals": [ { "spec": f"comgr@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}/", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", } ], "buildable": False, @@ -708,7 +715,7 @@ def rocm_config(self): "externals": [ { "spec": f"hiprand@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -717,7 +724,7 @@ def rocm_config(self): "externals": [ { "spec": f"hipsparse@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -726,7 +733,7 @@ def rocm_config(self): "externals": [ { "spec": f"hipblas@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}/", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", } ], "buildable": False, @@ -735,7 +742,7 @@ def rocm_config(self): "externals": [ { "spec": f"hipsolver@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}/", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", } ], "buildable": False, @@ -744,7 +751,7 @@ def rocm_config(self): "externals": [ { "spec": f"hsakmt-roct@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}/", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", } ], "buildable": False, @@ -753,7 +760,7 @@ def rocm_config(self): "externals": [ { "spec": f"roctracer-dev-api@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}/", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", } ], "buildable": False, @@ -762,7 +769,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocminfo@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}/", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", } ], "buildable": False, @@ -771,7 +778,7 @@ def rocm_config(self): "externals": [ { "spec": f"llvm@{self.llvm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}/llvm", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/llvm", }, ], "buildable": False, @@ -780,7 +787,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocblas@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -789,7 +796,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocsolver@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -798,7 +805,7 @@ def rocm_config(self): "externals": [ { "spec": f"rccl@{self.rocm_version}", - "prefix": f"/opt/rocm-{self.rocm_version}", + "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", } ], "buildable": False, @@ -809,7 +816,7 @@ def rocm_config(self): def rocm_cce_compiler_cfg(self): cce_rocmcc = self.spec.variants["compiler"][0] in ["cce", "rocmcc"] rpaths = [ - f"/opt/rocm-{self.rocm_version}/lib", + f"{self.rocm_path_prefix}-{self.rocm_version_str}/lib", "/opt/cray/pe/gcc-libs", ] if cce_rocmcc: @@ -837,16 +844,16 @@ def rocm_cce_compiler_cfg(self): ) rocmcc_entry = compiler_def( f"llvm-amdgpu@{self.rocm_version}", - f"/opt/rocm-{self.rocm_version}/llvm", + f"{self.rocm_path_prefix}-{self.rocm_version_str}/llvm", {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, - modules=[f"rocm/{self.rocm_version}"], + modules=[f"rocm/{self.rocm_version_str}"], extra_rpaths=list(rpaths), env={ "set": {"RFE_811452_DISABLE": "1"}, "append_path": {"LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs"}, "prepend_path": { "LD_LIBRARY_PATH": f"{cce_path}/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib", - "LIBRARY_PATH": f"/opt/rocm-{self.rocm_version}/lib", + "LIBRARY_PATH": f"{self.rocm_path_prefix}-{self.rocm_version_str}/lib", }, }, ) @@ -860,7 +867,7 @@ def rocm_cce_compiler_cfg(self): extra_rpaths=list(rpaths), env={ "prepend_path": { - "LD_LIBRARY_PATH": f"{cce_path}/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" + "LD_LIBRARY_PATH": f"{cce_path}{self.rocm_path_prefix}-{self.rocm_version_str}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" } }, ) From f400f4c04de95123f0eff7b0cb350d5e8d008e60 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Thu, 13 Aug 2026 21:10:29 -0700 Subject: [PATCH 13/22] Fix llnl-elcapitan config --- systems/llnl-elcapitan/system.py | 59 ++++++++++++++------------------ 1 file changed, 26 insertions(+), 33 deletions(-) diff --git a/systems/llnl-elcapitan/system.py b/systems/llnl-elcapitan/system.py index 41e43bb25..f43ec4e98 100644 --- a/systems/llnl-elcapitan/system.py +++ b/systems/llnl-elcapitan/system.py @@ -143,7 +143,6 @@ class LlnlElcapitan(System): "7.1.1", "7.2.0", "7.2.1", - "7.14beta1", ), description="ROCm version", ) @@ -221,12 +220,6 @@ def __init__(self, spec): super().__init__(spec) self.programming_models = [ROCmSystem(), OpenMPCPUOnlySystem()] self.rocm_version = Version(self.spec.variants["rocm"][0]) - if self.spec.satisfies("rocm=7.14beta1"): - self.rocm_path_prefix = "/usr/tce/packages/rocbeta/rocm" - self.rocm_version_str = "7.14beta1" - else: - self.rocm_path_prefix = "/opt/rocm" - self.rocm_version_str = f"{self.rocm_version}" self.gtl_flag = self.spec.variants["gtl"][0] self.override_cce_shortpath = None self.rccl_version = None @@ -625,7 +618,7 @@ def rocm_config(self): "externals": [ { "spec": f"hipfft@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -634,7 +627,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocfft@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -643,7 +636,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocprim@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -652,7 +645,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocrand@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -661,7 +654,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocsparse@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -670,7 +663,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocthrust@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -679,7 +672,7 @@ def rocm_config(self): "externals": [ { "spec": f"hip@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -688,7 +681,7 @@ def rocm_config(self): "externals": [ { "spec": f"hsa-rocr-dev@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -697,7 +690,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocprofiler-sdk@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -706,7 +699,7 @@ def rocm_config(self): "externals": [ { "spec": f"comgr@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", + "prefix": f"/opt/rocm-{self.rocm_version}/", } ], "buildable": False, @@ -715,7 +708,7 @@ def rocm_config(self): "externals": [ { "spec": f"hiprand@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -724,7 +717,7 @@ def rocm_config(self): "externals": [ { "spec": f"hipsparse@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -733,7 +726,7 @@ def rocm_config(self): "externals": [ { "spec": f"hipblas@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", + "prefix": f"/opt/rocm-{self.rocm_version}/", } ], "buildable": False, @@ -742,7 +735,7 @@ def rocm_config(self): "externals": [ { "spec": f"hipsolver@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", + "prefix": f"/opt/rocm-{self.rocm_version}/", } ], "buildable": False, @@ -751,7 +744,7 @@ def rocm_config(self): "externals": [ { "spec": f"hsakmt-roct@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", + "prefix": f"/opt/rocm-{self.rocm_version}/", } ], "buildable": False, @@ -760,7 +753,7 @@ def rocm_config(self): "externals": [ { "spec": f"roctracer-dev-api@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", + "prefix": f"/opt/rocm-{self.rocm_version}/", } ], "buildable": False, @@ -769,7 +762,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocminfo@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/", + "prefix": f"/opt/rocm-{self.rocm_version}/", } ], "buildable": False, @@ -778,7 +771,7 @@ def rocm_config(self): "externals": [ { "spec": f"llvm@{self.llvm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}/llvm", + "prefix": f"/opt/rocm-{self.rocm_version}/llvm", }, ], "buildable": False, @@ -787,7 +780,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocblas@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -796,7 +789,7 @@ def rocm_config(self): "externals": [ { "spec": f"rocsolver@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -805,7 +798,7 @@ def rocm_config(self): "externals": [ { "spec": f"rccl@{self.rocm_version}", - "prefix": f"{self.rocm_path_prefix}-{self.rocm_version_str}", + "prefix": f"/opt/rocm-{self.rocm_version}", } ], "buildable": False, @@ -816,7 +809,7 @@ def rocm_config(self): def rocm_cce_compiler_cfg(self): cce_rocmcc = self.spec.variants["compiler"][0] in ["cce", "rocmcc"] rpaths = [ - f"{self.rocm_path_prefix}-{self.rocm_version_str}/lib", + f"/opt/rocm-{self.rocm_version}/lib", "/opt/cray/pe/gcc-libs", ] if cce_rocmcc: @@ -844,16 +837,16 @@ def rocm_cce_compiler_cfg(self): ) rocmcc_entry = compiler_def( f"llvm-amdgpu@{self.rocm_version}", - f"{self.rocm_path_prefix}-{self.rocm_version_str}/llvm", + f"/opt/rocm-{self.rocm_version}/llvm", {"c": "amdclang", "cxx": "amdclang++", "fortran": "amdflang"}, - modules=[f"rocm/{self.rocm_version_str}"], + modules=[f"rocm/{self.rocm_version}"], extra_rpaths=list(rpaths), env={ "set": {"RFE_811452_DISABLE": "1"}, "append_path": {"LD_LIBRARY_PATH": "/opt/cray/pe/gcc-libs"}, "prepend_path": { "LD_LIBRARY_PATH": f"{cce_path}/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib", - "LIBRARY_PATH": f"{self.rocm_path_prefix}-{self.rocm_version_str}/lib", + "LIBRARY_PATH": f"/opt/rocm-{self.rocm_version}/lib", }, }, ) @@ -867,7 +860,7 @@ def rocm_cce_compiler_cfg(self): extra_rpaths=list(rpaths), env={ "prepend_path": { - "LD_LIBRARY_PATH": f"{cce_path}{self.rocm_path_prefix}-{self.rocm_version_str}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" + "LD_LIBRARY_PATH": f"{cce_path}/opt/rocm-{self.rocm_version}/lib:/opt/cray/pe/pmi/{self.pmi_version}/lib:/opt/cray/pe/pals/{self.pals_version}/lib" } }, ) From 403499119823f7ba2344f28cadecadffa30acda4 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Fri, 14 Aug 2026 10:27:53 -0700 Subject: [PATCH 14/22] Build kripke develop with RAJA, CHAI, camp, umpire v2026.7.x --- experiments/kripke/experiment.py | 10 +-- .../benchpark/packages/camp/package.py | 21 ++++++ .../benchpark/packages/chai/package.py | 8 +++ .../benchpark/packages/kripke/package.py | 70 +++++++------------ .../benchpark/packages/raja/package.py | 7 ++ .../benchpark/packages/umpire/package.py | 7 ++ 6 files changed, 71 insertions(+), 52 deletions(-) create mode 100644 repos/spack_repo/benchpark/packages/camp/package.py diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 941707a36..c9df4a8db 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -49,13 +49,6 @@ class Kripke( description="Enable CHAI", ) - variant( - "cxxstd", - default="17", - values=("11", "14", "17", "20"), - description="C++ standard to build with", - ) - maintainers("pearce8") def compute_applications_section(self): @@ -309,8 +302,7 @@ def compute_package_section(self): else "~gpu-aware-mpi" ) chai = "+chai" if self.spec.variants["chai"][0] else "~chai" - cxxstd = self.spec.variants["cxxstd"][0] self.add_package_spec( self.name, - [f"kripke{self.determine_version()} {gam} {chai} cxxstd={cxxstd} +mpi"], + [f"kripke{self.determine_version()} {gam} {chai} +mpi"], ) diff --git a/repos/spack_repo/benchpark/packages/camp/package.py b/repos/spack_repo/benchpark/packages/camp/package.py new file mode 100644 index 000000000..9760ca2d9 --- /dev/null +++ b/repos/spack_repo/benchpark/packages/camp/package.py @@ -0,0 +1,21 @@ +# Copyright 2023 Lawrence Livermore National Security, LLC and other +# Benchpark Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: Apache-2.0 + +from spack.package import * +from spack_repo.builtin.build_systems.cached_cmake import ( + cmake_cache_option, + cmake_cache_string, +) +from spack_repo.builtin.packages.camp.package import Camp as BuiltinCamp + + +class Camp(BuiltinCamp): + + version( + "2026.07.1", + tag="v2026.07.1", + commit="390c5e05159a5a88545a7c5c9f1fdbbb3f64f120", + submodules=False, + ) diff --git a/repos/spack_repo/benchpark/packages/chai/package.py b/repos/spack_repo/benchpark/packages/chai/package.py index efd380e10..249acafc6 100644 --- a/repos/spack_repo/benchpark/packages/chai/package.py +++ b/repos/spack_repo/benchpark/packages/chai/package.py @@ -12,6 +12,14 @@ class Chai(BuiltinChai): + + version( + "2026.07.0", + tag="v2026.07.0", + commit="7ed19adb246d6df796434750d2994b84cd8558e7", + submodules=False, + ) + variant( "cxxstd", default="17", diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index b010735b7..0ef49f919 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -60,50 +60,26 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): variant("caliper", default=False, description="Build with Caliper support enabled.") variant("gpu-aware-mpi", default=False, description="Enable GPU-aware MPI") - variant( - "cxxstd", - default="17", - values=("11", "14", "17", "20"), - description="C++ standard to build with", - ) - depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") - # camp_version = "main" - camp_version = "2025.12.0" - # chai_version = "develop" - chai_version = "2025.12.0" - # raja_version = "develop" - raja_version = "2025.12.0" - # umpire_version = "develop" - umpire_version = "2025.12.0" - - depends_on(f"camp@{camp_version}", when="@develop") - for cxxstd in ("11", "14", "17", "20"): - depends_on( - f"raja@{raja_version}~examples~exercises cxxstd={cxxstd}", - when=f"@develop cxxstd={cxxstd}", - ) + depends_on("camp@2026.07.1", when="@develop") + depends_on("camp@2025.12.0", when="@2025.12.0") + depends_on("camp@2024.07.0", when="@1.2.7.0:2025.07.0") + + depends_on("raja@2026.07.0 ~examples~exercises cxxstd=20", when="@develop") + depends_on("raja@2025.12.0 ~examples~exercises cxxstd=17", when="@2025.12.0") + depends_on("raja@2024.07.0 ~examples~exercises cxxstd=14", when="@1.2.7.0:2025.07.0") depends_on("mpi", when="+mpi") with when("+chai"): depends_on("chai+mpi", when="+mpi") - for cxxstd in ("11", "14", "17", "20"): - depends_on( - f"chai@{chai_version}+raja cxxstd={cxxstd}", - when=f"@develop cxxstd={cxxstd}", - ) - depends_on( - f"chai@2025.12.0+raja cxxstd={cxxstd}", - when=f"@2025.12.0 cxxstd={cxxstd}", - ) - depends_on( - f"chai@2024.07.0+raja cxxstd={cxxstd}", - when=f"@1.2.7.0:2025.07.0 cxxstd={cxxstd}", - ) + depends_on("chai@2026.07.0 +raja cxxstd=20", when="@develop") + depends_on("chai@2025.12.0 +raja cxxstd=17", when="@2025.12.0") + depends_on("chai@2024.07.0 +raja cxxstd=14", when="@1.2.7.0:2025.07.0") + depends_on("fmt@9.1", when=f"^chai@2024.07.0") depends_on("chai+openmp", when="+openmp") @@ -119,7 +95,9 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): for arch in ROCmPackage.amdgpu_targets: depends_on("chai amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) - depends_on(f"umpire@{umpire_version}", when="@develop") + depends_on("umpire@2026.07.1", when="@develop") + depends_on("umpire@2025.12.0", when="@2025.12.0") + depends_on("umpire@2024.07.0", when="@1.2.7.0:2025.07.0") depends_on("umpire+openmp", when="+openmp") depends_on("umpire~openmp", when="~openmp") @@ -142,13 +120,17 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): depends_on("blt@0.6.2:", type="build", when=f"@1.2.7:") with when("+cuda~chai"): - depends_on(f"umpire@{umpire_version}", when="@develop") + depends_on("umpire@2026.07.1", when="@develop") + depends_on("umpire@2025.12.0", when="@2025.12.0") + depends_on("umpire@2024.07.0", when="@1.2.7.0:2025.07.0") depends_on("umpire+cuda") for sm_ in CudaPackage.cuda_arch_values: depends_on("umpire cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) with when("+rocm~chai"): - depends_on(f"umpire@{umpire_version}", when="@develop") + depends_on("umpire@2026.07.1", when="@develop") + depends_on("umpire@2025.12.0", when="@2025.12.0") + depends_on("umpire@2024.07.0", when="@1.2.7.0:2025.07.0") depends_on("umpire+rocm") for arch in ROCmPackage.amdgpu_targets: depends_on("umpire amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) @@ -166,10 +148,6 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): for arch in ROCmPackage.amdgpu_targets: depends_on("raja amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) - @property - def cxx_std(self): - return self.spec.variants.get("cxxstd").value - def setup_build_environment(self, env): spec = self.spec if "+cuda" in spec: @@ -185,13 +163,19 @@ def setup_run_environment(self, env): def cmake_args(self): spec = self.spec args = [] + if spec.satisfies("@develop"): + blt_cxx_std = "c++20" + elif spec.satisfies("@2025.12.0"): + blt_cxx_std = "c++17" + elif spec.satisfies("@:2025.7.0"): + blt_cxx_std = "c++14" args.extend( [ "-Dcamp_DIR=%s" % self.spec["camp"].prefix, "-DBLT_SOURCE_DIR=%s" % self.spec["blt"].prefix, "-DRAJA_DIR=%s" % self.spec["raja"].prefix, - "-DBLT_CXX_STD=%s" % f"c++{self.cxx_std}", + "-DBLT_CXX_STD=%s" % blt_cxx_std, "-DMPI_CXX_LINK_FLAGS='%s'" % self.spec['mpi'].libs.ld_flags, ] ) diff --git a/repos/spack_repo/benchpark/packages/raja/package.py b/repos/spack_repo/benchpark/packages/raja/package.py index b504e8f21..d44daa74a 100644 --- a/repos/spack_repo/benchpark/packages/raja/package.py +++ b/repos/spack_repo/benchpark/packages/raja/package.py @@ -9,6 +9,13 @@ class Raja(BuiltinRaja): + version( + "2026.07.0", + tag="v2026.07.0", + commit="80d218eba514a6d51bfd99ab6ebd6fbf83a74ca9", + submodules=False, + ) + version( "2025.12.2", tag="v2025.12.2", diff --git a/repos/spack_repo/benchpark/packages/umpire/package.py b/repos/spack_repo/benchpark/packages/umpire/package.py index 1b0562d7e..c902846a3 100644 --- a/repos/spack_repo/benchpark/packages/umpire/package.py +++ b/repos/spack_repo/benchpark/packages/umpire/package.py @@ -9,6 +9,13 @@ class Umpire(BuiltinUmpire): + version( + "2026.07.1", + tag="v2026.07.1", + commit="5639f6c1fd4ca1fed7f0f1f48dcbbfbd00899484", + submodules=False, + ) + version( "2025.12.0", tag="v2025.12.0", From cc97fb4a6ee2122b4fcc0095284333aa3c7efae9 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Fri, 25 Sep 2026 01:07:09 -0700 Subject: [PATCH 15/22] Changes --- .../benchpark/packages/camp/package.py | 21 ---------- .../benchpark/packages/chai/package.py | 41 ------------------- .../benchpark/packages/raja/package.py | 36 ---------------- .../benchpark/packages/umpire/package.py | 26 ------------ systems/common/spack_includes.yaml | 5 +-- 5 files changed, 1 insertion(+), 128 deletions(-) delete mode 100644 repos/spack_repo/benchpark/packages/camp/package.py delete mode 100644 repos/spack_repo/benchpark/packages/chai/package.py delete mode 100644 repos/spack_repo/benchpark/packages/raja/package.py delete mode 100644 repos/spack_repo/benchpark/packages/umpire/package.py diff --git a/repos/spack_repo/benchpark/packages/camp/package.py b/repos/spack_repo/benchpark/packages/camp/package.py deleted file mode 100644 index 9760ca2d9..000000000 --- a/repos/spack_repo/benchpark/packages/camp/package.py +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2023 Lawrence Livermore National Security, LLC and other -# Benchpark Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: Apache-2.0 - -from spack.package import * -from spack_repo.builtin.build_systems.cached_cmake import ( - cmake_cache_option, - cmake_cache_string, -) -from spack_repo.builtin.packages.camp.package import Camp as BuiltinCamp - - -class Camp(BuiltinCamp): - - version( - "2026.07.1", - tag="v2026.07.1", - commit="390c5e05159a5a88545a7c5c9f1fdbbb3f64f120", - submodules=False, - ) diff --git a/repos/spack_repo/benchpark/packages/chai/package.py b/repos/spack_repo/benchpark/packages/chai/package.py deleted file mode 100644 index 249acafc6..000000000 --- a/repos/spack_repo/benchpark/packages/chai/package.py +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 2023 Lawrence Livermore National Security, LLC and other -# Benchpark Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: Apache-2.0 - -from spack.package import * -from spack_repo.builtin.build_systems.cached_cmake import ( - cmake_cache_option, - cmake_cache_string, -) -from spack_repo.builtin.packages.chai.package import Chai as BuiltinChai - - -class Chai(BuiltinChai): - - version( - "2026.07.0", - tag="v2026.07.0", - commit="7ed19adb246d6df796434750d2994b84cd8558e7", - submodules=False, - ) - - variant( - "cxxstd", - default="17", - values=("11", "14", "17", "20"), - description="C++ standard to build with", - ) - - @property - def cxx_std(self): - return self.spec.variants.get("cxxstd").value - - def initconfig_package_entries(self): - spec = self.spec - entries = super().initconfig_package_entries() - - # C++ standard - entries.append(cmake_cache_string("BLT_CXX_STD", f"c++{self.cxx_std}")) - - return entries diff --git a/repos/spack_repo/benchpark/packages/raja/package.py b/repos/spack_repo/benchpark/packages/raja/package.py deleted file mode 100644 index d44daa74a..000000000 --- a/repos/spack_repo/benchpark/packages/raja/package.py +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 2023 Lawrence Livermore National Security, LLC and other -# Benchpark Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: Apache-2.0 - -from spack.package import * -from spack_repo.builtin.packages.raja.package import Raja as BuiltinRaja - - -class Raja(BuiltinRaja): - - version( - "2026.07.0", - tag="v2026.07.0", - commit="80d218eba514a6d51bfd99ab6ebd6fbf83a74ca9", - submodules=False, - ) - - version( - "2025.12.2", - tag="v2025.12.2", - commit="eca7c5015a5cf8bf7cc8ad1829fd36d3276ab274", - submodules=False, - ) - version( - "2025.12.1", - tag="v2025.12.1", - commit="3b8b59a1e9be2e1066c0d77372b3bf5956e6d6e2", - submodules=False, - ) - version( - "2025.12.0", - tag="v2025.12.0", - commit="e827035c630e71a9358e2f21c2f3cf6fd5fb6605", - submodules=False, - ) diff --git a/repos/spack_repo/benchpark/packages/umpire/package.py b/repos/spack_repo/benchpark/packages/umpire/package.py deleted file mode 100644 index c902846a3..000000000 --- a/repos/spack_repo/benchpark/packages/umpire/package.py +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2023 Lawrence Livermore National Security, LLC and other -# Benchpark Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: Apache-2.0 - -from spack.package import * -from spack_repo.builtin.packages.umpire.package import Umpire as BuiltinUmpire - - -class Umpire(BuiltinUmpire): - - version( - "2026.07.1", - tag="v2026.07.1", - commit="5639f6c1fd4ca1fed7f0f1f48dcbbfbd00899484", - submodules=False, - ) - - version( - "2025.12.0", - tag="v2025.12.0", - commit="0372fbd6e1f17d7e6dd72693f8b857f3ec7559e9", - submodules=False, - ) - - depends_on("fmt@9.1: cxxstd=17", when="@2024.02.0: %oneapi") diff --git a/systems/common/spack_includes.yaml b/systems/common/spack_includes.yaml index 7a034fb2c..d3588e678 100644 --- a/systems/common/spack_includes.yaml +++ b/systems/common/spack_includes.yaml @@ -2,7 +2,4 @@ # Benchpark Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: Apache-2.0 -packages: - blt: - require: - - one_of: ['%gcc', '%clang'] +packages: {} From 28ca3c8d8b00c2c630d4a2e83791c8c489755c40 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sun, 27 Sep 2026 19:04:28 -0700 Subject: [PATCH 16/22] Changes --- repos/spack_repo/benchpark/packages/kripke/package.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index 0ef49f919..d1dc7a83b 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -15,15 +15,15 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): """ homepage = "https://computing.llnl.gov/projects/co-design/kripke" - git = "https://github.com/LLNL/Kripke.git" + git = "https://github.com/rfhaque/Kripke.git" tags = ["proxy-app"] - maintainers("vsrana01") + maintainers("chen59") license("BSD-3-Clause") - version("develop", branch="develop", submodules=False) + version("develop", branch="kripke_chai_umpire", submodules=False) version("2025.12.0", submodules=False, commit="01f6f85c02ceffcd2bc06e42cee997867dd142c5") version("2025.07.0", submodules=False, commit="8cf38433a6a11e0dcd17864e649b2d045159ee9c") version( @@ -56,6 +56,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): variant("mpi", default=True, description="Build with MPI.") variant("chai", default=True, description="Build with CHAI/Umpire.") + variant("direct-device-plane", default=True, description="Use direct device allocator in Umpire for plane fields") variant("openmp", default=False, description="Build with OpenMP enabled.") variant("caliper", default=False, description="Build with Caliper support enabled.") variant("gpu-aware-mpi", default=False, description="Enable GPU-aware MPI") From cc46409e6a161b22b7389b1fc5315167738fcaea Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sun, 27 Sep 2026 19:13:05 -0700 Subject: [PATCH 17/22] Add direct device plane variant --- experiments/kripke/experiment.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index c9df4a8db..2dd689a3f 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -49,6 +49,13 @@ class Kripke( description="Enable CHAI", ) + variant( + "direct-device-plane", + default=False, + values=(True, False), + description="Use direct device allocator in Umpire for plane fields", + ) + maintainers("pearce8") def compute_applications_section(self): @@ -302,7 +309,8 @@ def compute_package_section(self): else "~gpu-aware-mpi" ) chai = "+chai" if self.spec.variants["chai"][0] else "~chai" + direct_device_plane = "+direct-device-plane" if self.spec.variants["direct-device-plane"][0] else "~direct-device-plane" self.add_package_spec( self.name, - [f"kripke{self.determine_version()} {gam} {chai} +mpi"], + [f"kripke{self.determine_version()} {gam} {direct_device_plane} +mpi"], ) From 86bc1ba75bf1803726cce3eb82afe532c7dc4625 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Tue, 29 Sep 2026 02:24:37 -0700 Subject: [PATCH 18/22] Add direct plane storage variant --- experiments/kripke/experiment.py | 2 +- repos/spack_repo/benchpark/packages/kripke/package.py | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 2dd689a3f..8e5479534 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -312,5 +312,5 @@ def compute_package_section(self): direct_device_plane = "+direct-device-plane" if self.spec.variants["direct-device-plane"][0] else "~direct-device-plane" self.add_package_spec( self.name, - [f"kripke{self.determine_version()} {gam} {direct_device_plane} +mpi"], + [f"kripke{self.determine_version()} {gam} {chai} {direct_device_plane} +mpi"], ) diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index d1dc7a83b..905b55ced 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -56,7 +56,7 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): variant("mpi", default=True, description="Build with MPI.") variant("chai", default=True, description="Build with CHAI/Umpire.") - variant("direct-device-plane", default=True, description="Use direct device allocator in Umpire for plane fields") + variant("direct-device-plane", default=False, description="Use direct device allocator in Umpire for plane fields") variant("openmp", default=False, description="Build with OpenMP enabled.") variant("caliper", default=False, description="Build with Caliper support enabled.") variant("gpu-aware-mpi", default=False, description="Enable GPU-aware MPI") @@ -186,11 +186,13 @@ def cmake_args(self): args.extend( [ "-Dchai_DIR=%s" % self.spec["chai"].prefix, - "-Dumpire_DIR=%s" % self.spec["umpire"].prefix, + "-Dumpire_DIR=%s" % self.spec["umpire"].prefix + "/lib64/cmake/umpire", ] ) args.append(self.define_from_variant("ENABLE_GPU_AWARE_MPI", "gpu-aware-mpi")) + if "+gpu-aware-mpi" in spec: + args.append(self.define_from_variant("ENABLE_DIRECT_UMPIRE_PLANE_STORAGE", "direct-device-plane")) args.append(self.define_from_variant("ENABLE_OPENMP", "openmp")) args.append(self.define_from_variant("ENABLE_CALIPER", "caliper")) @@ -201,7 +203,7 @@ def cmake_args(self): args.append(self.define_from_variant("ENABLE_HIP", "rocm")) if "+rocm" in spec: # Set up the hip macros needed by the build - args.append("-Dumpire_DIR=%s" % self.spec["umpire"].prefix) + args.append("-Dumpire_DIR=%s" % self.spec["umpire"].prefix + "/lib64/cmake/umpire") args.append("-DHIP_ROOT_DIR={0}".format(spec["hip"].prefix)) rocm_archs = spec.variants["amdgpu_target"].value if "none" not in rocm_archs: @@ -211,7 +213,7 @@ def cmake_args(self): args.append(self.define_from_variant("ENABLE_CUDA", "cuda")) if "+cuda" in spec: - args.append("-Dumpire_DIR=%s" % self.spec["umpire"].prefix) + args.append("-Dumpire_DIR=%s" % self.spec["umpire"].prefix + "/lib64/cmake/umpire") args.append(self.define("CMAKE_CUDA_HOST_COMPILER", self.spec["mpi"].mpicxx)) if not spec.satisfies("cuda_arch=none"): cuda_arch = spec.variants["cuda_arch"].value From d5298d3e53591646681f6d2ec64c126b94654f3b Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Tue, 29 Sep 2026 02:26:20 -0700 Subject: [PATCH 19/22] lint --- experiments/kripke/experiment.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 8e5479534..30ed28360 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -309,7 +309,11 @@ def compute_package_section(self): else "~gpu-aware-mpi" ) chai = "+chai" if self.spec.variants["chai"][0] else "~chai" - direct_device_plane = "+direct-device-plane" if self.spec.variants["direct-device-plane"][0] else "~direct-device-plane" + direct_device_plane = ( + "+direct-device-plane" + if self.spec.variants["direct-device-plane"][0] + else "~direct-device-plane" + ) self.add_package_spec( self.name, [f"kripke{self.determine_version()} {gam} {chai} {direct_device_plane} +mpi"], From 5da89c6e8361e97f45bdbb2f42390ff8fd55c4f4 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Tue, 29 Sep 2026 02:28:16 -0700 Subject: [PATCH 20/22] lint --- experiments/kripke/experiment.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 30ed28360..5251645cb 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -316,5 +316,7 @@ def compute_package_section(self): ) self.add_package_spec( self.name, - [f"kripke{self.determine_version()} {gam} {chai} {direct_device_plane} +mpi"], + [ + f"kripke{self.determine_version()} {gam} {chai} {direct_device_plane} +mpi" + ], ) From a86b34e03350d044eebb31fc72ba9f18d736c4e4 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Wed, 30 Sep 2026 12:48:39 -0700 Subject: [PATCH 21/22] Upstreamed spack package --- experiments/kripke/experiment.py | 4 +- .../001-remove-googletest-from-cmake.patch | 24 +++ .../benchpark/packages/kripke/package.py | 167 +++++++++++------- 3 files changed, 126 insertions(+), 69 deletions(-) create mode 100644 repos/spack_repo/benchpark/packages/kripke/001-remove-googletest-from-cmake.patch diff --git a/experiments/kripke/experiment.py b/experiments/kripke/experiment.py index 5251645cb..771b291e5 100644 --- a/experiments/kripke/experiment.py +++ b/experiments/kripke/experiment.py @@ -30,8 +30,8 @@ class Kripke( variant( "version", - default="2025.12.0", - values=("develop", "latest", "2025.12.0", "2025.07.0", "1.2.7.0"), + default="2026.09.0", + values=("develop", "latest", "2026.09.0", "2025.12.0", "2025.07.0", "1.2.7.0"), description="app version", ) diff --git a/repos/spack_repo/benchpark/packages/kripke/001-remove-googletest-from-cmake.patch b/repos/spack_repo/benchpark/packages/kripke/001-remove-googletest-from-cmake.patch new file mode 100644 index 000000000..d257ec5f6 --- /dev/null +++ b/repos/spack_repo/benchpark/packages/kripke/001-remove-googletest-from-cmake.patch @@ -0,0 +1,24 @@ +m aa630efbd686c8581bb893b512dbf1613e1e574d Mon Sep 17 00:00:00 2001 +From: Afzal Patel +Date: Thu, 20 Jun 2024 18:40:02 +0000 +Subject: [PATCH] Comment out googletest folder + +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2f9bff0..3059e26 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -64,7 +64,7 @@ endif() + # + # Add googletest (needed by RAJA, etc) + # +-add_subdirectory(tpl/googletest) ++# add_subdirectory(tpl/googletest) + + + # +-- +2.31.1 diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index 905b55ced..10ebc179e 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -1,13 +1,13 @@ -# Copyright 2023 Lawrence Livermore National Security, LLC and other -# Benchpark Project Developers. See the top-level COPYRIGHT file for details. +# Copyright Spack Project Developers. See COPYRIGHT file for details. # -# SPDX-License-Identifier: Apache-2.0 +# SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack.package import * 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 * + class Kripke(CMakePackage, CudaPackage, ROCmPackage): """Kripke is a simple, scalable, 3D Sn deterministic particle @@ -19,16 +19,26 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): tags = ["proxy-app"] - maintainers("chen59") + maintainers("rchen20") license("BSD-3-Clause") version("develop", branch="kripke_chai_umpire", submodules=False) + version("2026.09.0", branch="kripke_chai_umpire", submodules=False) version("2025.12.0", submodules=False, commit="01f6f85c02ceffcd2bc06e42cee997867dd142c5") version("2025.07.0", submodules=False, commit="8cf38433a6a11e0dcd17864e649b2d045159ee9c") version( "1.2.7.0", submodules=False, commit="db920c1f5e1dcbb9e949d120e7d86efcdb777635" ) + version( + "1.2.7", submodules=True, tag="v1.2.7", commit="ddcac43cdad999f0346eb682065ef0af1847029d" + ) + version( + "1.2.6", submodules=True, tag="v1.2.6", commit="55b39f34b68c68b2d828a33a75568abd66e1019f" + ) + version( + "1.2.5", submodules=True, tag="v1.2.5", commit="20e9ea975f1bf567829323a18927b69bed3f4ebd" + ) version( "1.2.4", submodules=False, tag="v1.2.4", commit="d85c6bc462f17a2382b11ba363059febc487f771" ) @@ -61,77 +71,82 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): variant("caliper", default=False, description="Build with Caliper support enabled.") variant("gpu-aware-mpi", default=False, description="Enable GPU-aware MPI") - depends_on("c", type="build") - depends_on("cxx", type="build") - depends_on("fortran", type="build") + depends_on("cxx", type="build") # generated + + depends_on("mpi", when="+mpi") + depends_on("blt", type="build", when="@:1.2.7") - depends_on("camp@2026.07.1", when="@develop") + depends_on("camp@2026.07.1:", when="@develop") + depends_on("camp@2026.07.1", when="@2026.09.0") depends_on("camp@2025.12.0", when="@2025.12.0") depends_on("camp@2024.07.0", when="@1.2.7.0:2025.07.0") - depends_on("raja@2026.07.0 ~examples~exercises cxxstd=20", when="@develop") + depends_on("raja@2026.07.0: ~examples~exercises cxxstd=20", when="@develop") + depends_on("raja@2026.07.0 ~examples~exercises cxxstd=20", when="@2026.09.0") depends_on("raja@2025.12.0 ~examples~exercises cxxstd=17", when="@2025.12.0") depends_on("raja@2024.07.0 ~examples~exercises cxxstd=14", when="@1.2.7.0:2025.07.0") + depends_on("raja@:2024.02.1~exercises~examples", when="@:1.2.7") - depends_on("mpi", when="+mpi") with when("+chai"): - depends_on("chai+mpi", when="+mpi") - depends_on("chai@2026.07.0 +raja cxxstd=20", when="@develop") - depends_on("chai@2025.12.0 +raja cxxstd=17", when="@2025.12.0") - depends_on("chai@2024.07.0 +raja cxxstd=14", when="@1.2.7.0:2025.07.0") - - depends_on("fmt@9.1", when=f"^chai@2024.07.0") - - depends_on("chai+openmp", when="+openmp") - depends_on("chai~openmp", when="~openmp") - - depends_on("chai+cuda", when="+cuda") - depends_on("chai~cuda", when="~cuda") - for sm_ in CudaPackage.cuda_arch_values: - depends_on("chai cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - - depends_on("chai+rocm", when="+rocm") - depends_on("chai~rocm", when="~rocm") - for arch in ROCmPackage.amdgpu_targets: - depends_on("chai amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) - - depends_on("umpire@2026.07.1", when="@develop") - depends_on("umpire@2025.12.0", when="@2025.12.0") - depends_on("umpire@2024.07.0", when="@1.2.7.0:2025.07.0") - depends_on("umpire+openmp", when="+openmp") - depends_on("umpire~openmp", when="~openmp") - - depends_on("umpire+cuda", when="+cuda") - depends_on("umpire~cuda", when="~cuda") - for sm_ in CudaPackage.cuda_arch_values: - depends_on("umpire cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) - - depends_on("umpire+rocm", when="+rocm") - depends_on("umpire~rocm", when="~rocm") - for arch in ROCmPackage.amdgpu_targets: - depends_on("umpire amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) - - conflicts("^blt@0.7:", when="^chai@:2024.07.0") + depends_on("chai+mpi", when="+mpi") + + depends_on("chai@2026.07.0: +raja cxxstd=20", when="@develop") + depends_on("chai@2026.07.0 +raja cxxstd=20", when="@2026.09.0") + depends_on("chai@2025.12.0 +raja cxxstd=17", when="@2025.12.0") + depends_on("chai@2024.07.0 +raja cxxstd=14", when="@1.2.7.0:2025.07.0") + depends_on("chai~examples+raja", when="@:1.2.7") + depends_on("chai+openmp", when="+openmp") + depends_on("chai~openmp", when="~openmp") + depends_on("chai+cuda", when="+cuda") + depends_on("chai~cuda", when="~cuda") + depends_on("chai~rocm", when="~rocm") + depends_on("fmt@9.1", when="^chai@2024.07.0") + + depends_on("umpire@2026.07.1: ~examples", when="@develop") + depends_on("umpire@2026.07.1 ~examples", when="@2026.09.0") + depends_on("umpire@2025.12.0 ~examples", when="@2025.12.0") + depends_on("umpire@2024.07.0 ~examples", when="@1.2.7.0:2025.07.0") + depends_on("umpire~examples", when="@:1.2.7") + depends_on("umpire+openmp", when="+openmp") + depends_on("umpire~openmp", when="~openmp") + depends_on("umpire+cuda", when="+cuda") + depends_on("umpire~cuda", when="~cuda") + + with when("+cuda"): + for sm_ in CudaPackage.cuda_arch_values: + depends_on("umpire cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) + depends_on("chai cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) + + depends_on("umpire+rocm", when="+rocm") + depends_on("umpire~rocm", when="~rocm") + with when("+rocm @1.2.5:"): + for arch in ROCmPackage.amdgpu_targets: + depends_on("umpire amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) + depends_on("chai amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) + + conflicts("^blt@0.7:", when="^chai@:2024.07.0") depends_on("caliper", when="+caliper") depends_on("adiak@0.4:", when="+caliper") conflicts("^blt@:0.3.6", when="+rocm") - depends_on("blt@0.6.2:", type="build", when=f"@1.2.7:") + depends_on("blt@0.6.2:", type="build", when="@1.2.7:") with when("+cuda~chai"): - depends_on("umpire@2026.07.1", when="@develop") - depends_on("umpire@2025.12.0", when="@2025.12.0") - depends_on("umpire@2024.07.0", when="@1.2.7.0:2025.07.0") + depends_on("umpire@2026.07.1: ~examples", when="@develop") + depends_on("umpire@2026.07.1 ~examples", when="@2026.09.0") + depends_on("umpire@2025.12.0 ~examples", when="@2025.12.0") + depends_on("umpire@2024.07.0 ~examples", when="@1.2.7.0:2025.07.0") depends_on("umpire+cuda") for sm_ in CudaPackage.cuda_arch_values: depends_on("umpire cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) with when("+rocm~chai"): - depends_on("umpire@2026.07.1", when="@develop") - depends_on("umpire@2025.12.0", when="@2025.12.0") - depends_on("umpire@2024.07.0", when="@1.2.7.0:2025.07.0") + depends_on("umpire@2026.07.1: ~examples", when="@develop") + depends_on("umpire@2026.07.1 ~examples", when="@2026.09.0") + depends_on("umpire@2025.12.0 ~examples", when="@2025.12.0") + depends_on("umpire@2024.07.0 ~examples", when="@1.2.7.0:2025.07.0") depends_on("umpire+rocm") for arch in ROCmPackage.amdgpu_targets: depends_on("umpire amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) @@ -141,18 +156,27 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): depends_on("raja+cuda", when="+cuda") depends_on("raja~cuda", when="~cuda") - for sm_ in CudaPackage.cuda_arch_values: - depends_on("raja cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) + with when("+cuda"): + for sm_ in CudaPackage.cuda_arch_values: + depends_on("raja cuda_arch={0}".format(sm_), when="cuda_arch={0}".format(sm_)) depends_on("raja+rocm", when="+rocm") depends_on("raja~rocm", when="~rocm") - for arch in ROCmPackage.amdgpu_targets: - depends_on("raja amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) + with when("+rocm"): + for arch in ROCmPackage.amdgpu_targets: + depends_on("raja amdgpu_target={0}".format(arch), when="amdgpu_target={0}".format(arch)) + + # googletest folder version hasn't been updated in over 5 years + # and is commented out in later releases + patch("001-remove-googletest-from-cmake.patch", when="@1.2.5:1.2.6") def setup_build_environment(self, env): spec = self.spec if "+cuda" in spec: - env.set("CUDAHOSTCXX", self.spec["mpi"].mpicxx) + if "+mpi" in spec: + env.set("CUDAHOSTCXX", self.spec["mpi"].mpicxx) + else: + env.set("CUDAHOSTCXX", self.compiler.cxx) def setup_run_environment(self, env): super().setup_run_environment(env) @@ -166,6 +190,8 @@ def cmake_args(self): args = [] if spec.satisfies("@develop"): blt_cxx_std = "c++20" + elif spec.satisfies("@2026.09.0"): + blt_cxx_std = "c++20" elif spec.satisfies("@2025.12.0"): blt_cxx_std = "c++17" elif spec.satisfies("@:2025.7.0"): @@ -177,7 +203,6 @@ def cmake_args(self): "-DBLT_SOURCE_DIR=%s" % self.spec["blt"].prefix, "-DRAJA_DIR=%s" % self.spec["raja"].prefix, "-DBLT_CXX_STD=%s" % blt_cxx_std, - "-DMPI_CXX_LINK_FLAGS='%s'" % self.spec['mpi'].libs.ld_flags, ] ) @@ -199,6 +224,7 @@ def cmake_args(self): args.append(self.define_from_variant("ENABLE_MPI", "mpi")) if "+mpi" in spec: args.append(self.define("CMAKE_CXX_COMPILER", self.spec["mpi"].mpicxx)) + args.append("-DMPI_CXX_LINK_FLAGS='%s'" % self.spec["mpi"].libs.ld_flags) args.append(self.define_from_variant("ENABLE_HIP", "rocm")) if "+rocm" in spec: @@ -214,15 +240,19 @@ def cmake_args(self): args.append(self.define_from_variant("ENABLE_CUDA", "cuda")) if "+cuda" in spec: args.append("-Dumpire_DIR=%s" % self.spec["umpire"].prefix + "/lib64/cmake/umpire") - args.append(self.define("CMAKE_CUDA_HOST_COMPILER", self.spec["mpi"].mpicxx)) + if "+mpi" in spec: + args.append(self.define("CMAKE_CUDA_HOST_COMPILER", self.spec["mpi"].mpicxx)) + else: + args.append(self.define("CMAKE_CUDA_HOST_COMPILER", self.compiler.cxx)) if not spec.satisfies("cuda_arch=none"): cuda_arch = spec.variants["cuda_arch"].value args.append("-DCUDA_ARCH={0}".format(cuda_arch[0])) args.append("-DCMAKE_CUDA_ARCHITECTURES={0}".format(cuda_arch[0])) - args.append( - "-DCMAKE_CUDA_FLAGS=--extended-lambda -I=%s" - % (self.spec["mpi"].prefix.include) - ) + if "+mpi" in spec: + args.append( + "-DCMAKE_CUDA_FLAGS=--extended-lambda -I=%s" + % (self.spec["mpi"].prefix.include) + ) return args @@ -230,4 +260,7 @@ def install(self, spec, prefix): # Kripke does not provide install target, so we have to copy # things into place. mkdirp(prefix.bin) - install(join_path(self.build_directory, "kripke.exe"), prefix.bin) + if spec.satisfies("@:1.2.4") or spec.satisfies("@1.2.7:"): + install(join_path(self.build_directory, "kripke.exe"), prefix.bin) + else: + install(join_path(self.build_directory, "bin", "kripke.exe"), prefix.bin) From 14d5c1f2c15a60a9bb166ad13a9a6a7129fb69da Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Wed, 30 Sep 2026 13:07:31 -0700 Subject: [PATCH 22/22] Disable CHAI examples --- repos/spack_repo/benchpark/packages/kripke/package.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/repos/spack_repo/benchpark/packages/kripke/package.py b/repos/spack_repo/benchpark/packages/kripke/package.py index 10ebc179e..7b70c10e4 100644 --- a/repos/spack_repo/benchpark/packages/kripke/package.py +++ b/repos/spack_repo/benchpark/packages/kripke/package.py @@ -91,10 +91,10 @@ class Kripke(CMakePackage, CudaPackage, ROCmPackage): with when("+chai"): depends_on("chai+mpi", when="+mpi") - depends_on("chai@2026.07.0: +raja cxxstd=20", when="@develop") - depends_on("chai@2026.07.0 +raja cxxstd=20", when="@2026.09.0") - depends_on("chai@2025.12.0 +raja cxxstd=17", when="@2025.12.0") - depends_on("chai@2024.07.0 +raja cxxstd=14", when="@1.2.7.0:2025.07.0") + depends_on("chai@2026.07.0: ~examples +raja cxxstd=20", when="@develop") + depends_on("chai@2026.07.0 ~examples +raja cxxstd=20", when="@2026.09.0") + depends_on("chai@2025.12.0 ~examples +raja cxxstd=17", when="@2025.12.0") + depends_on("chai@2024.07.0 ~examples +raja cxxstd=14", when="@1.2.7.0:2025.07.0") depends_on("chai~examples+raja", when="@:1.2.7") depends_on("chai+openmp", when="+openmp") depends_on("chai~openmp", when="~openmp")