summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authoreugeneswalker <38933153+eugeneswalker@users.noreply.github.com>2023-01-20 07:43:05 -0600
committerGitHub <noreply@github.com>2023-01-20 05:43:05 -0800
commit3e2721ac7f89168dadad6e9d9a2662626c3240d2 (patch)
tree76e1effa037a795fe14418bf1a77da9bd9d62a39 /var
parentf2f3d03d007fb906120c7f3cfaba5b925802715a (diff)
downloadspack-3e2721ac7f89168dadad6e9d9a2662626c3240d2.tar.gz
spack-3e2721ac7f89168dadad6e9d9a2662626c3240d2.tar.bz2
spack-3e2721ac7f89168dadad6e9d9a2662626c3240d2.tar.xz
spack-3e2721ac7f89168dadad6e9d9a2662626c3240d2.zip
hypre: add option for sycl variant (#34987)
* hypre: add option for sycl variant * hypre +sycl conflicts with @:2.23 * hypre +sycl: raise InstallError for unsupported compiler
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/hypre/package.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py
index 931609012a..5632489601 100644
--- a/var/spack/repos/builtin/packages/hypre/package.py
+++ b/var/spack/repos/builtin/packages/hypre/package.py
@@ -75,6 +75,7 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage):
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")
+ variant("sycl", default=False, description="Enable SYCL support")
# Patch to add gptune hookup codes
patch("ij_gptune.patch", when="+gptune@2.19.0")
@@ -139,6 +140,9 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage):
# Option added in v2.21.0
conflicts("+umpire", when="@:2.20")
+ # Option added in v2.24.0
+ conflicts("+sycl", when="@:2.23")
+
configure_directory = "src"
def url_for_version(self, version):
@@ -270,6 +274,15 @@ class Hypre(AutotoolsPackage, CudaPackage, ROCmPackage):
]
)
+ if "+sycl" in spec:
+ configure_args.append("--with-scyl")
+ sycl_compatible_compilers = ["dpcpp", "icpx"]
+ if not (os.path.basename(self.compiler.cxx) in sycl_compatible_compilers):
+ raise InstallError(
+ "Hypre's SYCL GPU Backend requires DPC++ (dpcpp)"
+ + " or the oneAPI CXX (icpx) compiler."
+ )
+
if "+unified-memory" in spec:
configure_args.append("--enable-unified-memory")