diff options
author | Sarah Osborn <30503782+osborn9@users.noreply.github.com> | 2022-09-29 01:42:00 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-29 02:42:00 -0600 |
commit | 77afad229c5b8a3f3a6847a2b8ca06551e67cf53 (patch) | |
tree | ed0f221332ac87a2f947f08ecaa2f30f37de9822 | |
parent | 2214f3438068396dd2c2a19a7a3a6ed1591b3fa6 (diff) | |
download | spack-77afad229c5b8a3f3a6847a2b8ca06551e67cf53.tar.gz spack-77afad229c5b8a3f3a6847a2b8ca06551e67cf53.tar.bz2 spack-77afad229c5b8a3f3a6847a2b8ca06551e67cf53.tar.xz spack-77afad229c5b8a3f3a6847a2b8ca06551e67cf53.zip |
hypre: add Umpire variant (#32884)
* hypre: Add umpire variant
* hypre: Fix to umpire / GPU target propagation
-rw-r--r-- | var/spack/repos/builtin/packages/hypre/package.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py index fff7e2ff4f..36d4ec39df 100644 --- a/var/spack/repos/builtin/packages/hypre/package.py +++ b/var/spack/repos/builtin/packages/hypre/package.py @@ -72,6 +72,7 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage): variant("unified-memory", default=False, description="Use unified memory") variant("fortran", default=True, description="Enables fortran bindings") variant("gptune", default=False, description="Add the GPTune hookup code") + variant("umpire", default=False, description="Enable Umpire support") # Patch to add gptune hookup codes patch("ij_gptune.patch", when="+gptune@2.19.0") @@ -93,17 +94,31 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage): depends_on("lapack") depends_on("superlu-dist", when="+superlu-dist+mpi") + depends_on("umpire", when="+umpire") + for sm_ in CudaPackage.cuda_arch_values: + depends_on( + "umpire+cuda cuda_arch={0}".format(sm_), when="+umpire+cuda cuda_arch={0}".format(sm_) + ) + for gfx in ROCmPackage.amdgpu_targets: + depends_on( + "umpire+rocm amdgpu_target={0}".format(gfx), + when="+umpire+rocm amdgpu_target={0}".format(gfx), + ) + + # Conflicts conflicts("+cuda", when="+int64") conflicts("+rocm", when="+int64") conflicts("+rocm", when="@:2.20") conflicts("+unified-memory", when="~cuda~rocm") conflicts("+gptune", when="~mpi") + # Umpire device allocator exports device code, which requires static libs + conflicts("+umpire", when="+shared+cuda") # Patch to build shared libraries on Darwin does not apply to # versions before 2.13.0 conflicts("+shared@:2.12 platform=darwin") - # Conflicts + # Version conflicts # Option added in v2.13.0 conflicts("+superlu-dist", when="@:2.12") @@ -113,6 +128,9 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage): # Option added in v2.16.0 conflicts("+mixedint", when="@:2.15") + # Option added in v2.21.0 + conflicts("+umpire", when="@:2.20") + configure_directory = "src" def url_for_version(self, version): @@ -176,6 +194,14 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage): configure_args.append("--with-dsuperlu-lib=%s" % spec["superlu-dist"].libs) configure_args.append("--with-dsuperlu") + if "+umpire" in spec: + configure_args.append("--with-umpire-include=%s" % spec["umpire"].prefix.include) + configure_args.append("--with-umpire-lib=%s" % spec["umpire"].libs) + if "~cuda~rocm" in spec: + configure_args.append("--with-umpire-host") + else: + configure_args.append("--with-umpire") + configure_args.extend(self.enable_or_disable("debug")) if "+cuda" in spec: |