diff --git a/ci/ci_common/bench-common.libsonnet b/ci/ci_common/bench-common.libsonnet index d5af90b929ad..27014ae5d71e 100644 --- a/ci/ci_common/bench-common.libsonnet +++ b/ci/ci_common/bench-common.libsonnet @@ -34,7 +34,7 @@ # max number of threads to use for benchmarking in general # the goal being to limit parallelism on very large servers which may not be respresentative of real-world scenarios bench_max_threads:: { - restrict_threads:: 36 + restrict_threads:: if self.arch == 'amd64' then 36 else 32, }, bench_no_thread_cap:: { @@ -99,7 +99,27 @@ default_numa_node:: 0, num_threads:: 160, hyperthreading:: false - } + }, + hr350a:: common.linux_aarch64 + self._bench_machine + { + machine_name:: "hr350a", + capabilities+: ["tmpfs25g"], + numa_nodes:: [0], + default_numa_node:: 0, + num_threads:: 32, + hyperthreading:: false + }, + osprey:: common.linux_aarch64 + self._bench_machine + { + machine_name:: "osprey", + capabilities+: ["tmpfs25g"], + numa_nodes:: [0], + default_numa_node:: 0, + num_threads:: 32, + hyperthreading:: false + }, + local contains(a_str, substr) = std.length(std.findSubstr(substr, a_str)) > 0, + # Useful to distribute the benchmark load between two machine types, but always stay consistent for the same benchmark suite + # This guarantees comparability of results, whatever the platform/context, for each suite + hr350a_or_osprey(suite=null):: if suite != null && std.count([contains(s, suite) for s in ["barista", "renaissance"]], true) > 0 then self.osprey else self.hr350a, }, hwloc_cmd(cmd, num_threads, node, hyperthreading, max_threads_per_node):: diff --git a/compiler/ci/ci_common/benchmark-builders.jsonnet b/compiler/ci/ci_common/benchmark-builders.jsonnet index d0bd3761d8bf..da0a1190d85b 100644 --- a/compiler/ci/ci_common/benchmark-builders.jsonnet +++ b/compiler/ci/ci_common/benchmark-builders.jsonnet @@ -45,17 +45,17 @@ ])), local weekly_aarch64_forks_builds = std.flattenArrays([ - bc.generate_fork_builds(c.weekly + hw.a12c + jdk + cc.libgraal + suite, subdir='compiler') + bc.generate_fork_builds(c.weekly + hw.hr350a_or_osprey(suite.suite) + jdk + cc.libgraal + suite, subdir='compiler') for jdk in cc.product_jdks for suite in bench.groups.weekly_forks_suites ]), local aarch64_builds = [ - c.daily + hw.a12c + jdk + cc.libgraal + suite, + c.daily + hw.hr350a_or_osprey(suite.suite) + jdk + cc.libgraal + suite, for jdk in cc.product_jdks for suite in bench.groups.main_suites ] + [ - c.monthly + hw.a12c + jdk + cc.libgraal + bench.specjbb2015, + c.monthly + hw.hr350a_or_osprey(bench.specjbb2015.suite) + jdk + cc.libgraal + bench.specjbb2015, for jdk in cc.product_jdks ], diff --git a/compiler/ci/ci_common/benchmark-suites.libsonnet b/compiler/ci/ci_common/benchmark-suites.libsonnet index 043984244c31..df5b10a17753 100644 --- a/compiler/ci/ci_common/benchmark-suites.libsonnet +++ b/compiler/ci/ci_common/benchmark-suites.libsonnet @@ -29,7 +29,7 @@ run+: [ self.benchmark_cmd + [self.suite + ":*", "--"] + self.extra_vm_args ], - timelimit: "30:00", + timelimit: "1:00:00", forks_batches:: null, forks_timelimit:: null, min_jdk_version:: 8, diff --git a/compiler/ci/ci_includes/baseline-benchmarks.jsonnet b/compiler/ci/ci_includes/baseline-benchmarks.jsonnet index 81782dc7cfc1..679b161eae1b 100644 --- a/compiler/ci/ci_includes/baseline-benchmarks.jsonnet +++ b/compiler/ci/ci_includes/baseline-benchmarks.jsonnet @@ -9,7 +9,7 @@ local hotspot_builds = std.flattenArrays([ [ c.weekly + hw.x52 + jdk + cc.c2 + suite, - c.weekly + hw.a12c + jdk + cc.c2 + suite + c.weekly + hw.hr350a_or_osprey(suite.suite) + jdk + cc.c2 + suite ] for jdk in cc.product_jdks for suite in bench.groups.all_suites @@ -18,9 +18,9 @@ local hotspot_profiling_builds = std.flattenArrays([ [ c.on_demand + hw.x52 + jdk + cc.c2 + suite + cc.enable_profiling + { job_prefix:: "bench-compiler-profiling" }, - c.on_demand + hw.a12c + jdk + cc.c2 + suite + cc.enable_profiling + { job_prefix:: "bench-compiler-profiling" }, + c.on_demand + hw.hr350a_or_osprey(suite.suite) + jdk + cc.c2 + suite + cc.enable_profiling + { job_prefix:: "bench-compiler-profiling" }, c.on_demand + hw.x52 + jdk + cc.c2 + suite + cc.footprint_tracking + { job_prefix:: "bench-compiler-footprint" }, - c.on_demand + hw.a12c + jdk + cc.c2 + suite + cc.footprint_tracking + { job_prefix:: "bench-compiler-footprint" }, + c.on_demand + hw.hr350a_or_osprey(suite.suite) + jdk + cc.c2 + suite + cc.footprint_tracking + { job_prefix:: "bench-compiler-footprint" }, c.monthly + hw.x52_root + jdk + cc.c2 + suite + cc.energy_tracking + { job_prefix:: "bench-compiler-energy" } ] for jdk in cc.product_jdks @@ -37,7 +37,7 @@ ])), local weekly_forks_aarch64_builds = std.flattenArrays([ - bc.generate_fork_builds(c.weekly + hw.a12c + jdk + cc.c2 + suite) + bc.generate_fork_builds(c.weekly + hw.hr350a_or_osprey(suite.suite) + jdk + cc.c2 + suite) for jdk in cc.product_jdks for suite in bench.groups.weekly_forks_suites ]),