From 1a7ac98877a8fb4074da87af65cff2407341ca94 Mon Sep 17 00:00:00 2001 From: Stefan Marr Date: Fri, 23 Aug 2024 14:25:27 +0100 Subject: [PATCH 1/4] Move tests to yuria4 Signed-off-by: Stefan Marr --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 726571447..0d6cb20ed 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,7 +34,7 @@ before_script: test: stage: build-and-test - tags: [yuria] + tags: [yuria4] script: - ./som --setup labsjdk - mx sforceimport From 0cc3410ca92aaa5f9a75ac9e33289a69f8e7d583 Mon Sep 17 00:00:00 2001 From: Stefan Marr Date: Fri, 23 Aug 2024 15:00:36 +0100 Subject: [PATCH 2/4] Need to build Truffle Tools explicitly Signed-off-by: Stefan Marr --- .gitlab-ci.yml | 1 + mx.trufflesom/suite.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0d6cb20ed..dd3ad3ad7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -48,6 +48,7 @@ test: - mx build-native-obj-test - ./som-obj-storage-tester + - (cd ../graal/tools && mx build) - mx tests-nodestats || true - mx tests-coverage || true diff --git a/mx.trufflesom/suite.py b/mx.trufflesom/suite.py index 662782f99..e40ad1550 100644 --- a/mx.trufflesom/suite.py +++ b/mx.trufflesom/suite.py @@ -88,7 +88,7 @@ }, }, "dependencies": ["trufflesom"], - "distDependencies": ["truffle:TRUFFLE_API"], + "distDependencies": ["truffle:TRUFFLE_API"], # , "tools:TRUFFLE_COVERAGE", "tools:TRUFFLE_PROFILER" }, "TRUFFLESOM_TEST": { "description": "TruffleSOM JUnit Tests", From 18b5fd57073c93f454401ff94b8446bd2c8974f0 Mon Sep 17 00:00:00 2001 From: Stefan Marr Date: Fri, 23 Aug 2024 15:57:09 +0100 Subject: [PATCH 3/4] Move many benchmarks to yuria4 Signed-off-by: Stefan Marr --- .gitlab-ci.yml | 73 +++++++++++++++++++++++++------------------------- rebench.conf | 66 ++++++++++++++++++++++----------------------- 2 files changed, 70 insertions(+), 69 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dd3ad3ad7..c704949c7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,6 +9,22 @@ variables: GRAALEE_VERSION: oracle-graalvm-ea-jdk-24.0.0-ea.01 JAVA_VERSION: temurin-22.0.1+8 +.shared-scripts: + download-binaries: &DOWNLOAD_BINARIES | + sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-ast.lz4 + sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-bc.lz4 + sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-ast-ee.lz4 + sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-bc-ee.lz4 + lz4 -d som-native-interp-ast.lz4 som-native-interp-ast + lz4 -d som-native-interp-bc.lz4 som-native-interp-bc + lz4 -d som-native-interp-ast-ee.lz4 som-native-interp-ast-ee + lz4 -d som-native-interp-bc-ee.lz4 som-native-interp-bc-ee + + build-graal-locally: &BUILD_GRAAL_LOCALLY | + ./som --setup labsjdk + mx sforceimport + mx --env libgraal build + before_script: - (cd core-lib && git remote add smarr https://github.com/smarr/SOM.git || true; git fetch --all) - git submodule update --init @@ -146,18 +162,8 @@ benchmark-y1: needs: ["build:native-interp-ast", "build:native-interp-bc"] tags: [yuria] script: - - ./som --setup labsjdk - - mx sforceimport - - mx --env libgraal build - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-ast.lz4 - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-bc.lz4 - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-ast-ee.lz4 - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-bc-ee.lz4 - - - lz4 -d som-native-interp-ast.lz4 som-native-interp-ast - - lz4 -d som-native-interp-bc.lz4 som-native-interp-bc - - lz4 -d som-native-interp-ast-ee.lz4 som-native-interp-ast-ee - - lz4 -d som-native-interp-bc-ee.lz4 som-native-interp-bc-ee + - *BUILD_GRAAL_LOCALLY + - *DOWNLOAD_BINARIES # Profile - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf profiling m:yuria @@ -171,18 +177,8 @@ benchmark-y2: needs: ["build:native-interp-ast", "build:native-interp-bc"] tags: [yuria2] script: - - ./som --setup labsjdk - - mx sforceimport - - mx --env libgraal build - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-ast.lz4 - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-bc.lz4 - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-ast-ee.lz4 - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-bc-ee.lz4 - - - lz4 -d som-native-interp-ast.lz4 som-native-interp-ast - - lz4 -d som-native-interp-bc.lz4 som-native-interp-bc - - lz4 -d som-native-interp-ast-ee.lz4 som-native-interp-ast-ee - - lz4 -d som-native-interp-bc-ee.lz4 som-native-interp-bc-ee + - *BUILD_GRAAL_LOCALLY + - *DOWNLOAD_BINARIES # Profile - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf profiling m:yuria2 @@ -196,18 +192,8 @@ benchmark-y3: needs: ["build:native-interp-ast", "build:native-interp-bc"] tags: [yuria3] script: - - ./som --setup labsjdk - - mx sforceimport - - mx --env libgraal build - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-ast.lz4 - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-bc.lz4 - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-ast-ee.lz4 - - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-native-interp-bc-ee.lz4 - - - lz4 -d som-native-interp-ast.lz4 som-native-interp-ast - - lz4 -d som-native-interp-bc.lz4 som-native-interp-bc - - lz4 -d som-native-interp-ast-ee.lz4 som-native-interp-ast-ee - - lz4 -d som-native-interp-bc-ee.lz4 som-native-interp-bc-ee + - *BUILD_GRAAL_LOCALLY + - *DOWNLOAD_BINARIES # Profile - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf profiling m:yuria3 @@ -216,6 +202,21 @@ benchmark-y3: after_script: - sudo reown-project.sh +benchmark-y4: + stage: benchmark + needs: ["build:native-interp-ast", "build:native-interp-bc"] + tags: [yuria4] + script: + - *BUILD_GRAAL_LOCALLY + - *DOWNLOAD_BINARIES + + # Profile + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf profiling m:yuria4 + # Run Benchmarks + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf m:yuria4 + after_script: + - sudo reown-project.sh + report-completion: stage: benchmark-completion tags: [yuria] diff --git a/rebench.conf b/rebench.conf index 083f9f4d5..d4fca3164 100644 --- a/rebench.conf +++ b/rebench.conf @@ -23,10 +23,10 @@ benchmark_suites: iterations: 1 invocations: 5 benchmarks: - - Richards: {extra_args: 1, machines: [yuria ]} - - DeltaBlue: {extra_args: 100, machines: [yuria2]} + - Richards: {extra_args: 1, machines: [yuria4]} + - DeltaBlue: {extra_args: 100, machines: [yuria4]} - NBody: {extra_args: 1000, machines: [yuria3]} - - Json: {extra_args: 1, machines: [yuria ]} + - Json: {extra_args: 1, machines: [yuria4]} - GraphSearch: {extra_args: 7, machines: [yuria2]} - PageRank: {extra_args: 75, machines: [yuria3]} @@ -34,11 +34,11 @@ benchmark_suites: gauge_adapter: RebenchLog command: *MACRO_CMD benchmarks: - - Richards: {extra_args: 40, warmup: 30, iterations: 130, machines: [yuria ]} - - DeltaBlue: {extra_args: 10000, warmup: 20, iterations: 120, machines: [yuria2]} + - Richards: {extra_args: 40, warmup: 30, iterations: 130, machines: [yuria4]} + - DeltaBlue: {extra_args: 10000, warmup: 20, iterations: 120, machines: [yuria4]} - NBody: {extra_args: 200000, warmup: 20, iterations: 120, machines: [yuria3]} - - Json: {extra_args: 80, warmup: 20, iterations: 120, machines: [yuria ]} - - GraphSearch: {extra_args: 25, warmup: 100, iterations: 250, machines: [yuria2]} + - Json: {extra_args: 80, warmup: 20, iterations: 120, machines: [yuria4]} + - GraphSearch: {extra_args: 25, warmup: 100, iterations: 250, machines: [yuria4]} - PageRank: {extra_args: 1000, warmup: 20, iterations: 120, machines: [yuria3]} awfy-startup: @@ -47,14 +47,14 @@ benchmark_suites: iterations: 1 invocations: 5 benchmarks: - - CD: {extra_args: 10, machines: [yuria2]} - - Havlak: {extra_args: 15, machines: [yuria3]} + - CD: {extra_args: 10, machines: [yuria4]} + - Havlak: {extra_args: 15, machines: [yuria4]} awfy-steady: gauge_adapter: RebenchLog command: *AWFY_CMD benchmarks: - - CD: {extra_args: 100, warmup: 30, iterations: 130, machines: [yuria2]} + - CD: {extra_args: 100, warmup: 30, iterations: 130, machines: [yuria4]} - Havlak: {extra_args: 150, warmup: 30, iterations: 130, machines: [yuria3]} micro-startup: @@ -63,16 +63,16 @@ benchmark_suites: iterations: 1 invocations: 5 benchmarks: - - Fannkuch: {extra_args: 7, machines: [yuria ]} + - Fannkuch: {extra_args: 7, machines: [yuria4]} - Fibonacci: {extra_args: 10, machines: [yuria2]} - Dispatch: {extra_args: 10, machines: [yuria3]} - - Bounce: {extra_args: 10, machines: [yuria ]} + - Bounce: {extra_args: 10, machines: [yuria4]} - Loop: {extra_args: 100, machines: [yuria2]} - Permute: {extra_args: 10, machines: [yuria3]} - - Queens: {extra_args: 10, machines: [yuria ]} + - Queens: {extra_args: 10, machines: [yuria4]} - List: {extra_args: 2, machines: [yuria2]} - Recurse: {extra_args: 12, machines: [yuria3]} - - Storage: {extra_args: 8, machines: [yuria ]} + - Storage: {extra_args: 8, machines: [yuria4]} - Sieve: {extra_args: 20, machines: [yuria2]} - BubbleSort: {extra_args: 15, machines: [yuria3]} - QuickSort: {extra_args: 15, machines: [yuria ]} @@ -91,37 +91,37 @@ benchmark_suites: gauge_adapter: RebenchLog command: *MICRO_CMD benchmarks: - - Fannkuch: {extra_args: 9, warmup: 5, iterations: 55, machines: [yuria ]} - - Fibonacci: {extra_args: 1000, warmup: 10, iterations: 60, machines: [yuria ]} - - Dispatch: {extra_args: 10000, warmup: 5, iterations: 55, machines: [yuria3]} - - Bounce: {extra_args: 4000, warmup: 10, iterations: 60, machines: [yuria ]} + - Fannkuch: {extra_args: 9, warmup: 5, iterations: 55, machines: [yuria4]} + - Fibonacci: {extra_args: 1000, warmup: 10, iterations: 60, machines: [yuria4]} + - Dispatch: {extra_args: 10000, warmup: 5, iterations: 55, machines: [yuria4]} + - Bounce: {extra_args: 4000, warmup: 10, iterations: 60, machines: [yuria4]} - Loop: {extra_args: 10000, warmup: 5, iterations: 55, machines: [yuria2]} - - Permute: {extra_args: 1500, warmup: 5, iterations: 55, machines: [yuria3]} - - Queens: {extra_args: 1000, warmup: 5, iterations: 55, machines: [yuria ]} - - List: {extra_args: 1000, warmup: 15, iterations: 65, machines: [yuria ]} - - Recurse: {extra_args: 2000, warmup: 15, iterations: 65, machines: [yuria ]} - - Storage: {extra_args: 1000, warmup: 10, iterations: 60, machines: [yuria ]} + - Permute: {extra_args: 1500, warmup: 5, iterations: 55, machines: [yuria4]} + - Queens: {extra_args: 1000, warmup: 5, iterations: 55, machines: [yuria4]} + - List: {extra_args: 1000, warmup: 15, iterations: 65, machines: [yuria4]} + - Recurse: {extra_args: 2000, warmup: 15, iterations: 65, machines: [yuria4]} + - Storage: {extra_args: 1000, warmup: 10, iterations: 60, machines: [yuria4]} - Sieve: {extra_args: 2500, warmup: 10, iterations: 60, machines: [yuria2]} - - BubbleSort: {extra_args: 3000, warmup: 5, iterations: 55, machines: [yuria3]} - - QuickSort: {extra_args: 2000, warmup: 5, iterations: 55, machines: [yuria ]} + - BubbleSort: {extra_args: 3000, warmup: 5, iterations: 55, machines: [yuria4]} + - QuickSort: {extra_args: 2000, warmup: 5, iterations: 55, machines: [yuria4]} - Sum: {extra_args: 10000, warmup: 5, iterations: 55, machines: [yuria2]} - - Towers: {extra_args: 1000, warmup: 5, iterations: 55, machines: [yuria3]} - - TreeSort: {extra_args: 1000, warmup: 10, iterations: 60, machines: [yuria ]} + - Towers: {extra_args: 1000, warmup: 5, iterations: 55, machines: [yuria4]} + - TreeSort: {extra_args: 1000, warmup: 10, iterations: 60, machines: [yuria4]} - IntegerLoop: {extra_args: 8000, warmup: 5, iterations: 55, machines: [yuria2]} - - FieldLoop: {extra_args: 900, warmup: 5, iterations: 55, machines: [yuria3]} + - FieldLoop: {extra_args: 900, warmup: 5, iterations: 55, machines: [yuria4]} - WhileLoop: {extra_args: 9000, warmup: 5, iterations: 55, machines: [yuria2]} - - Mandelbrot: {extra_args: 1000, warmup: 10, iterations: 110, machines: [yuria3]} + - Mandelbrot: {extra_args: 1000, warmup: 10, iterations: 110, machines: [yuria4]} micro-somsom: gauge_adapter: RebenchLog command: "-cp Smalltalk:Examples/Benchmarks/LanguageFeatures Examples/Benchmarks/BenchmarkHarness.som --gc %(benchmark)s %(iterations)s " iterations: 1 benchmarks: - - Loop: {extra_args: 1, machines: [yuria3]} - - Queens: {extra_args: 1, machines: [yuria ]} + - Loop: {extra_args: 1, machines: [yuria4]} + - Queens: {extra_args: 1, machines: [yuria4]} - List: {extra_args: 1, machines: [yuria2]} - - Recurse: {extra_args: 1, machines: [yuria3]} - - Mandelbrot: {extra_args: 3, machines: [yuria ]} + - Recurse: {extra_args: 1, machines: [yuria4]} + - Mandelbrot: {extra_args: 3, machines: [yuria4]} som-parse: gauge_adapter: RebenchLog From 4eafa808220eea2c86eafdd56dc7f0803ec26b7b Mon Sep 17 00:00:00 2001 From: Stefan Marr Date: Fri, 23 Aug 2024 18:20:28 +0100 Subject: [PATCH 4/4] =?UTF-8?q?Don=E2=80=99t=20profile=20on=20yuria4,=20be?= =?UTF-8?q?cause=20perf=20is=20broken=20and=20rebench=20can=E2=80=99t=20ha?= =?UTF-8?q?ndle=20it?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stefan Marr --- .gitlab-ci.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c704949c7..77d995dd6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -155,7 +155,7 @@ build:aarch64-test-and-rebench: - mx tests-coverage || true - export PATH=$PATH:/Users/gitlab-runner/Library/Python/3.12/bin - - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" rebench.conf benchmark-y1: stage: benchmark @@ -166,9 +166,9 @@ benchmark-y1: - *DOWNLOAD_BINARIES # Profile - - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf profiling m:yuria + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" rebench.conf profiling m:yuria # Run Benchmarks - - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf m:yuria + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" rebench.conf m:yuria after_script: - sudo reown-project.sh @@ -181,9 +181,9 @@ benchmark-y2: - *DOWNLOAD_BINARIES # Profile - - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf profiling m:yuria2 + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" rebench.conf profiling m:yuria2 # Run Benchmarks - - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf m:yuria2 + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" rebench.conf m:yuria2 after_script: - sudo reown-project.sh @@ -196,9 +196,9 @@ benchmark-y3: - *DOWNLOAD_BINARIES # Profile - - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf profiling m:yuria3 + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" rebench.conf profiling m:yuria3 # Run Benchmarks - - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf m:yuria3 + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" rebench.conf m:yuria3 after_script: - sudo reown-project.sh @@ -211,9 +211,9 @@ benchmark-y4: - *DOWNLOAD_BINARIES # Profile - - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf profiling m:yuria4 + # - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" rebench.conf profiling m:yuria4 # Run Benchmarks - - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf m:yuria4 + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" rebench.conf m:yuria4 after_script: - sudo reown-project.sh