diff --git a/buildbot/osuosl/master/config/builders.py b/buildbot/osuosl/master/config/builders.py --- a/buildbot/osuosl/master/config/builders.py +++ b/buildbot/osuosl/master/config/builders.py @@ -1662,6 +1662,54 @@ } ] +# Builders for ML-driven compiler optimizations. +def _get_ml_compiler_opt_builders(): + common_extra_args = [ + "-DCMAKE_BUILD_TYPE=Release", + "-DLLVM_CACHE_BUILD=ON", + "-DLLVM_ENABLE_ASSERTIONS=ON", ] + + return [ + # Development mode build bot: tensorflow C APIs are present, and + # we can dynamically load models, and produce training logs. + {'name': "ml-opt-dev-x86-64", + 'mergeRequests': False, + 'slavenames':["ml-opt-dev-x86-64-b1"], + 'builddir':"ml-opt-dev-x86-64-b1", + 'factory': UnifiedTreeBuilder.getCmakeWithNinjaBuildFactory( + clean=True, + depends_on_projects=['llvm'], + extra_configure_args=common_extra_args + [ + "-DTENSORFLOW_API_PATH=${TENSORFLOW_API_PATH}" + ])}, + # Release mode build bot: the model is pre-built and linked in the + # compiler. Only the tensorflow pip package is needed, and out of it, + # only saved_model_cli (the model compiler) and the thin C++ wrappers + # in xla_aot_runtime_src (and include files) + {'name': "ml-opt-rel-x86-64", + 'mergeRequests': False, + 'slavenames':["ml-opt-rel-x86-64-b1"], + 'builddir':"ml-opt-rel-x86-64-b1", + 'factory': UnifiedTreeBuilder.getCmakeWithNinjaBuildFactory( + clean=True, + depends_on_projects=['llvm'], + extra_configure_args=common_extra_args + [ + "-DTENSORFLOW_AOT_PATH=${TENSORFLOW_AOT_PATH}" + ])}, + # Both tensorflow C library, and the pip package, are present. + {'name': "ml-opt-devrel-x86-64", + 'mergeRequests': False, + 'slavenames':["ml-opt-devrel-x86-64-b1"], + 'builddir':"ml-opt-devrel-x86-64-b1", + 'factory': UnifiedTreeBuilder.getCmakeWithNinjaBuildFactory( + clean=True, + depends_on_projects=['llvm'], + extra_configure_args=common_extra_args + [ + "-DTENSORFLOW_API_PATH=${TENSORFLOW_API_PATH}", + "-DTENSORFLOW_AOT_PATH=${TENSORFLOW_AOT_PATH}" + ])}, + ] + def get_builders(): for b in _get_llvm_builders(): b['category'] = 'llvm' @@ -1698,6 +1746,10 @@ for b in _get_mlir_builders(): b['category'] = 'mlir' yield b + + for b in _get_ml_compiler_opt_builders(): + b['category'] = 'ml_opt' + yield b for b in _get_sanitizer_builders(): b['category'] = 'sanitizer' diff --git a/buildbot/osuosl/master/config/slaves.py b/buildbot/osuosl/master/config/slaves.py --- a/buildbot/osuosl/master/config/slaves.py +++ b/buildbot/osuosl/master/config/slaves.py @@ -236,4 +236,12 @@ create_slave("flang-aarch64-ubuntu-build"), create_slave("flang-aarch64-ubuntu-clang-build"), create_slave("nersc-flang"), + + # ML-Driven Compiler Optimizations build slave (Ubuntu x86_64) + create_slave("ml-opt-dev-x86-64-b1", + properties={'jobs': 64}, max_builds=1), + create_slave("ml-opt-rel-x86-64-b1", + properties={'jobs': 64}, max_builds=1), + create_slave("ml-opt-devrel-x86-64-b1", + properties={'jobs': 64}, max_builds=1), ] diff --git a/buildbot/osuosl/master/config/status.py b/buildbot/osuosl/master/config/status.py --- a/buildbot/osuosl/master/config/status.py +++ b/buildbot/osuosl/master/config/status.py @@ -288,4 +288,13 @@ mode = "failing", builders = ["publish-sphinx-docs"], addLogs=False), + InformativeMailNotifier(fromaddr="llvm.buildmaster@lab.llvm.org", + sendToInterestedUsers=True, + extraRecipients=[ + "mlcompileropt-buildbot@google.com"], + subject="ML Compiler Opt Failure: %(builder)s", + mode="failing", + builders=[ + "ml-opt-dev-x86-64", "ml-opt-rel-x86-64", "ml-opt-devrel-x86-64"], + addLogs=False), ]