diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 726571447..77d995dd6 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 @@ -34,7 +50,7 @@ before_script: test: stage: build-and-test - tags: [yuria] + tags: [yuria4] script: - ./som --setup labsjdk - mx sforceimport @@ -48,6 +64,7 @@ test: - mx build-native-obj-test - ./som-obj-storage-tester + - (cd ../graal/tools && mx build) - mx tests-nodestats || true - mx tests-coverage || true @@ -138,30 +155,20 @@ 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 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 + - 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 @@ -170,23 +177,13 @@ 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 + - 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 @@ -195,23 +192,28 @@ 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 + - *BUILD_GRAAL_LOCALLY + - *DOWNLOAD_BINARIES + + # Profile + - 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" rebench.conf m:yuria3 + after_script: + - sudo reown-project.sh - - 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 +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:yuria3 + # - 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:yuria3 + - rebench -c --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" rebench.conf m:yuria4 after_script: - sudo reown-project.sh 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", 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