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:
parent
5b52685216
commit
99fb4c4a47
@ -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
|
|
||||||
|
|
@ -27,6 +27,7 @@ class Hpctoolkit(AutotoolsPackage):
|
|||||||
test_requires_compiler = True
|
test_requires_compiler = True
|
||||||
|
|
||||||
version("develop", branch="develop")
|
version("develop", branch="develop")
|
||||||
|
version("2023.03.01", commit="9e0daf2ad169f6c7f6c60408475b3c2f71baebbf")
|
||||||
version("2022.10.01", commit="e8a5cc87e8f5ddfd14338459a4106f8e0d162c83")
|
version("2022.10.01", commit="e8a5cc87e8f5ddfd14338459a4106f8e0d162c83")
|
||||||
version("2022.05.15", commit="8ac72d9963c4ed7b7f56acb65feb02fbce353479")
|
version("2022.05.15", commit="8ac72d9963c4ed7b7f56acb65feb02fbce353479")
|
||||||
version("2022.04.15", commit="a92fdad29fc180cc522a9087bba9554a829ee002")
|
version("2022.04.15", commit="a92fdad29fc180cc522a9087bba9554a829ee002")
|
||||||
@ -45,17 +46,19 @@ class Hpctoolkit(AutotoolsPackage):
|
|||||||
|
|
||||||
# Options for MPI and hpcprof-mpi. We always support profiling
|
# Options for MPI and hpcprof-mpi. We always support profiling
|
||||||
# MPI applications. These options add hpcprof-mpi, the MPI
|
# MPI applications. These options add hpcprof-mpi, the MPI
|
||||||
# version of hpcprof. Cray needs a separate option because an
|
# version of hpcprof. Cray is a separate option for old systems
|
||||||
# external MPI module in packages.yaml doesn't work.
|
# where an external MPI module doesn't work.
|
||||||
variant(
|
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(
|
variant(
|
||||||
"cray-static",
|
"cray-static",
|
||||||
default=False,
|
default=False,
|
||||||
description="Build old rev of hpcprof-mpi statically on Cray systems.",
|
description="Build old rev of hpcprof-mpi statically on Cray systems.",
|
||||||
when="@:2022.09",
|
when="@:2022.09+cray",
|
||||||
)
|
)
|
||||||
|
|
||||||
variant(
|
variant(
|
||||||
@ -93,14 +96,16 @@ class Hpctoolkit(AutotoolsPackage):
|
|||||||
)
|
)
|
||||||
|
|
||||||
variant("opencl", default=False, description="Support offloading with OpenCL.")
|
variant("opencl", default=False, description="Support offloading with OpenCL.")
|
||||||
|
|
||||||
variant("rocm", default=False, description="Support ROCM on AMD GPUs.", when="@2022.04:")
|
variant("rocm", default=False, description="Support ROCM on AMD GPUs.", when="@2022.04:")
|
||||||
|
|
||||||
# Other variants.
|
# Other variants.
|
||||||
variant("debug", default=False, description="Build in debug (develop) mode.")
|
variant("debug", default=False, description="Build in debug (develop) mode.")
|
||||||
|
|
||||||
variant("viewer", default=True, description="Include hpcviewer.")
|
variant("viewer", default=True, description="Include hpcviewer.")
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"python", default=False, description="Support unwinding Python source.", when="@2023.03:"
|
||||||
|
)
|
||||||
|
|
||||||
boost_libs = (
|
boost_libs = (
|
||||||
"+atomic +chrono +date_time +filesystem +system +thread +timer"
|
"+atomic +chrono +date_time +filesystem +system +thread +timer"
|
||||||
" +graph +regex +shared +multithreaded visibility=global"
|
" +graph +regex +shared +multithreaded visibility=global"
|
||||||
@ -121,6 +126,7 @@ class Hpctoolkit(AutotoolsPackage):
|
|||||||
depends_on("libiberty+pic", when="@2022.10:")
|
depends_on("libiberty+pic", when="@2022.10:")
|
||||||
depends_on("libmonitor+hpctoolkit~dlopen", when="@2021.00:")
|
depends_on("libmonitor+hpctoolkit~dlopen", when="@2021.00:")
|
||||||
depends_on("libmonitor+hpctoolkit+dlopen", when="@:2020")
|
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("libmonitor@2021.11.08:", when="@2022.01:")
|
||||||
depends_on("libunwind@1.4: +xz+pic")
|
depends_on("libunwind@1.4: +xz+pic")
|
||||||
depends_on("mbedtls+pic", when="@:2022.03")
|
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("memkind", type=("build", "run"), when="@2021.05.01:")
|
||||||
depends_on("papi", when="+papi")
|
depends_on("papi", when="+papi")
|
||||||
depends_on("libpfm4", when="~papi")
|
depends_on("libpfm4", when="~papi")
|
||||||
|
depends_on("mpi", when="+cray")
|
||||||
depends_on("mpi", when="+mpi")
|
depends_on("mpi", when="+mpi")
|
||||||
depends_on("hpcviewer@2022.10:", type="run", when="@2022.10: +viewer")
|
depends_on("hpcviewer@2022.10:", type="run", when="@2022.10: +viewer")
|
||||||
depends_on("hpcviewer", type="run", when="+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
|
# Avoid 'link' dep, we don't actually link, and that adds rpath
|
||||||
# that conflicts with app.
|
# 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("+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")
|
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.
|
conflicts(
|
||||||
patch("gcc10-enum.patch", when="@2020.01.01:2020.08 %gcc@10.0:")
|
"^hip@5.3:", when="@:2022.12", msg="rocm 5.3 requires hpctoolkit 2023.03.01 or later"
|
||||||
|
|
||||||
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:"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 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
|
# Change python to python3 for some old revs that use a script
|
||||||
# with /usr/bin/env python.
|
# with /usr/bin/env python.
|
||||||
depends_on("python@3.4:", type="build", when="@2020.03:2020.08")
|
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.
|
# MPI options for hpcprof-mpi. +cray supersedes +mpi.
|
||||||
if spec.satisfies("+cray"):
|
if spec.satisfies("+cray"):
|
||||||
args.append("--enable-mpi-search=cray")
|
args.append("--enable-mpi-search=cray")
|
||||||
|
Loading…
Reference in New Issue
Block a user