autodock-gpu: build with the specified cuda_arch
(#42244)
The CUDA target should be specified at build time, otherwise by default `autodock-gpu` will be built for compute capabilities 52, 60, 61, 70, which may cause errors on unsopported cards.
This commit is contained in:
parent
890a46c071
commit
4c86ecc531
@ -6,7 +6,7 @@
|
|||||||
from spack.package import *
|
from spack.package import *
|
||||||
|
|
||||||
|
|
||||||
class AutodockGpu(MakefilePackage):
|
class AutodockGpu(MakefilePackage, CudaPackage):
|
||||||
"""AutoDock-GPU: AutoDock for GPUs and other accelerators.
|
"""AutoDock-GPU: AutoDock for GPUs and other accelerators.
|
||||||
OpenCL and Cuda accelerated version of AutoDock 4.2.6. It
|
OpenCL and Cuda accelerated version of AutoDock 4.2.6. It
|
||||||
leverages its embarrasingly parallelizable LGA by processing
|
leverages its embarrasingly parallelizable LGA by processing
|
||||||
@ -30,14 +30,19 @@ class AutodockGpu(MakefilePackage):
|
|||||||
multi=False,
|
multi=False,
|
||||||
)
|
)
|
||||||
variant("overlap", default=False, description="Overlap CPU and GPU operations")
|
variant("overlap", default=False, description="Overlap CPU and GPU operations")
|
||||||
|
variant("cuda", default=True, description="Build with CUDA")
|
||||||
|
|
||||||
depends_on("cuda")
|
depends_on("cuda")
|
||||||
|
|
||||||
|
conflicts("~cuda") # the cuda variant is mandatory
|
||||||
|
conflicts("+cuda", when="cuda_arch=none")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def build_targets(self):
|
def build_targets(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
return [
|
return [
|
||||||
"DEVICE={0}".format(spec.variants["device"].value.upper()),
|
"DEVICE={0}".format(spec.variants["device"].value.upper()),
|
||||||
|
"TARGETS={0}".format(" ".join(spec.variants["cuda_arch"].value)),
|
||||||
"GPU_INCLUDE_PATH={0}".format(spec["cuda"].prefix.include),
|
"GPU_INCLUDE_PATH={0}".format(spec["cuda"].prefix.include),
|
||||||
"GPU_LIBRARY_PATH={0}".format(spec["cuda"].libs.directories[0]),
|
"GPU_LIBRARY_PATH={0}".format(spec["cuda"].libs.directories[0]),
|
||||||
"OVERLAP={0}".format("ON" if "+overlap" in spec else "OFF"),
|
"OVERLAP={0}".format("ON" if "+overlap" in spec else "OFF"),
|
||||||
|
Loading…
Reference in New Issue
Block a user