diff --git a/zorg/buildbot/builders/annotated/hip-build.sh b/zorg/buildbot/builders/annotated/hip-build.sh index 83b4b095e..fa31c97c3 100755 --- a/zorg/buildbot/builders/annotated/hip-build.sh +++ b/zorg/buildbot/builders/annotated/hip-build.sh @@ -84,7 +84,7 @@ cmake -G Ninja \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_VERBOSE_MAKEFILE=1 \ - -DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" \ + -DLLVM_TARGETS_TO_BUILD="AMDGPU;X86;SPIRV" \ -DLLVM_ENABLE_PROJECTS="clang;lld;clang-tools-extra" \ -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind" \ -DCLANG_DEFAULT_LINKER=lld \ diff --git a/zorg/buildbot/builders/annotated/hip-tpl.py b/zorg/buildbot/builders/annotated/hip-tpl.py index 48083f87b..9a9047c61 100755 --- a/zorg/buildbot/builders/annotated/hip-tpl.py +++ b/zorg/buildbot/builders/annotated/hip-tpl.py @@ -2,6 +2,7 @@ import argparse import os +import re import subprocess import sys import traceback @@ -9,8 +10,27 @@ import tempfile from contextlib import contextmanager +def amdgpu_target(target): + if re.match("^(gfx[0-9a-f]+|amdgcnspirv)$", target): + return target + raise ValueError def main(argv): + parser = argparse.ArgumentParser(prog=os.path.basename(__file__)) + parser.add_argument("--offload-arch", action='append', type=amdgpu_target, + help="Offload architectures to be forwarded to AMDGPU_ARCHS " + "during the test suite configuration. This option can appear multiple times. " + "e.g. '--offload-arch gfx90a --offload-arch gfx1010 --offload-arch amdgcnspirv'") + + parsed_args = parser.parse_args(sys.argv[1:]) + + if parsed_args.offload_arch is None: + DEFAULT_OFFLOAD_ARCH = "gfx90a" + offload_arch_cmake_arg = DEFAULT_OFFLOAD_ARCH + else: + offload_arch = set(parsed_args.offload_arch) + offload_arch_cmake_arg = ";".join(sorted(offload_arch)) + source_dir = os.path.join("..", "llvm-project") test_suite_source_dir = os.path.join("/opt/botworker/llvm", "llvm-test-suite") test_suite_build_dir = "TS-build" @@ -63,8 +83,7 @@ def main(argv): test_suite_cmake_args = ["-GNinja", "-B", test_suite_build_dir, "-S", "."] test_suite_cmake_args.append("-DTEST_SUITE_EXTERNALS_DIR=/opt/botworker/llvm/External") - # XXX: Use some utility to determine arch? - test_suite_cmake_args.append("-DAMDGPU_ARCHS=gfx90a") + test_suite_cmake_args.append(f"-DAMDGPU_ARCHS={offload_arch_cmake_arg}") test_suite_cmake_args.append("-DTEST_SUITE_SUBDIRS=External") # Giving only this flag enables to pull the default Kokkos version. test_suite_cmake_args.append("-DEXTERNAL_HIP_TESTS_KOKKOS=ON")