hpctoolkit: add version gpu and variant cuda (#12068)
Add version for 'gpu' and variant for 'cuda'. These are currently available from the 'master-gpu' branch. * hpctoolkit: add version gpu and variant cuda * The gcc >= 4.8.x requirement only applies for dyninst >= 10.x.
This commit is contained in:
parent
8ca90e26d9
commit
6111758b48
@ -18,6 +18,7 @@ class Hpctoolkit(AutotoolsPackage):
|
|||||||
git = "https://github.com/HPCToolkit/hpctoolkit.git"
|
git = "https://github.com/HPCToolkit/hpctoolkit.git"
|
||||||
|
|
||||||
version('develop', branch='master')
|
version('develop', branch='master')
|
||||||
|
version('gpu', branch='master-gpu')
|
||||||
version('2018.12.28', commit='8dbf0d543171ffa9885344f32f23cc6f7f6e39bc')
|
version('2018.12.28', commit='8dbf0d543171ffa9885344f32f23cc6f7f6e39bc')
|
||||||
version('2018.11.05', commit='d0c43e39020e67095b1f1d8bb89b75f22b12aee9')
|
version('2018.11.05', commit='d0c43e39020e67095b1f1d8bb89b75f22b12aee9')
|
||||||
|
|
||||||
@ -37,10 +38,6 @@ class Hpctoolkit(AutotoolsPackage):
|
|||||||
variant('mpi', default=False,
|
variant('mpi', default=False,
|
||||||
description='Build hpcprof-mpi, the MPI version of hpcprof.')
|
description='Build hpcprof-mpi, the MPI version of hpcprof.')
|
||||||
|
|
||||||
variant('all-static', default=False,
|
|
||||||
description='Needed when MPICXX builds static binaries '
|
|
||||||
'for the compute nodes.')
|
|
||||||
|
|
||||||
# We can't build with both PAPI and perfmon for risk of segfault
|
# We can't build with both PAPI and perfmon for risk of segfault
|
||||||
# from mismatched header files (unless PAPI installs the perfmon
|
# from mismatched header files (unless PAPI installs the perfmon
|
||||||
# headers).
|
# headers).
|
||||||
@ -48,11 +45,19 @@ class Hpctoolkit(AutotoolsPackage):
|
|||||||
description='Use PAPI instead of perfmon for access to '
|
description='Use PAPI instead of perfmon for access to '
|
||||||
'the hardware performance counters.')
|
'the hardware performance counters.')
|
||||||
|
|
||||||
boost_libs = '+atomic +graph +regex +serialization' \
|
variant('all-static', default=False,
|
||||||
'+shared +multithreaded'
|
description='Needed when MPICXX builds static binaries '
|
||||||
|
'for the compute nodes.')
|
||||||
|
|
||||||
|
variant('cuda', default=False,
|
||||||
|
description='Support CUDA on NVIDIA GPUs (gpu branch only).')
|
||||||
|
|
||||||
|
boost_libs = '+atomic +chrono +date_time +filesystem +system +thread' \
|
||||||
|
'+timer +graph +regex +shared +multithreaded'
|
||||||
|
|
||||||
depends_on('binutils+libiberty~nls')
|
depends_on('binutils+libiberty~nls')
|
||||||
depends_on('boost' + boost_libs)
|
depends_on('boost' + boost_libs)
|
||||||
|
depends_on('boost' + ' visibility=global', when='@gpu')
|
||||||
depends_on('bzip2')
|
depends_on('bzip2')
|
||||||
depends_on('dyninst')
|
depends_on('dyninst')
|
||||||
depends_on('elfutils~nls')
|
depends_on('elfutils~nls')
|
||||||
@ -65,11 +70,20 @@ class Hpctoolkit(AutotoolsPackage):
|
|||||||
depends_on('xz')
|
depends_on('xz')
|
||||||
depends_on('zlib')
|
depends_on('zlib')
|
||||||
|
|
||||||
|
depends_on('cuda', when='+cuda')
|
||||||
depends_on('intel-xed', when='target=x86_64')
|
depends_on('intel-xed', when='target=x86_64')
|
||||||
|
depends_on('mbedtls+pic', when='@gpu')
|
||||||
depends_on('papi', when='+papi')
|
depends_on('papi', when='+papi')
|
||||||
depends_on('libpfm4', when='~papi')
|
depends_on('libpfm4', when='~papi')
|
||||||
depends_on('mpi', when='+mpi')
|
depends_on('mpi', when='+mpi')
|
||||||
|
|
||||||
|
conflicts('%gcc@:4.7.99', when='^dyninst@10.0.0:',
|
||||||
|
msg='hpctoolkit requires gnu gcc 4.8.x or later')
|
||||||
|
conflicts('%gcc@:4.99.99', when='@gpu',
|
||||||
|
msg='the gpu branch requires gnu gcc 5.x or later')
|
||||||
|
conflicts('+cuda', when='@2018.0.0:',
|
||||||
|
msg='cuda is only available on the gpu branch')
|
||||||
|
|
||||||
flag_handler = AutotoolsPackage.build_system_flags
|
flag_handler = AutotoolsPackage.build_system_flags
|
||||||
|
|
||||||
def configure_args(self):
|
def configure_args(self):
|
||||||
@ -91,6 +105,16 @@ def configure_args(self):
|
|||||||
'--with-zlib=%s' % spec['zlib'].prefix,
|
'--with-zlib=%s' % spec['zlib'].prefix,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if '+cuda' in spec:
|
||||||
|
cupti_path = join_path(spec['cuda'].prefix, 'extras', 'CUPTI')
|
||||||
|
args.extend([
|
||||||
|
'--with-cuda=%s' % spec['cuda'].prefix,
|
||||||
|
'--with-cupti=%s' % cupti_path,
|
||||||
|
])
|
||||||
|
|
||||||
|
if spec.satisfies('@gpu'):
|
||||||
|
args.append('--with-mbedtls=%s' % spec['mbedtls'].prefix)
|
||||||
|
|
||||||
if target == 'x86_64':
|
if target == 'x86_64':
|
||||||
args.append('--with-xed=%s' % spec['intel-xed'].prefix)
|
args.append('--with-xed=%s' % spec['intel-xed'].prefix)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user