From e2088b599e69f3a863b65e06c534ccb611a119f0 Mon Sep 17 00:00:00 2001 From: jalcaraz Date: Thu, 25 Apr 2024 01:35:41 +0200 Subject: [PATCH] [TAU Package] Updates for rocm (#43790) * Updates for rocm Updated for rocm@6 Added conflict between rocprofiler and roctracer. Request either +rocprofiler or +roctracer when +rocm. In this case, it automatically builds for one, instead of displaying the message. Request +rocm when using either +rocprofiler or +roctracer. In this case, it automatically builds with +rocm, instead of displaying the message. Disabled the tests. Will update them with the new test method. * [@spackbot] updating style on behalf of jordialcaraz --------- Co-authored-by: jordialcaraz --- .../repos/builtin/packages/tau/package.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/var/spack/repos/builtin/packages/tau/package.py b/var/spack/repos/builtin/packages/tau/package.py index 83e398b0f6..2da89966d0 100644 --- a/var/spack/repos/builtin/packages/tau/package.py +++ b/var/spack/repos/builtin/packages/tau/package.py @@ -140,6 +140,8 @@ class Tau(Package): depends_on("roctracer-dev", when="+roctracer") depends_on("hsa-rocr-dev", when="+rocm") depends_on("rocm-smi-lib", when="@2.32.1: +rocm") + depends_on("rocm-core", when="@2.34: +rocm") + depends_on("hip", when="@2.34: +roctracer") depends_on("java", type="run") # for paraprof depends_on("oneapi-level-zero", when="+level_zero") depends_on("dyninst@12.3.0:", when="+dyninst") @@ -155,6 +157,18 @@ class Tau(Package): conflicts("+disable-no-pie", when="@:2.33.2") patch("unwind.patch", when="@2.29.0") + conflicts("+rocprofiler", when="+roctracer", msg="Use either rocprofiler or roctracer") + requires("+rocm", when="+rocprofiler", msg="Rocprofiler requires ROCm") + requires("+rocm", when="+roctracer", msg="Roctracer requires ROCm") + + requires( + "+rocprofiler", + "+roctracer", + policy="one_of", + when="+rocm", + msg="When using ROCm, you need to select either +rocprofiler or +roctracer", + ) + filter_compiler_wrappers("Makefile", relative_root="include") filter_compiler_wrappers("Makefile.tau*", relative_root="lib") filter_compiler_wrappers("Makefile.tau*", relative_root="lib64") @@ -316,12 +330,16 @@ def install(self, spec, prefix): options.append("-rocm=%s" % spec["hsa-rocr-dev"].prefix) if spec.satisfies("@2.32.1"): options.append("-rocmsmi=%s" % spec["rocm-smi-lib"].prefix) + if spec.satisfies("@2.34:"): + options.append("-rocm-core=%s" % spec["rocm-core"].prefix) if "+rocprofiler" in spec: options.append("-rocprofiler=%s" % spec["rocprofiler-dev"].prefix) if "+roctracer" in spec: options.append("-roctracer=%s" % spec["roctracer-dev"].prefix) + if spec.satisfies("@2.34:"): + options.append("-hip=%s" % spec["hip"].prefix) if "+adios2" in spec: options.append("-adios=%s" % spec["adios2"].prefix) @@ -546,6 +564,8 @@ def _run_python_test(self, test_dir): ) def test(self): + # Temporarily disable tests, will update them with the new test method. + return test_dir = self.test_suite.current_test_cache_dir # Run mm test program pulled from the build if "+ompt" in self.spec: