From 878e6b6712f246eeafb0495cb5fff3dabe0cab16 Mon Sep 17 00:00:00 2001 From: "Mark W. Krentel" Date: Mon, 25 Apr 2022 09:40:00 -0500 Subject: hpctoolkit: add version 2022.04.15, update recipe (#30258) 1. update for rocm 4.5 and drop support for earlier rocm. 2. no longer use mbedtls or gotcha, they are only for old revs. 3. update version requirements for dyninst and libmonitor 4. begin to deprecate old versions --- .../repos/builtin/packages/hpctoolkit/package.py | 46 ++++++++++++++-------- .../builtin/packages/hpctoolkit/python3.patch | 12 ++++++ 2 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 var/spack/repos/builtin/packages/hpctoolkit/python3.patch (limited to 'var') diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py index 3961446b9d..87c63be137 100644 --- a/var/spack/repos/builtin/packages/hpctoolkit/package.py +++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py @@ -26,6 +26,8 @@ class Hpctoolkit(AutotoolsPackage): version('develop', branch='develop') version('master', branch='master') + + version('2022.04.15', commit='a92fdad29fc180cc522a9087bba9554a829ee002') version('2022.01.15', commit='0238e9a052a696707e4e65b2269f342baad728ae') version('2021.10.15', commit='a8f289e4dc87ff98e05cfc105978c09eb2f5ea16') version('2021.05.15', commit='004ea0c2aea6a261e7d5d216c24f8a703fc6c408') @@ -35,9 +37,9 @@ class Hpctoolkit(AutotoolsPackage): version('2020.06.12', commit='ac6ae1156e77d35596fea743ed8ae768f7222f19') version('2020.03.01', commit='94ede4e6fa1e05e6f080be8dc388240ea027f769') version('2019.12.28', commit='b4e1877ff96069fd8ed0fdf0e36283a5b4b62240') - version('2019.08.14', commit='6ea44ed3f93ede2d0a48937f288a2d41188a277c') - version('2018.12.28', commit='8dbf0d543171ffa9885344f32f23cc6f7f6e39bc') - version('2018.11.05', commit='d0c43e39020e67095b1f1d8bb89b75f22b12aee9') + version('2019.08.14', commit='6ea44ed3f93ede2d0a48937f288a2d41188a277c', deprecated=True) + version('2018.12.28', commit='8dbf0d543171ffa9885344f32f23cc6f7f6e39bc', deprecated=True) + version('2018.11.05', commit='d0c43e39020e67095b1f1d8bb89b75f22b12aee9', deprecated=True) # Options for MPI and hpcprof-mpi. We always support profiling # MPI applications. These options add hpcprof-mpi, the MPI @@ -66,8 +68,7 @@ class Hpctoolkit(AutotoolsPackage): description='Support CUDA on NVIDIA GPUs (2020.03.01 or later).') variant('rocm', default=False, - description='Support ROCM on AMD GPUs, requires ROCM as ' - 'external packages (2021.03.01 or later).') + description='Support ROCM on AMD GPUs (2022.04.15 or later).') variant('debug', default=False, description='Build in debug (develop) mode.') @@ -84,16 +85,18 @@ class Hpctoolkit(AutotoolsPackage): depends_on('binutils@:2.33.1 +libiberty~nls', type='link', when='@:2020.03') depends_on('boost' + boost_libs) depends_on('bzip2+shared', type='link') - depends_on('dyninst@10.2.0:', when='@2021.00:') + depends_on('dyninst@12.1.0:', when='@2022.0:') + depends_on('dyninst@10.2.0:', when='@2021.0:2021.12') depends_on('dyninst@9.3.2:', when='@:2020') depends_on('elfutils+bzip2+xz~nls', type='link') - depends_on('gotcha@1.0.3:') + depends_on('gotcha@1.0.3:', when='@:2020.09') depends_on('intel-tbb+shared') depends_on('libdwarf') depends_on('libmonitor+hpctoolkit~dlopen', when='@2021.00:') depends_on('libmonitor+hpctoolkit+dlopen', when='@:2020') + depends_on('libmonitor@2021.11.08:', when='@2022.01:') depends_on('libunwind@1.4: +xz+pic') - depends_on('mbedtls+pic') + depends_on('mbedtls+pic', when='@:2022.03') depends_on('xerces-c transcoder=iconv') depends_on('xz+pic', type='link') depends_on('zlib+shared') @@ -106,9 +109,10 @@ class Hpctoolkit(AutotoolsPackage): depends_on('mpi', when='+mpi') depends_on('hpcviewer', type='run', when='+viewer') - depends_on('hip', when='+rocm') - depends_on('rocm-dbgapi', when='+rocm') - depends_on('roctracer-dev', when='+rocm') + depends_on('hip@4.5:', when='+rocm') + depends_on('hsa-rocr-dev@4.5:', when='+rocm') + depends_on('roctracer-dev@4.5:', when='+rocm') + depends_on('rocprofiler-dev@4.5:', when='+rocm') conflicts('%gcc@:4.7', when='^dyninst@10.0.0:', msg='hpctoolkit requires gnu gcc 4.8.x or later') @@ -122,8 +126,8 @@ class Hpctoolkit(AutotoolsPackage): conflicts('+cuda', when='@:2019', msg='cuda requires 2020.03.01 or later') - conflicts('+rocm', when='@:2020', - msg='rocm requires 2021.03.01 or later') + conflicts('+rocm', when='@:2022.03', + msg='rocm requires 2022.04.15 or later') conflicts('^binutils@2.35:2.35.1', msg='avoid binutils 2.35 and 2.35.1 (spews errors)') @@ -135,6 +139,11 @@ class Hpctoolkit(AutotoolsPackage): sha256='c8371b929f45dafae37d2ef17880fcfb86de893beebaec501a282bc04b61ef64', when='@2019.08.01:2021.03 %gcc@11.0:') + # Change python to python3 for some old revs that use a script + # with /usr/bin/env python. + depends_on('python@3.4:', type='build', when='@2020.03:2020.08') + patch('python3.patch', when='@2020.03:2020.08') + flag_handler = AutotoolsPackage.build_system_flags def configure_args(self): @@ -146,12 +155,10 @@ class Hpctoolkit(AutotoolsPackage): '--with-bzip=%s' % spec['bzip2'].prefix, '--with-dyninst=%s' % spec['dyninst'].prefix, '--with-elfutils=%s' % spec['elfutils'].prefix, - '--with-gotcha=%s' % spec['gotcha'].prefix, '--with-tbb=%s' % spec['intel-tbb'].prefix, '--with-libdwarf=%s' % spec['libdwarf'].prefix, '--with-libmonitor=%s' % spec['libmonitor'].prefix, '--with-libunwind=%s' % spec['libunwind'].prefix, - '--with-mbedtls=%s' % spec['mbedtls'].prefix, '--with-xerces=%s' % spec['xerces-c'].prefix, '--with-lzma=%s' % spec['xz'].prefix, '--with-zlib=%s' % spec['zlib'].prefix, @@ -160,9 +167,15 @@ class Hpctoolkit(AutotoolsPackage): if '+cuda' in spec: args.append('--with-cuda=%s' % spec['cuda'].prefix) + if spec.satisfies('@:2020.09'): + args.append('--with-gotcha=%s' % spec['gotcha'].prefix) + if spec.target.family == 'x86_64': args.append('--with-xed=%s' % spec['intel-xed'].prefix) + if spec.satisfies('@:2022.03'): + args.append('--with-mbedtls=%s' % spec['mbedtls'].prefix) + if spec.satisfies('@2021.05.01:'): args.append('--with-memkind=%s' % spec['memkind'].prefix) @@ -174,8 +187,9 @@ class Hpctoolkit(AutotoolsPackage): if spec.satisfies('+rocm'): args.extend([ '--with-rocm-hip=%s' % spec['hip'].prefix, - '--with-rocm-dbgapi=%s' % spec['rocm-dbgapi'].prefix, + '--with-rocm-hsa=%s' % spec['hsa-rocr-dev'].prefix, '--with-rocm-tracer=%s' % spec['roctracer-dev'].prefix, + '--with-rocm-profiler=%s' % spec['rocprofiler-dev'].prefix, ]) # MPI options for hpcprof-mpi. diff --git a/var/spack/repos/builtin/packages/hpctoolkit/python3.patch b/var/spack/repos/builtin/packages/hpctoolkit/python3.patch new file mode 100644 index 0000000000..ac829bdac6 --- /dev/null +++ b/var/spack/repos/builtin/packages/hpctoolkit/python3.patch @@ -0,0 +1,12 @@ +Some older revs call python instead of python3. + +diff --git a/src/tool/hpcstruct/stringify.py b/src/tool/hpcstruct/stringify.py +index 954f87593..c31984d21 100755 +--- a/src/tool/hpcstruct/stringify.py ++++ b/src/tool/hpcstruct/stringify.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + import sys + import re -- cgit v1.2.3-60-g2f50