[Offload][CI] Convert openmp-offload-amdgpu staging bots to ScriptedBuilder (#174991)
Convert the first AMDGPU buildbots to use the ScriptedBuilder introduced llvm-zorg. For the motivation, see https://github.com/llvm/llvm-zorg/pull/648. Since the production buildbot still needs to be restarted for ScriptedBuilder to work, only convert the builders that are currently in staging for now. These are: * openmp-offload-amdgpu-runtime * openmp-offload-amdgpu-clang-flang Both of them happen to be OpenMPBuilder.getOpenMPCMakeBuildFactory-based builders before this change. They also set an environment variable that the previous ScriptedBuilder did not, so we are adding support. The corresponding llvm-zorg change is https://github.com/llvm/llvm-zorg/pull/697.
This commit is contained in:
parent
2070646c2e
commit
f853880300
@ -114,14 +114,22 @@ def report_platform():
|
||||
report_prog_version("LLD", ["ld.lld", "--version"])
|
||||
|
||||
|
||||
def run_command(cmd, shell=False, **kwargs):
|
||||
def run_command(cmd, shell=False, env=None, add_env=None, **kwargs):
|
||||
"""
|
||||
Report which command is being run, then execute it using
|
||||
subprocess.check_call.
|
||||
subprocess.check_call. Any arguments are forwarded to check_call.
|
||||
|
||||
Additional Parameters
|
||||
----------
|
||||
add_env : dict
|
||||
Like env, but adds to the original environment instead of replacing it
|
||||
"""
|
||||
report(f"Running: {cmd if shell else shjoin(cmd)}")
|
||||
sys.stderr.flush()
|
||||
subprocess.check_call(cmd, shell=shell, **kwargs)
|
||||
if add_env:
|
||||
env = dict(os.environ) if env is None else dict(env)
|
||||
env.update(add_env)
|
||||
subprocess.check_call(cmd, shell=shell, env=env, **kwargs)
|
||||
|
||||
|
||||
def _remove_readonly(func, path, _):
|
||||
|
||||
1
offload/ci/.gitignore
vendored
Normal file
1
offload/ci/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/*.workdir
|
||||
71
offload/ci/openmp-offload-amdgpu-clang-flang.py
Executable file
71
offload/ci/openmp-offload-amdgpu-clang-flang.py
Executable file
@ -0,0 +1,71 @@
|
||||
#! /usr/bin/env python3
|
||||
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
# See https://llvm.org/LICENSE.txt for license information.
|
||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Adapt to location in source tree
|
||||
llvmsrcroot = os.path.normpath(f"{__file__}/../../..")
|
||||
|
||||
sys.path.insert(0, os.path.join(llvmsrcroot, ".ci/buildbot"))
|
||||
import worker
|
||||
|
||||
llvmbuilddir = "llvm.build"
|
||||
llvminstalldir = "llvm.inst"
|
||||
|
||||
with worker.run(
|
||||
__file__,
|
||||
llvmsrcroot,
|
||||
clobberpaths=[llvmbuilddir, llvminstalldir],
|
||||
workerjobs=64,
|
||||
) as w:
|
||||
with w.step("configure-openmp", halt_on_fail=True):
|
||||
w.run_command(
|
||||
[
|
||||
"cmake",
|
||||
f"-S{w.in_llvmsrc('llvm')}",
|
||||
f"-B{llvmbuilddir}",
|
||||
"-GNinja",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
"-DLLVM_ENABLE_ASSERTIONS=ON",
|
||||
f"-DLLVM_LIT_ARGS=-vv --show-unsupported --show-xfail -j {w.jobs} --time-tests --timeout 100",
|
||||
f"-DCMAKE_INSTALL_PREFIX={w.in_workdir(llvminstalldir)}",
|
||||
"-DCLANG_DEFAULT_LINKER=lld",
|
||||
"-DLLVM_TARGETS_TO_BUILD=X86;AMDGPU",
|
||||
"-DLLVM_ENABLE_ASSERTIONS=ON",
|
||||
"-DCMAKE_C_COMPILER_LAUNCHER=ccache",
|
||||
"-DCMAKE_CXX_COMPILER_LAUNCHER=ccache",
|
||||
"-DFLANG_RUNTIME_F128_MATH_LIB=libquadmath",
|
||||
"-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON",
|
||||
"-DCMAKE_CXX_STANDARD=17",
|
||||
"-DBUILD_SHARED_LIBS=ON",
|
||||
"-DLIBOMPTARGET_PLUGINS_TO_BUILD=amdgpu;host",
|
||||
"-DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=compiler-rt;openmp",
|
||||
"-DLLVM_RUNTIME_TARGETS=default;amdgcn-amd-amdhsa",
|
||||
"-DCOMPILER_RT_BUILD_ORC=OFF",
|
||||
"-DCOMPILER_RT_BUILD_XRAY=OFF",
|
||||
"-DCOMPILER_RT_BUILD_MEMPROF=OFF",
|
||||
"-DCOMPILER_RT_BUILD_LIBFUZZER=OFF",
|
||||
"-DCOMPILER_RT_BUILD_SANITIZERS=ON",
|
||||
"-DLLVM_ENABLE_PROJECTS=clang;lld;mlir;flang;llvm",
|
||||
"-DLLVM_ENABLE_RUNTIMES=flang-rt;offload;compiler-rt;openmp",
|
||||
]
|
||||
)
|
||||
|
||||
with w.step("compile-openmp", halt_on_fail=True):
|
||||
w.run_ninja(builddir=llvmbuilddir, ccache_stats=True)
|
||||
|
||||
with w.step("test-openmp"):
|
||||
w.run_ninja(
|
||||
["check-openmp"], add_env={"HSA_ENABLE_SDMA": "0"}, builddir=llvmbuilddir
|
||||
)
|
||||
|
||||
with w.step("Add check check-offload"):
|
||||
w.run_ninja(
|
||||
["check-offload"], add_env={"HSA_ENABLE_SDMA": "0"}, builddir=llvmbuilddir
|
||||
)
|
||||
|
||||
with w.step("LLVM: Install", halt_on_fail=True):
|
||||
w.run_ninja(["install"], builddir=llvmbuilddir)
|
||||
60
offload/ci/openmp-offload-amdgpu-runtime.py
Executable file
60
offload/ci/openmp-offload-amdgpu-runtime.py
Executable file
@ -0,0 +1,60 @@
|
||||
#! /usr/bin/env python3
|
||||
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
# See https://llvm.org/LICENSE.txt for license information.
|
||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Adapt to location in source tree
|
||||
llvmsrcroot = os.path.normpath(f"{__file__}/../../..")
|
||||
|
||||
sys.path.insert(0, os.path.join(llvmsrcroot, ".ci/buildbot"))
|
||||
import worker
|
||||
|
||||
llvmbuilddir = "llvm.build"
|
||||
llvminstalldir = "llvm.inst"
|
||||
|
||||
with worker.run(
|
||||
__file__,
|
||||
llvmsrcroot,
|
||||
clobberpaths=[llvmbuilddir, llvminstalldir],
|
||||
workerjobs=32,
|
||||
) as w:
|
||||
with w.step("configure-openmp", halt_on_fail=True):
|
||||
w.run_command(
|
||||
[
|
||||
"cmake",
|
||||
f"-S{w.in_llvmsrc('llvm')}",
|
||||
f"-B{llvmbuilddir}",
|
||||
"-GNinja",
|
||||
"-DCMAKE_BUILD_TYPE=Release",
|
||||
"-DLLVM_ENABLE_ASSERTIONS=ON",
|
||||
f"-DLLVM_LIT_ARGS=-vv --show-unsupported --show-xfail -j {w.jobs} --time-tests --timeout 100",
|
||||
f"-DCMAKE_INSTALL_PREFIX={w.in_workdir(llvminstalldir)}",
|
||||
"-DCLANG_DEFAULT_LINKER=lld",
|
||||
"-DLLVM_TARGETS_TO_BUILD=X86;AMDGPU",
|
||||
"-DCMAKE_C_COMPILER_LAUNCHER=ccache",
|
||||
"-DCMAKE_CXX_COMPILER_LAUNCHER=ccache",
|
||||
"-DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=compiler-rt;openmp",
|
||||
"-DLLVM_RUNTIME_TARGETS=default;amdgcn-amd-amdhsa",
|
||||
"-DLLVM_ENABLE_PROJECTS=clang;lld;llvm",
|
||||
"-DLLVM_ENABLE_RUNTIMES=offload;compiler-rt;openmp",
|
||||
]
|
||||
)
|
||||
|
||||
with w.step("compile-openmp", halt_on_fail=True):
|
||||
w.run_ninja(builddir=llvmbuilddir, ccache_stats=True)
|
||||
|
||||
with w.step("test-openmp"):
|
||||
w.run_ninja(
|
||||
["check-openmp"], add_env={"HSA_ENABLE_SDMA": "0"}, builddir=llvmbuilddir
|
||||
)
|
||||
|
||||
with w.step("Add check check-offload"):
|
||||
w.run_ninja(
|
||||
["check-offload"], add_env={"HSA_ENABLE_SDMA": "0"}, builddir=llvmbuilddir
|
||||
)
|
||||
|
||||
with w.step("LLVM: Install", halt_on_fail=True):
|
||||
w.run_ninja(["install"], builddir=llvmbuilddir)
|
||||
Loading…
x
Reference in New Issue
Block a user