CARE and dependencies fixed to work with +cuda (#22874)
This commit is contained in:
parent
1c5c53f505
commit
e21e26094e
@ -24,6 +24,7 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
|
|
||||||
depends_on('blt', type='build')
|
depends_on('blt', type='build')
|
||||||
depends_on('blt@0.3.7:', type='build', when='+rocm')
|
depends_on('blt@0.3.7:', type='build', when='+rocm')
|
||||||
|
depends_on('cub', when='+cuda')
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
|
@ -41,9 +41,10 @@ class Care(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
# package that uses cub. TODO: have all packages point to the same external
|
# package that uses cub. TODO: have all packages point to the same external
|
||||||
# cub package.
|
# cub package.
|
||||||
depends_on('camp+cuda', when='+cuda')
|
depends_on('camp+cuda', when='+cuda')
|
||||||
depends_on('umpire+cuda', when='+cuda')
|
depends_on('umpire+cuda~shared', when='+cuda')
|
||||||
|
depends_on('cub', when='+cuda')
|
||||||
depends_on('raja+cuda~openmp', when='+cuda')
|
depends_on('raja+cuda~openmp', when='+cuda')
|
||||||
depends_on('chai+cuda', when='+cuda')
|
depends_on('chai+cuda~shared', when='+cuda')
|
||||||
|
|
||||||
# variants +rocm and amdgpu_targets are not automatically passed to
|
# variants +rocm and amdgpu_targets are not automatically passed to
|
||||||
# dependencies, so do it manually.
|
# dependencies, so do it manually.
|
||||||
@ -69,13 +70,17 @@ def cmake_args(self):
|
|||||||
if '+cuda' in spec:
|
if '+cuda' in spec:
|
||||||
options.extend([
|
options.extend([
|
||||||
'-DENABLE_CUDA=ON',
|
'-DENABLE_CUDA=ON',
|
||||||
'-DCUDA_TOOLKIT_ROOT_DIR=' + spec['cuda'].prefix])
|
'-DCUDA_TOOLKIT_ROOT_DIR=' + spec['cuda'].prefix,
|
||||||
|
'-DNVTOOLSEXT_DIR=' + spec['cuda'].prefix,
|
||||||
|
'-DCUB_DIR=' + spec['cub'].prefix])
|
||||||
|
|
||||||
if not spec.satisfies('cuda_arch=none'):
|
if not spec.satisfies('cuda_arch=none'):
|
||||||
cuda_arch = spec.variants['cuda_arch'].value
|
cuda_arch = spec.variants['cuda_arch'].value
|
||||||
|
# Please note that within care, CUDA_ARCH is assigned to -code
|
||||||
|
# and likewise CUDA_CODE is assigned to -arch, so these are
|
||||||
|
# intentionally flipped here.
|
||||||
options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0]))
|
options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0]))
|
||||||
flag = '-arch sm_{0}'.format(cuda_arch[0])
|
options.append('-DCUDA_CODE=compute_{0}'.format(cuda_arch[0]))
|
||||||
options.append('-DCMAKE_CUDA_FLAGS:STRING={0}'.format(flag))
|
|
||||||
else:
|
else:
|
||||||
options.append('-DENABLE_CUDA=OFF')
|
options.append('-DENABLE_CUDA=OFF')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user