hpctoolkit: add version 2023.03.01, add python variant (#35662)

1. add version 2023.03.01
 2. add variant 'python' that supports unwinding python source
 3. clean up some things with the cray variant
 4. require the latest libmonitor
 5. fix sha256 checksum for url patch
 6. delete rocm 5.3 from older versions
This commit is contained in:
Mark W. Krentel 2023-03-01 02:44:32 -06:00 committed by GitHub
parent 5b52685216
commit 99fb4c4a47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 105 deletions

View File

@ -1,91 +0,0 @@
From 411d62544717873432c49ef45c7cb99cc5de2fb8 Mon Sep 17 00:00:00 2001
From: "Mark W. Krentel" <krentel@rice.edu>
Date: Thu, 15 Dec 2022 16:43:43 -0600
Subject: [PATCH] Add a temporary hack to allow both ROCM 5.2/5.3 to build
cleanly.
There were some corner cases (build 5.3 pieces from spack and feed
into autotools) that didn't work. After the next release, I will want
to rework ROCM configure more extensively.
---
configure | 21 +++++++++++++--------
configure.ac | 17 +++++++++++------
2 files changed, 24 insertions(+), 14 deletions(-)
diff --git a/configure b/configure
index 1760e678e8..814376b3bd 100755
--- a/configure
+++ b/configure
@@ -23891,10 +23891,13 @@ $as_echo "$as_me: found $ROCM/rocprofiler/lib/librocprofiler64.so" >&6;}
fi
# HSA
- if test -f "$ROCM/include/hsa/hsa.h" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: found $ROCM/include/hsa/hsa.h" >&5
-$as_echo "$as_me: found $ROCM/include/hsa/hsa.h" >&6;}
- ROCM_HSA_IFLAGS="-I$ROCM/include/hsa"
+ # FIXME: as of rocm 5.2/5.3, this was not fully switched over,
+ # so temporarily use both paths.
+ if test -f "$ROCM/include/hsa/hsa.h" || test -f "$ROCM/include/hsa.h"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: found $ROCM: hsa.h" >&5
+$as_echo "$as_me: found $ROCM: hsa.h" >&6;}
+ ROCM_HSA_IFLAGS="-I$ROCM/include -I$ROCM/include/hsa"
ROCM_HSA_INC_MESG="$ROCM/hsa"
found=yes
fi
@@ -24020,10 +24023,12 @@ case "$ROCM_HSA" in
require_rocm=yes
found=no
- if test -f "$ROCM_HSA/include/hsa/hsa.h" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: found $ROCM_HSA/include/hsa/hsa.h" >&5
-$as_echo "$as_me: found $ROCM_HSA/include/hsa/hsa.h" >&6;}
- ROCM_HSA_IFLAGS="-I$ROCM_HSA/include/hsa"
+ # FIXME: again, temporarily use both paths
+ if test -f "$ROCM_HSA/include/hsa/hsa.h" || test -f "$ROCM_HSA/include/hsa.h"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: found $ROCM_HSA: hsa.h" >&5
+$as_echo "$as_me: found $ROCM_HSA: hsa.h" >&6;}
+ ROCM_HSA_IFLAGS="-I$ROCM_HSA/include -I$ROCM_HSA/include/hsa"
ROCM_HSA_INC_MESG="$ROCM_HSA"
found=yes
fi
diff --git a/configure.ac b/configure.ac
index a14b15835f..9d5ed46134 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4885,9 +4885,12 @@ case "$ROCM" in
fi
# HSA
- if test -f "$ROCM/include/hsa/hsa.h" ; then
- AC_MSG_NOTICE([found $ROCM/include/hsa/hsa.h])
- ROCM_HSA_IFLAGS="-I$ROCM/include/hsa"
+ # FIXME: as of rocm 5.2/5.3, this was not fully switched over,
+ # so temporarily use both paths.
+ if test -f "$ROCM/include/hsa/hsa.h" || test -f "$ROCM/include/hsa.h"
+ then
+ AC_MSG_NOTICE([found $ROCM: hsa.h])
+ ROCM_HSA_IFLAGS="-I$ROCM/include -I$ROCM/include/hsa"
ROCM_HSA_INC_MESG="$ROCM/hsa"
found=yes
fi
@@ -5002,9 +5005,11 @@ case "$ROCM_HSA" in
require_rocm=yes
found=no
- if test -f "$ROCM_HSA/include/hsa/hsa.h" ; then
- AC_MSG_NOTICE([found $ROCM_HSA/include/hsa/hsa.h])
- ROCM_HSA_IFLAGS="-I$ROCM_HSA/include/hsa"
+ # FIXME: again, temporarily use both paths
+ if test -f "$ROCM_HSA/include/hsa/hsa.h" || test -f "$ROCM_HSA/include/hsa.h"
+ then
+ AC_MSG_NOTICE([found $ROCM_HSA: hsa.h])
+ ROCM_HSA_IFLAGS="-I$ROCM_HSA/include -I$ROCM_HSA/include/hsa"
ROCM_HSA_INC_MESG="$ROCM_HSA"
found=yes
fi
--
GitLab

View File

@ -27,6 +27,7 @@ class Hpctoolkit(AutotoolsPackage):
test_requires_compiler = True
version("develop", branch="develop")
version("2023.03.01", commit="9e0daf2ad169f6c7f6c60408475b3c2f71baebbf")
version("2022.10.01", commit="e8a5cc87e8f5ddfd14338459a4106f8e0d162c83")
version("2022.05.15", commit="8ac72d9963c4ed7b7f56acb65feb02fbce353479")
version("2022.04.15", commit="a92fdad29fc180cc522a9087bba9554a829ee002")
@ -45,17 +46,19 @@ class Hpctoolkit(AutotoolsPackage):
# Options for MPI and hpcprof-mpi. We always support profiling
# MPI applications. These options add hpcprof-mpi, the MPI
# version of hpcprof. Cray needs a separate option because an
# external MPI module in packages.yaml doesn't work.
# version of hpcprof. Cray is a separate option for old systems
# where an external MPI module doesn't work.
variant(
"cray", default=False, description="Build hpcprof-mpi for Cray systems (requires --dirty)."
"cray",
default=False,
description="Build hpcprof-mpi for Cray systems (may require --dirty).",
)
variant(
"cray-static",
default=False,
description="Build old rev of hpcprof-mpi statically on Cray systems.",
when="@:2022.09",
when="@:2022.09+cray",
)
variant(
@ -93,14 +96,16 @@ class Hpctoolkit(AutotoolsPackage):
)
variant("opencl", default=False, description="Support offloading with OpenCL.")
variant("rocm", default=False, description="Support ROCM on AMD GPUs.", when="@2022.04:")
# Other variants.
variant("debug", default=False, description="Build in debug (develop) mode.")
variant("viewer", default=True, description="Include hpcviewer.")
variant(
"python", default=False, description="Support unwinding Python source.", when="@2023.03:"
)
boost_libs = (
"+atomic +chrono +date_time +filesystem +system +thread +timer"
" +graph +regex +shared +multithreaded visibility=global"
@ -121,6 +126,7 @@ class Hpctoolkit(AutotoolsPackage):
depends_on("libiberty+pic", when="@2022.10:")
depends_on("libmonitor+hpctoolkit~dlopen", when="@2021.00:")
depends_on("libmonitor+hpctoolkit+dlopen", when="@:2020")
depends_on("libmonitor@2023.02.13:", when="@2023.01:")
depends_on("libmonitor@2021.11.08:", when="@2022.01:")
depends_on("libunwind@1.4: +xz+pic")
depends_on("mbedtls+pic", when="@:2022.03")
@ -139,9 +145,11 @@ class Hpctoolkit(AutotoolsPackage):
depends_on("memkind", type=("build", "run"), when="@2021.05.01:")
depends_on("papi", when="+papi")
depends_on("libpfm4", when="~papi")
depends_on("mpi", when="+cray")
depends_on("mpi", when="+mpi")
depends_on("hpcviewer@2022.10:", type="run", when="@2022.10: +viewer")
depends_on("hpcviewer", type="run", when="+viewer")
depends_on("python@3.10:", type=("build", "run"), when="+python")
# Avoid 'link' dep, we don't actually link, and that adds rpath
# that conflicts with app.
@ -159,16 +167,14 @@ class Hpctoolkit(AutotoolsPackage):
conflicts("+cray", when="@2022.10.01", msg="hpcprof-mpi is not available in 2022.10.01")
conflicts("+mpi", when="@2022.10.01", msg="hpcprof-mpi is not available in 2022.10.01")
# Fix the build for old revs with gcc 10.x.
patch("gcc10-enum.patch", when="@2020.01.01:2020.08 %gcc@10.0:")
patch("511afd95b01d743edc5940c84e0079f462b2c23e.patch", when="@2019.08.01:2021.03 %gcc@11.0:")
# Update configure for rocm 5.3.0
patch(
"411d62544717873432c49ef45c7cb99cc5de2fb8.patch", when="@2022.04:2022.10 +rocm ^hip@5.3.0:"
conflicts(
"^hip@5.3:", when="@:2022.12", msg="rocm 5.3 requires hpctoolkit 2023.03.01 or later"
)
# Fix the build for old revs with gcc 10.x and 11.x.
patch("gcc10-enum.patch", when="@2020.01.01:2020.08 %gcc@10.0:")
patch("511afd95b01d743edc5940c84e0079f462b2c23e.patch", 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")
@ -249,6 +255,10 @@ def configure_args(self):
]
)
if spec.satisfies("+python"):
p3config = join_path(spec["python"].prefix, "bin", "python3-config")
args.append("--with-python=%s" % p3config)
# MPI options for hpcprof-mpi. +cray supersedes +mpi.
if spec.satisfies("+cray"):
args.append("--enable-mpi-search=cray")