From 8235aa1804f70bfcab93c6a4c004b0b21b07ddee Mon Sep 17 00:00:00 2001 From: psakievich Date: Fri, 14 Mar 2025 02:08:30 -0600 Subject: [PATCH] Trilinos launch blocking + maintainers (#49468) * Trilinos launch blocking + maintainers Cuda launch blocking is not needed and slowing modern apps down. More maintainers to spot issues like this. --------- Co-authored-by: psakievich --- .../builtin/packages/trilinos/package.py | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index d346b5e0a10..5229c8ef835 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -33,7 +33,17 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): url = "https://github.com/trilinos/Trilinos/archive/refs/tags/trilinos-release-12-12-1.tar.gz" git = "https://github.com/trilinos/Trilinos.git" - maintainers("keitat", "kuberry", "jwillenbring", "psakievich") + maintainers( + "keitat", + "kuberry", + "jwillenbring", + "psakievich", + "ccober6", + "fryeguy52", + "sebrowne", + "rppawlo", + "cgcgcg", + ) tags = ["e4s"] @@ -583,8 +593,8 @@ def url_for_version(self, version): return url.format(version.dashed) def setup_dependent_run_environment(self, env, dependent_spec): - if "+cuda" in self.spec: - # currently Trilinos doesn't perform the memory fence so + if self.spec.satisfies("@:13.1.0 +cuda"): + # older releases of Trilinos doesn't perform the memory fence so # it relies on blocking CUDA kernel launch. This is needed # in case the dependent app also run a CUDA backend via Trilinos env.set("CUDA_LAUNCH_BLOCKING", "1") @@ -1086,7 +1096,8 @@ def setup_run_environment(self, env): if "+exodus" in self.spec: env.prepend_path("PYTHONPATH", self.prefix.lib) - if "+cuda" in self.spec: - # currently Trilinos doesn't perform the memory fence so - # it relies on blocking CUDA kernel launch. + if self.spec.satisfies("@:13.1.0 +cuda"): + # older releases of Trilinos doesn't perform the memory fence so + # it relies on blocking CUDA kernel launch. This is needed + # in case the dependent app also run a CUDA backend via Trilinos env.set("CUDA_LAUNCH_BLOCKING", "1")