diff options
author | Veselin Dobrev <v-dobrev@users.noreply.github.com> | 2023-11-02 20:19:11 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-02 20:19:11 -0700 |
commit | 48a21970d1f6693ff70c57416050fa7f54a49665 (patch) | |
tree | 62925c727437f54d6092068e74a0f42f07975459 | |
parent | 864d47043cefce7e5aba756ae231c8ce7724909b (diff) | |
download | spack-48a21970d1f6693ff70c57416050fa7f54a49665.tar.gz spack-48a21970d1f6693ff70c57416050fa7f54a49665.tar.bz2 spack-48a21970d1f6693ff70c57416050fa7f54a49665.tar.xz spack-48a21970d1f6693ff70c57416050fa7f54a49665.zip |
MFEM: add logic to find CUDA math-libs when using HPC SDK installation (#40815)
* mfem: add logic to find CUDA math-libs when using HPC SDK installation
* [@spackbot] updating style on behalf of v-dobrev
-rw-r--r-- | var/spack/repos/builtin/packages/mfem/package.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py index baab5cb808..4744e8bceb 100644 --- a/var/spack/repos/builtin/packages/mfem/package.py +++ b/var/spack/repos/builtin/packages/mfem/package.py @@ -919,6 +919,22 @@ class Mfem(Package, CudaPackage, ROCmPackage): "CUDA_CXX=%s" % join_path(spec["cuda"].prefix, "bin", "nvcc"), "CUDA_ARCH=sm_%s" % cuda_arch, ] + # Check if we are using a CUDA installation where the math libs are + # in a separate directory: + culibs = ["libcusparse"] + cuda_libs = find_optional_library(culibs, spec["cuda"].prefix) + if not cuda_libs: + p0 = os.path.realpath(join_path(spec["cuda"].prefix, "bin", "nvcc")) + p0 = os.path.dirname(p0) + p1 = os.path.dirname(p0) + while p1 != p0: + cuda_libs = find_optional_library(culibs, join_path(p1, "math_libs")) + if cuda_libs: + break + p0, p1 = p1, os.path.dirname(p1) + if not cuda_libs: + raise InstallError("Required CUDA libraries not found: %s" % culibs) + options += ["CUDA_LIB=%s" % ld_flags_from_library_list(cuda_libs)] if "+rocm" in spec: amdgpu_target = ",".join(spec.variants["amdgpu_target"].value) |