Make use of Spack's builtin CUDA build system. (#15924)

This commit is contained in:
Nichols A. Romero 2020-04-07 17:02:38 -05:00 committed by GitHub
parent 36f7def307
commit 46bcbac719
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,7 +7,7 @@
import sys import sys
class Llvm(CMakePackage): class Llvm(CMakePackage, CudaPackage):
"""The LLVM Project is a collection of modular and reusable compiler and """The LLVM Project is a collection of modular and reusable compiler and
toolchain technologies. Despite its name, LLVM has little to do toolchain technologies. Despite its name, LLVM has little to do
with traditional virtual machines, though it does provide helpful with traditional virtual machines, though it does provide helpful
@ -57,19 +57,6 @@ class Llvm(CMakePackage):
default=True, default=True,
description="Build the LLVM C/C++/Objective-C compiler frontend", description="Build the LLVM C/C++/Objective-C compiler frontend",
) )
variant(
"cuda",
default=False,
description="Build LLVM with CUDA, required for nvptx offload",
)
variant(
"nvptx_offload_ccs",
default="35,60,70,75",
multi=True,
description="NVIDIA compute cabailities to make inlining capable",
)
variant( variant(
"omp_debug", "omp_debug",
default=False, default=False,
@ -256,10 +243,10 @@ def cmake_args(self):
[ [
"-DCUDA_TOOLKIT_ROOT_DIR:PATH=" + spec["cuda"].prefix, "-DCUDA_TOOLKIT_ROOT_DIR:PATH=" + spec["cuda"].prefix,
"-DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES={0}".format( "-DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES={0}".format(
",".join(spec.variants["nvptx_offload_ccs"].value) ",".join(spec.variants["cuda_arch"].value)
), ),
"-DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_{0}".format( "-DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_{0}".format(
spec.variants["nvptx_offload_ccs"].value[-1] spec.variants["cuda_arch"].value[-1]
), ),
] ]
) )