RAJA and associated packages: add v2022.03.0 (#30047)

* Add raja@2022.03.0
* Add camp@2022.03.0
* Add chai@2022.03.0
* Add umpire@2022.03.1
* Latest chai, raja, umpire versions don't need submodules
* Latest chai, raja, umpire versions update CMake option names
* New umpire +device_alloc option (for latest version)
* All versions of dray are now required to build with raja@:0.14

Co-authored-by: Marty McFadden <mcfadden8@users.noreply.github.com>
This commit is contained in:
David Beckingsale 2022-05-18 22:48:22 -07:00 committed by GitHub
parent 1f6b880fff
commit c2af154cd2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 61 additions and 22 deletions

View File

@ -19,6 +19,7 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
maintainers = ['trws'] maintainers = ['trws']
version('main', branch='main', submodules='True') version('main', branch='main', submodules='True')
version('2022.03.0', sha256='e9090d5ee191ea3a8e36b47a8fe78f3ac95d51804f1d986d931e85b8f8dad721')
version('0.3.0', sha256='129431a049ca5825443038ad5a37a86ba6d09b2618d5fe65d35f83136575afdb') version('0.3.0', sha256='129431a049ca5825443038ad5a37a86ba6d09b2618d5fe65d35f83136575afdb')
version('0.2.3', sha256='58a0f3bd5eadb588d7dc83f3d050aff8c8db639fc89e8d6553f9ce34fc2421a7') version('0.2.3', sha256='58a0f3bd5eadb588d7dc83f3d050aff8c8db639fc89e8d6553f9ce34fc2421a7')
version('0.2.2', sha256='194d38b57e50e3494482a7f94940b27f37a2bee8291f2574d64db342b981d819') version('0.2.2', sha256='194d38b57e50e3494482a7f94940b27f37a2bee8291f2574d64db342b981d819')

View File

@ -19,8 +19,9 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage):
maintainers = ['davidbeckingsale'] maintainers = ['davidbeckingsale']
version('develop', branch='develop', submodules=True) version('develop', branch='develop', submodules=False)
version('main', branch='main', submodules=True) version('main', branch='main', submodules=False)
version('2022.03.0', tag='v2022.03.0', submodules=False)
version('2.4.0', tag='v2.4.0', submodules=True) version('2.4.0', tag='v2.4.0', submodules=True)
version('2.3.0', tag='v2.3.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.2', tag='v2.2.2', submodules=True)
@ -45,12 +46,15 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage):
depends_on('cmake@3.8:', type='build') depends_on('cmake@3.8:', type='build')
depends_on('cmake@3.9:', type='build', when="+cuda") depends_on('cmake@3.9:', type='build', when="+cuda")
depends_on('cmake@3.14:', when='@2022.03.0:')
depends_on('blt@0.5.0:', type='build', when='@2022.03.0:')
depends_on('blt@0.4.1:', type='build', when='@2.4.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.4.0:', type='build', when='@2.3.0')
depends_on('blt@0.3.6:', type='build', when='@:2.2.2') depends_on('blt@0.3.6:', type='build', when='@:2.2.2')
depends_on('umpire') depends_on('umpire')
depends_on('umpire@2022.03.0:', when='@2022.03.0:')
depends_on('umpire@6.0.0', when="@2.4.0") 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@4.1.2', when="@2.2.0:2.3.0")
depends_on('umpire@main', when='@main') depends_on('umpire@main', when='@main')
@ -73,6 +77,7 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage):
depends_on('raja@0.14.0', when="@2.4.0") depends_on('raja@0.14.0', when="@2.4.0")
depends_on('raja@0.13.0', when="@2.3.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@0.12.0', when="@2.2.0:2.2.2")
depends_on('raja@2022.03.0:', when='@2022.03.0:')
depends_on('raja@main', when='@main') depends_on('raja@main', when='@main')
with when('+cuda'): with when('+cuda'):
@ -147,16 +152,21 @@ def initconfig_package_entries(self):
spec = self.spec spec = self.spec
entries = [] entries = []
option_prefix = "CHAI_" if spec.satisfies("@2022.03.0:") else ""
entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec['blt'].prefix)) entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec['blt'].prefix))
if '+raja' in spec: if '+raja' in spec:
entries.append(cmake_cache_option("ENABLE_RAJA_PLUGIN", True)) entries.append(cmake_cache_option(
"{}ENABLE_RAJA_PLUGIN".format(option_prefix), True))
entries.append(cmake_cache_path("RAJA_DIR", spec['raja'].prefix)) entries.append(cmake_cache_path("RAJA_DIR", spec['raja'].prefix))
entries.append(cmake_cache_option('ENABLE_PICK', '+enable_pick' in spec)) entries.append(cmake_cache_option(
"{}ENABLE_PICK".format(option_prefix), '+enable_pick' in spec))
entries.append(cmake_cache_path( entries.append(cmake_cache_path(
"umpire_DIR", spec['umpire'].prefix.share.umpire.cmake)) "umpire_DIR", spec['umpire'].prefix.share.umpire.cmake))
entries.append(cmake_cache_option("ENABLE_TESTS", '+tests' in spec)) entries.append(cmake_cache_option("ENABLE_TESTS", '+tests' in spec))
entries.append(cmake_cache_option("ENABLE_BENCHMARKS", '+benchmarks' in spec)) entries.append(cmake_cache_option("ENABLE_BENCHMARKS", '+benchmarks' in spec))
entries.append(cmake_cache_option("ENABLE_EXAMPLES", '+examples' in spec)) entries.append(cmake_cache_option(
"{}ENABLE_EXAMPLES".format(option_prefix), '+examples' in spec))
entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec)) entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec))
return entries return entries

View File

@ -78,6 +78,8 @@ def propagate_cuda_arch(package, spec=None):
depends_on("apcomp~shared", when="~shared") depends_on("apcomp~shared", when="~shared")
depends_on("apcomp+shared", when="+shared") depends_on("apcomp+shared", when="+shared")
depends_on("raja@0.12.0:")
depends_on("raja@:0.14", when='@0.1.7:')
depends_on("raja@:0.13", when="@:0.1.6") depends_on("raja@:0.13", when="@:0.1.6")
depends_on("raja~cuda", when="~cuda") depends_on("raja~cuda", when="~cuda")
depends_on("raja+cuda", when="+cuda") depends_on("raja+cuda", when="+cuda")

View File

@ -17,8 +17,9 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage):
maintainers = ['davidbeckingsale'] maintainers = ['davidbeckingsale']
version('develop', branch='develop', submodules='True') version('develop', branch='develop', submodules=False)
version('main', branch='main', submodules='True') version('main', branch='main', submodules=False)
version('2022.03.0', tag='v2022.03.0', submodules=False)
version('0.14.0', tag='v0.14.0', submodules='True') version('0.14.0', tag='v0.14.0', submodules='True')
version('0.13.0', tag='v0.13.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.1', tag='v0.12.1', submodules="True")
@ -56,10 +57,12 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage):
depends_on('blt@0.4.0:', type='build', when='@0.13.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('blt@0.3.6:', type='build', when='@:0.12.0')
depends_on('camp@0.2.2', when='@0.14.0:') depends_on('camp@0.2.2', when='@0.14.0')
depends_on('camp@0.1.0', when='@0.12.0:0.13.0') depends_on('camp@0.1.0', when='@0.10.0:0.13.0')
depends_on('camp@2022.03.0:', when='@2022.03.0:')
depends_on('cmake@:3.20', when='+rocm', type='build') depends_on('cmake@:3.20', when='+rocm', type='build')
depends_on('cmake@3.14:', when='@2022.03.0:')
with when('+rocm @0.12.0:'): with when('+rocm @0.12.0:'):
depends_on('camp+rocm') depends_on('camp+rocm')
@ -128,14 +131,17 @@ def initconfig_package_entries(self):
spec = self.spec spec = self.spec
entries = [] entries = []
option_prefix = "RAJA_" if spec.satisfies("@2022.03.0:") else ""
entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec['blt'].prefix)) entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec['blt'].prefix))
if 'camp' in self.spec: if 'camp' in self.spec:
entries.append(cmake_cache_path("camp_DIR", spec['camp'].prefix)) entries.append(cmake_cache_path("camp_DIR", spec['camp'].prefix))
entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec)) entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec))
entries.append(cmake_cache_option("ENABLE_EXAMPLES", '+examples' in spec)) entries.append(cmake_cache_option(
"{}ENABLE_EXAMPLES".format(option_prefix), '+examples' in spec))
if spec.satisfies('@0.14.0:'): if spec.satisfies('@0.14.0:'):
entries.append(cmake_cache_option("RAJA_ENABLE_EXERCISES", entries.append(cmake_cache_option(
'+exercises' in spec)) "{}ENABLE_EXERCISES".format(option_prefix), '+exercises' in spec))
else: else:
entries.append(cmake_cache_option("ENABLE_EXERCISES", entries.append(cmake_cache_option("ENABLE_EXERCISES",
'+exercises' in spec)) '+exercises' in spec))

View File

@ -21,8 +21,10 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage):
maintainers = ['davidbeckingsale'] maintainers = ['davidbeckingsale']
version('develop', branch='develop', submodules=True) version('develop', branch='develop', submodules=False)
version('main', branch='main', submodules=True) version('main', branch='main', submodules=False)
version('2022.03.1', tag='v2022.03.1', submodules=False)
version('2022.03.0', tag='v2022.03.0', submodules=False)
version('6.0.0', tag='v6.0.0', 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.1', tag='v5.0.1', submodules=True)
version('5.0.0', tag='v5.0.0', submodules=True) version('5.0.0', tag='v5.0.0', submodules=True)
@ -70,19 +72,22 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage):
variant('examples', default=True, description='Build Umpire Examples') variant('examples', default=True, description='Build Umpire Examples')
variant('tests', default='none', values=('none', 'basic', 'benchmarks'), variant('tests', default='none', values=('none', 'basic', 'benchmarks'),
multi=False, description='Tests to run') multi=False, description='Tests to run')
variant('device_alloc', default=True, description='Build Umpire Device Allocator')
depends_on('cmake@3.8:', type='build') depends_on('cmake@3.8:', type='build')
depends_on('cmake@3.9:', when='+cuda', type='build') depends_on('cmake@3.9:', when='+cuda', type='build')
depends_on('cmake@:3.20', when='+rocm', type='build') depends_on('cmake@:3.20', when='+rocm', type='build')
depends_on('cmake@3.14:', when='@2022.03.0:')
depends_on('blt@0.5.0:', type='build', when='@6.0.1:') depends_on('blt@0.5.0:', type='build', when='@2022.03.0:')
depends_on('blt@0.4.1', type='build', when='@6.0.0') 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.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('blt@0.3.6:', type='build', when='@:4.1.2')
depends_on('camp', when='@5.0.0:') depends_on('camp', when='@5.0.0:')
depends_on('camp@0.2.2', when='@6.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') depends_on('camp@0.1.0', when='@5.0.0:5.0.1')
depends_on('camp@2022.03.0:', when='@2022.03.0:')
with when('@5.0.0:'): with when('@5.0.0:'):
with when('+cuda'): with when('+cuda'):
@ -99,6 +104,7 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage):
conflicts('+numa', when='@:0.3.2') conflicts('+numa', when='@:0.3.2')
conflicts('~c', when='+fortran', msg='Fortran API requires C API') conflicts('~c', when='+fortran', msg='Fortran API requires C API')
conflicts('+device_alloc', when='@:2022.03.0')
# device allocator exports device code, which requires static libs # device allocator exports device code, which requires static libs
# currently only available for cuda. # currently only available for cuda.
@ -131,12 +137,15 @@ def initconfig_compiler_entries(self):
spec = self.spec spec = self.spec
entries = super(Umpire, self).initconfig_compiler_entries() entries = super(Umpire, self).initconfig_compiler_entries()
option_prefix = "UMPIRE_" if spec.satisfies("@2022.03.0:") else ""
if '+fortran' in spec and self.compiler.fc is not None: if '+fortran' in spec and self.compiler.fc is not None:
entries.append(cmake_cache_option("ENABLE_FORTRAN", True)) entries.append(cmake_cache_option("ENABLE_FORTRAN", True))
else: else:
entries.append(cmake_cache_option("ENABLE_FORTRAN", False)) entries.append(cmake_cache_option("ENABLE_FORTRAN", False))
entries.append(cmake_cache_option("ENABLE_C", '+c' in spec)) entries.append(cmake_cache_option(
"{}ENABLE_C".format(option_prefix), '+c' in spec))
return entries return entries
@ -144,6 +153,8 @@ def initconfig_hardware_entries(self):
spec = self.spec spec = self.spec
entries = super(Umpire, self).initconfig_hardware_entries() entries = super(Umpire, self).initconfig_hardware_entries()
option_prefix = "UMPIRE_" if spec.satisfies("@2022.03.0:") else ""
if '+cuda' in spec: if '+cuda' in spec:
entries.append(cmake_cache_option("ENABLE_CUDA", True)) entries.append(cmake_cache_option("ENABLE_CUDA", True))
@ -158,7 +169,8 @@ def initconfig_hardware_entries(self):
"CMAKE_CUDA_FLAGS", '{0}'.format(flag))) "CMAKE_CUDA_FLAGS", '{0}'.format(flag)))
entries.append(cmake_cache_option( entries.append(cmake_cache_option(
"ENABLE_DEVICE_CONST", spec.satisfies('+deviceconst'))) "{}ENABLE_DEVICE_CONST".format(option_prefix),
spec.satisfies('+deviceconst')))
else: else:
entries.append(cmake_cache_option("ENABLE_CUDA", False)) entries.append(cmake_cache_option("ENABLE_CUDA", False))
@ -180,6 +192,8 @@ def initconfig_package_entries(self):
spec = self.spec spec = self.spec
entries = [] entries = []
option_prefix = "UMPIRE_" if spec.satisfies("@2022.03.0:") else ""
# TPL locations # TPL locations
entries.append("#------------------{0}".format("-" * 60)) entries.append("#------------------{0}".format("-" * 60))
entries.append("# TPLs") entries.append("# TPLs")
@ -188,12 +202,18 @@ def initconfig_package_entries(self):
entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec['blt'].prefix)) entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec['blt'].prefix))
if spec.satisfies('@5.0.0:'): if spec.satisfies('@5.0.0:'):
entries.append(cmake_cache_path("camp_DIR", spec['camp'].prefix)) entries.append(cmake_cache_path("camp_DIR", spec['camp'].prefix))
entries.append(cmake_cache_option("ENABLE_NUMA", '+numa' in spec)) entries.append(cmake_cache_option(
entries.append(cmake_cache_option("ENABLE_OPENMP", '+openmp' in spec)) "{}ENABLE_NUMA".format(option_prefix), '+numa' in spec))
entries.append(cmake_cache_option(
"{}ENABLE_OPENMP".format(option_prefix), '+openmp' in spec))
entries.append(cmake_cache_option( entries.append(cmake_cache_option(
"ENABLE_BENCHMARKS", 'tests=benchmarks' in spec)) "ENABLE_BENCHMARKS", 'tests=benchmarks' in spec))
entries.append(cmake_cache_option("ENABLE_EXAMPLES", '+examples' in spec)) entries.append(cmake_cache_option(
entries.append(cmake_cache_option("ENABLE_DOCS", False)) "{}ENABLE_EXAMPLES".format(option_prefix), '+examples' in spec))
entries.append(cmake_cache_option(
"{}ENABLE_DOCS".format(option_prefix), False))
entries.append(cmake_cache_option("UMPIRE_ENABLE_DEVICE_ALLOCATOR",
"+device_alloc" in spec))
entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec)) entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec))
entries.append(cmake_cache_option("ENABLE_TESTS", 'tests=none' not in spec)) entries.append(cmake_cache_option("ENABLE_TESTS", 'tests=none' not in spec))