From 07f0db21c1dbfa6c9d0e11e8c37a0de77bd36011 Mon Sep 17 00:00:00 2001 From: Riyaz Haque Date: Sat, 30 May 2026 23:16:23 -0700 Subject: [PATCH 1/3] 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 2/3] 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 3/3] 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,