diff options
author | G-Ragghianti <33492707+G-Ragghianti@users.noreply.github.com> | 2023-10-02 10:35:00 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-02 07:35:00 -0700 |
commit | 1b75651af6e84cd8ad41bbd0257ab16e09389eec (patch) | |
tree | 597452fc272fbb370d7eee44cef45ac8af7008b5 /var/spack/repos/builtin/packages/blaspp/package.py | |
parent | b3e3604f461824e90b222babc0fd8c343c316833 (diff) | |
download | spack-1b75651af6e84cd8ad41bbd0257ab16e09389eec.tar.gz spack-1b75651af6e84cd8ad41bbd0257ab16e09389eec.tar.bz2 spack-1b75651af6e84cd8ad41bbd0257ab16e09389eec.tar.xz spack-1b75651af6e84cd8ad41bbd0257ab16e09389eec.zip |
Implemented +sycl for slate (#39927)
* Implemented +sycl for slate
* style
* style
* add slate +sycl to ci
* slate +sycl: explicitly specify +mpi
* comment out slate+sycl+mpi in e4s oneapi stack
* removing requirement of intel-oneapi-mpi
* Added slate+sycl to e4s oneapi stack
* Removing obsolete comment
---------
Co-authored-by: eugeneswalker <eugenesunsetwalker@gmail.com>
Diffstat (limited to 'var/spack/repos/builtin/packages/blaspp/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/blaspp/package.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/blaspp/package.py b/var/spack/repos/builtin/packages/blaspp/package.py index 6be99028b1..f6f52d2756 100644 --- a/var/spack/repos/builtin/packages/blaspp/package.py +++ b/var/spack/repos/builtin/packages/blaspp/package.py @@ -46,11 +46,14 @@ class Blaspp(CMakePackage, CudaPackage, ROCmPackage): variant("openmp", default=True, description="Use OpenMP internally.") variant("shared", default=True, description="Build shared libraries") + variant("sycl", default=False, description="Build support for the SYCL backend") depends_on("cmake@3.15.0:", type="build") depends_on("blas") depends_on("llvm-openmp", when="%apple-clang +openmp") depends_on("rocblas", when="+rocm") + depends_on("intel-oneapi-mkl", when="+sycl") + depends_on("intel-oneapi-mkl threads=openmp", when="+sycl") # only supported with clingo solver: virtual dependency preferences # depends_on('openblas threads=openmp', when='+openmp ^openblas') @@ -63,7 +66,21 @@ class Blaspp(CMakePackage, CudaPackage, ROCmPackage): conflicts( "+rocm", when="@:2020.10.02", msg="ROCm support requires BLAS++ 2021.04.00 or greater" ) - conflicts("+rocm", when="+cuda", msg="BLAS++ can only support one GPU backend at a time") + backend_msg = "BLAS++ supports only one GPU backend at a time" + conflicts("+rocm", when="+cuda", msg=backend_msg) + conflicts("+rocm", when="+sycl", msg=backend_msg) + conflicts("+cuda", when="+sycl", msg=backend_msg) + conflicts("+sycl", when="@:2023.06.00", msg="SYCL support requires BLAS++ version 2023.08.25") + + # TODO: +sycl requires use of the intel-oneapi compiler, but we cannot express that directly. + # For now, add conflicts for other compilers instead. + for __compiler in spack.compilers.supported_compilers(): + if __compiler != "oneapi": + conflicts( + "%{0}".format(__compiler), + when="+sycl", + msg="blaspp+sycl must be compiled with %oneapi", + ) def cmake_args(self): spec = self.spec @@ -74,6 +91,8 @@ class Blaspp(CMakePackage, CudaPackage, ROCmPackage): backend = "cuda" if "+rocm" in spec: backend = "hip" + if "+sycl" in spec: + backend = "sycl" backend_config = "-Dgpu_backend=%s" % backend args = [ |