Skip to content

Commit

Permalink
[Offload] Adds buildbot for CMake cache file
Browse files Browse the repository at this point in the history
The buildbot uses the offload/cmake/cache/AMDGPUBot.cmake file to create
the build config. It uses an annotated builder for that and only
performs the build step as most of the post-commit issues are build
problems and not test errors.
  • Loading branch information
jplehr committed Dec 11, 2024
1 parent c2fe2ec commit c4b47a2
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 27 deletions.
34 changes: 7 additions & 27 deletions buildbot/osuosl/master/config/builders.py
Original file line number Diff line number Diff line change
Expand Up @@ -1878,35 +1878,15 @@
add_openmp_lit_args=["--time-tests", "--timeout 100"],
)},

{'name' : "offload-runtime-openmp-amdgpu",
{'name' : "amdgpu-offload-ubuntu-22-cmake-build-only",
'tags' : ["openmp"],
'workernames' : ["rocm-worker-hw-03"],
'builddir': "offload-runtime-openmp-amdgpu",
'factory' : OpenMPBuilder.getOpenMPCMakeBuildFactory(
clean=True,
enable_runtimes=['openmp', 'offload'],
depends_on_projects=['llvm', 'clang', 'flang', 'lld', 'offload', 'openmp'],
extraCmakeArgs=[
"-DCMAKE_BUILD_TYPE=Release",
"-DCLANG_DEFAULT_LINKER=lld",
"-DLLVM_TARGETS_TO_BUILD=X86;AMDGPU",
"-DLLVM_ENABLE_ASSERTIONS=ON",
"-DCMAKE_C_COMPILER_LAUNCHER=ccache",
"-DCMAKE_CXX_COMPILER_LAUNCHER=ccache",
],
env={
'HSA_ENABLE_SDMA':'0',
},
install=True,
testsuite=False,
testsuite_sollvevv=False,
extraTestsuiteCmakeArgs=[
"-DTEST_SUITE_SOLLVEVV_OFFLOADING_CFLAGS=-fopenmp-targets=amdgcn-amd-amdhsa;-Xopenmp-target=amdgcn-amd-amdhsa",
"-DTEST_SUITE_SOLLVEVV_OFFLOADING_LDLAGS=-fopenmp-targets=amdgcn-amd-amdhsa;-Xopenmp-target=amdgcn-amd-amdhsa",
],
add_lit_checks=["check-clang", "check-flang", "check-offload"],
add_openmp_lit_args=["--time-tests", "--timeout 100"],
)},
'builddir': "bbot-build",
'factory' : AnnotatedBuilder.getAnnotatedBuildFactory(
script="amdgpu-offload-cmake.py",
checkout_llvm_sources=True,
script_interpreter=None
)},

{'name' : "openmp-offload-libc-amdgpu-runtime",
'tags' : ["openmp"],
Expand Down
56 changes: 56 additions & 0 deletions zorg/buildbot/builders/annotated/amdgpu-offload-cmake.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/usr/bin/python

import argparse
import os
import subprocess
import sys
import traceback
import util
from contextlib import contextmanager


def main(argv):
source_dir = os.path.join("..", "llvm-project")
offload_base_dir = os.path.join(source_dir, "offload")
of_cmake_cache_base_dir = os.path.join(offload_base_dir, "cmake/caches")

with step("cmake", halt_on_fail=True):
# TODO make the name of the cache file an argument to the script.
cmake_cache_file = os.path.join(of_cmake_cache_base_dir, "AMDGPUBot.cmake")

# Use Ninja as the generator.
# The other important settings alrady come from the CMake CMake
# cache file inside LLVM
cmake_args = ["-GNinja", "-C %s" % cmake_cache_file]

run_command(["cmake", os.path.join(source_dir, "llvm")] + cmake_args)

with step("build cmake config"):
run_command(["ninja"])


@contextmanager
def step(step_name, halt_on_fail=False):
util.report("@@@BUILD_STEP {}@@@".format(step_name))
if halt_on_fail:
util.report("@@@HALT_ON_FAILURE@@@")
try:
yield
except Exception as e:
if isinstance(e, subprocess.CalledProcessError):
util.report("{} exited with return code {}.".format(e.cmd, e.returncode))
util.report("The build step threw an exception...")
traceback.print_exc()

util.report("@@@STEP_FAILURE@@@")
finally:
sys.stdout.flush()


def run_command(cmd, directory="."):
util.report_run_cmd(cmd, cwd=directory)


if __name__ == "__main__":
sys.path.append(os.path.dirname(__file__))
sys.exit(main(sys.argv))

0 comments on commit c4b47a2

Please sign in to comment.