From 156edffec2379d2ca23b0d2d751ccb1dc6ce35c1 Mon Sep 17 00:00:00 2001 From: David Beckingsale Date: Wed, 1 Sep 2021 17:58:47 -0700 Subject: Update versions for RAJA, CHAI, Umpire and camp (#25528) --- var/spack/repos/builtin/packages/camp/package.py | 3 ++ var/spack/repos/builtin/packages/chai/package.py | 61 ++++++++++++++++------ var/spack/repos/builtin/packages/raja/package.py | 42 +++++++++------ var/spack/repos/builtin/packages/umpire/package.py | 37 ++++++++----- 4 files changed, 97 insertions(+), 46 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/camp/package.py b/var/spack/repos/builtin/packages/camp/package.py index 66e1f245f2..fc20ccfd46 100644 --- a/var/spack/repos/builtin/packages/camp/package.py +++ b/var/spack/repos/builtin/packages/camp/package.py @@ -16,7 +16,10 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/LLNL/camp.git" url = "https://github.com/LLNL/camp/archive/v0.1.0.tar.gz" + maintainers = ['trws'] + version('master', branch='master', submodules='True') + version('0.2.2', sha256='194d38b57e50e3494482a7f94940b27f37a2bee8291f2574d64db342b981d819') version('0.1.0', sha256='fd4f0f2a60b82a12a1d9f943f8893dc6fe770db493f8fae5ef6f7d0c439bebcc') # TODO: figure out gtest dependency and then set this default True. diff --git a/var/spack/repos/builtin/packages/chai/package.py b/var/spack/repos/builtin/packages/chai/package.py index 7b80cd5eb1..0c755a79e9 100644 --- a/var/spack/repos/builtin/packages/chai/package.py +++ b/var/spack/repos/builtin/packages/chai/package.py @@ -14,8 +14,11 @@ class Chai(CMakePackage, CudaPackage, ROCmPackage): homepage = "https://github.com/LLNL/CHAI" git = "https://github.com/LLNL/CHAI.git" + maintainers = ['davidbeckingsale'] + version('develop', branch='develop', submodules=True) - version('master', branch='main', submodules=True) + version('main', branch='main', submodules=True) + version('2.4.0', tag='v2.4.0', submodules=True) version('2.3.0', tag='v2.3.0', submodules=True) version('2.2.2', tag='v2.2.2', submodules=True) version('2.2.1', tag='v2.2.1', submodules=True) @@ -32,6 +35,7 @@ class Chai(CMakePackage, CudaPackage, ROCmPackage): variant('raja', default=False, description='Build plugin for RAJA') variant('benchmarks', default=False, description='Build benchmarks.') variant('examples', default=True, description='Build examples.') + variant('openmp', default=False, description='Build using OpenMP') # TODO: figure out gtest dependency and then set this default True # and remove the +tests conflict below. variant('tests', default=False, description='Build tests') @@ -39,22 +43,45 @@ class Chai(CMakePackage, CudaPackage, ROCmPackage): depends_on('cmake@3.8:', type='build') depends_on('cmake@3.9:', type='build', when="+cuda") - depends_on('blt@0.4.0:', type='build', when='@2.3.1:') - depends_on('blt@:0.3.6', type='build', when='@:2.3.0') + depends_on('blt@0.4.1:', type='build', when='@2.4.0:') + depends_on('blt@0.4.0:', type='build', when='@2.3.0') + depends_on('blt@0.3.6:', type='build', when='@:2.2.2') depends_on('umpire') - depends_on('raja', when="+raja") - - depends_on('umpire+cuda', when="+cuda") - depends_on('raja+cuda', when="+raja+cuda") - - # variants +rocm and amdgpu_targets are not automatically passed to - # dependencies, so do it manually. - depends_on('umpire+rocm', when='+rocm') - depends_on('raja+rocm', when="+raja+rocm") - for val in ROCmPackage.amdgpu_targets: - depends_on('umpire amdgpu_target=%s' % val, when='amdgpu_target=%s' % val) - depends_on('raja amdgpu_target=%s' % val, when='+raja amdgpu_target=%s' % val) + depends_on('umpire@6.0.0', when="@2.4.0") + depends_on('umpire@4.1.2', when="@2.2.0:2.3.0") + depends_on('umpire@main', when='@main') + + with when('+cuda'): + depends_on('umpire+cuda') + for sm_ in CudaPackage.cuda_arch_values: + depends_on('umpire+cuda cuda_arch={0}'.format(sm_), + when='cuda_arch={0}'.format(sm_)) + + with when('+rocm'): + depends_on('umpire+rocm') + for arch in ROCmPackage.amdgpu_targets: + depends_on('umpire+rocm amdgpu_target={0}'.format(arch), + when='amdgpu_target={0}'.format(arch)) + + with when('+raja'): + depends_on('raja~openmp', when='~openmp') + depends_on('raja+openmp', when='+openmp') + depends_on('raja@0.14.0', when="@2.4.0") + depends_on('raja@0.13.0', when="@2.3.0") + depends_on('raja@0.12.0', when="@2.2.0:2.2.2") + depends_on('raja@main', when='@main') + + with when('+cuda'): + depends_on('raja+cuda') + for sm_ in CudaPackage.cuda_arch_values: + depends_on('raja+cuda cuda_arch={0}'.format(sm_), + when='cuda_arch={0}'.format(sm_)) + with when('+rocm'): + depends_on('raja+rocm') + for arch in ROCmPackage.amdgpu_targets: + depends_on('raja+rocm amdgpu_target={0}'.format(arch), + when='amdgpu_target={0}'.format(arch)) conflicts('+benchmarks', when='~tests') @@ -64,9 +91,13 @@ class Chai(CMakePackage, CudaPackage, ROCmPackage): options = [] options.append('-DBLT_SOURCE_DIR={0}'.format(spec['blt'].prefix)) + options.append(self.define_from_variant('ENABLE_OPENMP', 'openmp')) + if '+cuda' in spec: options.extend([ '-DENABLE_CUDA=ON', + '-DCMAKE_CUDA_SEPARABLE_COMPILATION=On', + '-DCUDA_SEPARABLE_COMPILATION=On', '-DCUDA_TOOLKIT_ROOT_DIR=' + spec['cuda'].prefix]) if not spec.satisfies('cuda_arch=none'): diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py index 03ee784c75..205265e7e6 100644 --- a/var/spack/repos/builtin/packages/raja/package.py +++ b/var/spack/repos/builtin/packages/raja/package.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +from spack import * + class Raja(CMakePackage, CudaPackage, ROCmPackage): """RAJA Parallel Framework.""" @@ -10,8 +12,11 @@ class Raja(CMakePackage, CudaPackage, ROCmPackage): homepage = "http://software.llnl.gov/RAJA/" git = "https://github.com/LLNL/RAJA.git" + maintainers = ['davidbeckingsale'] + version('develop', branch='develop', submodules='True') version('main', branch='main', submodules='True') + version('0.14.0', tag='v0.14.0', submodules='True') version('0.13.0', tag='v0.13.0', submodules='True') version('0.12.1', tag='v0.12.1', submodules="True") version('0.12.0', tag='v0.12.0', submodules="True") @@ -37,23 +42,26 @@ class Raja(CMakePackage, CudaPackage, ROCmPackage): # and remove the +tests conflict below. variant('tests', default=False, description='Build tests') - depends_on('blt@0.4.0:', type='build', when='@0.13.1:') - depends_on('blt@:0.3.6', type='build', when='@:0.13.0') - - # variants +rocm and amdgpu_targets are not automatically passed to - # dependencies, so do it manually. - depends_on('camp+rocm', when='+rocm') - for val in ROCmPackage.amdgpu_targets: - depends_on('camp amdgpu_target=%s' % val, when='amdgpu_target=%s' % val) - - depends_on('camp') - depends_on('camp@master', when='@develop') - depends_on('camp+cuda', when='+cuda') - for sm_ in CudaPackage.cuda_arch_values: - depends_on('camp cuda_arch={0}'.format(sm_), - when='cuda_arch={0}'.format(sm_)) - - conflicts('+openmp', when='+rocm') + depends_on('blt') + depends_on('blt@0.4.1:', type='build', when='@0.14.0:') + depends_on('blt@0.4.0:', type='build', when='@0.13.0') + depends_on('blt@0.3.6:', type='build', when='@:0.12.0') + + depends_on('camp@0.2.2', when='@0.14.0:') + depends_on('camp@0.1.0', when='@0.12.0:0.13.0') + + with when('+rocm @0.12.0:'): + depends_on('camp+rocm') + for arch in ROCmPackage.amdgpu_targets: + depends_on('camp+rocm amdgpu_target={0}'.format(arch), + when='amdgpu_target={0}'.format(arch)) + conflicts('+openmp') + + with when('+cuda @0.12.0:'): + depends_on('camp+cuda') + for sm_ in CudaPackage.cuda_arch_values: + depends_on('camp +cuda cuda_arch={0}'.format(sm_), + when='cuda_arch={0}'.format(sm_)) def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py index c0a26f07b2..d17b936940 100644 --- a/var/spack/repos/builtin/packages/umpire/package.py +++ b/var/spack/repos/builtin/packages/umpire/package.py @@ -7,6 +7,8 @@ import os import llnl.util.tty as tty +from spack import * + class Umpire(CMakePackage, CudaPackage, ROCmPackage): """An application-focused API for memory management on NUMA & GPU @@ -19,6 +21,7 @@ class Umpire(CMakePackage, CudaPackage, ROCmPackage): version('develop', branch='develop', submodules=True) version('main', branch='main', submodules=True) + version('6.0.0', tag='v6.0.0', submodules=True) version('5.0.1', tag='v5.0.1', submodules=True) version('5.0.0', tag='v5.0.0', submodules=True) version('4.1.2', tag='v4.1.2', submodules=True) @@ -64,21 +67,26 @@ class Umpire(CMakePackage, CudaPackage, ROCmPackage): depends_on('cmake@3.8:', type='build') depends_on('cmake@3.9:', when='+cuda', type='build') - depends_on('blt@0.4.0:', type='build', when='@4.1.3:') - depends_on('blt@:0.3.6', type='build', when='@:4.1.2') + depends_on('blt@0.4.1:', type='build', when='@6.0.0:') + depends_on('blt@0.4.0:', type='build', when='@4.1.3:5.0.1') + depends_on('blt@0.3.6:', type='build', when='@:4.1.2') + + depends_on('camp', when='@5.0.0:') + depends_on('camp@0.2.2', when='@6.0.0:') + depends_on('camp@0.1.0', when='@5.0.0:5.0.1') - # variants +rocm and amdgpu_targets are not automatically passed to - # dependencies, so do it manually. - depends_on('camp+rocm', when='+rocm') - for val in ROCmPackage.amdgpu_targets: - depends_on('camp amdgpu_target=%s' % val, when='amdgpu_target=%s' % val) + with when('@5.0.0:'): + with when('+cuda'): + depends_on('camp+cuda') + for sm_ in CudaPackage.cuda_arch_values: + depends_on('camp+cuda cuda_arch={0}'.format(sm_), + when='cuda_arch={0}'.format(sm_)) - depends_on('camp') - depends_on('camp@master', when='@develop') - depends_on('camp+cuda', when='+cuda') - for sm_ in CudaPackage.cuda_arch_values: - depends_on('camp cuda_arch={0}'.format(sm_), - when='cuda_arch={0}'.format(sm_)) + with when('+rocm'): + depends_on('camp+rocm') + for arch_ in ROCmPackage.amdgpu_targets: + depends_on('camp+rocm amdgpu_target={0}'.format(arch_), + when='amdgpu_target={0}'.format(arch_)) conflicts('+numa', when='@:0.3.2') conflicts('~c', when='+fortran', msg='Fortran API requires C API') @@ -92,7 +100,8 @@ class Umpire(CMakePackage, CudaPackage, ROCmPackage): options = [] options.append("-DBLT_SOURCE_DIR={0}".format(spec['blt'].prefix)) - options.append("-Dcamp_DIR={0}".format(spec['camp'].prefix)) + if spec.satisfies('@5.0.0:'): + options.append("-Dcamp_DIR={0}".format(spec['camp'].prefix)) if '+cuda' in spec: options.extend([ -- cgit v1.2.3-70-g09d2