From 8c7a356226199cc58708f313129ace3e479be742 Mon Sep 17 00:00:00 2001 From: Stefan Marr Date: Sun, 16 Jun 2024 00:21:06 +0100 Subject: [PATCH 1/3] Added new interpreter microbenchmarks --- core-lib | 2 +- rebench.conf | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/core-lib b/core-lib index 312d77a7..9c04914f 160000 --- a/core-lib +++ b/core-lib @@ -1 +1 @@ -Subproject commit 312d77a71f775450aba475a78dfe4aa468b84c0b +Subproject commit 9c04914f800dc3ccbfaa1dc8fcf78cc5714549a4 diff --git a/rebench.conf b/rebench.conf index e9d78699..76db199d 100644 --- a/rebench.conf +++ b/rebench.conf @@ -132,6 +132,28 @@ benchmark_suites: - SomParse: {extra_args: 1, machines: [yuria2]} - SomInit: {extra_args: 10000, machines: [yuria2]} + interpreter: + description: Basic interpreter benchmarks for comparing performance of most basic concepts. + gauge_adapter: RebenchLog + command: "-cp Smalltalk:Examples/Benchmarks/Interpreter Examples/Benchmarks/BenchmarkHarness.som %(benchmark)s %(iterations)s 1" + benchmarks: + - ArgRead + - ArrayReadConst + - ArrayWriteConstConst + - BlockSend0ConstReturn + - Const + - FieldConstWrite + - FieldRead + - FieldReadIncWrite + - FieldReadWrite + - GlobalRead + - LocalConstWrite + - LocalRead + - LocalReadIncWrite + - LocalReadWrite + - SelfSend0 + - SelfSend0BlockConstNonLocalReturn + executors: RPySOM-ast-interp: path: . @@ -167,12 +189,14 @@ experiments: - macro-startup - awfy-startup - som-parse + - interpreter - RPySOM-bc-interp: suites: - micro-startup - macro-startup - awfy-startup - som-parse + - interpreter - RPySOM-ast-jit: suites: - micro-startup From 8c746ffe577d7b029e8bca6c05a69793c7d05a7c Mon Sep 17 00:00:00 2001 From: Stefan Marr Date: Sun, 16 Jun 2024 00:37:45 +0100 Subject: [PATCH 2/3] =?UTF-8?q?Avoid=20blocking=20on=20zullie=E2=80=99s=20?= =?UTF-8?q?task?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 43078784..e99ca162 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,7 +20,7 @@ before_script: build:aarch64-test-and-rebench: stage: build-test tags: [zullie1] - + script: - export PATH=/opt/local/bin:/opt/local/sbin:/Users/gitlab-runner/Library/Python/3.12/bin:${PATH}:${PYPY_BIN_DIR} @@ -43,10 +43,9 @@ build:aarch64-test-and-rebench: - SOM_INTERP=AST $RPYTHON --batch src/main_rpython.py - ./som-ast-interp -cp Smalltalk TestSuite/TestHarness.som - ./som-ast-interp -cp Smalltalk:TestSuite Examples/Benchmarks/TestSuite/TestTestSuite.som - - - (cd Examples/Benchmarks/TestSuite && ./duplicate-tests.sh) + + - (cd Examples/Benchmarks/TestSuite && ./duplicate-tests.sh) - rebench --experiment="CI ID $CI_PIPELINE_ID" --branch="$CI_COMMIT_REF_NAME" -c rebench.conf - build-and-test-interpreters: stage: build-test @@ -66,21 +65,20 @@ build-and-test-interpreters: - ./som-bc-interp -cp Smalltalk:TestSuite Examples/Benchmarks/TestSuite/TestTestSuite.som - export SOM_INTERP=AST - + # Unit Tests - PYTHONPATH=src python3 -m pytest - ./som.sh -cp Smalltalk TestSuite/TestHarness.som - + # Interpreter - $RPYTHON --batch src/main_rpython.py - ./som-ast-interp -cp Smalltalk TestSuite/TestHarness.som - ./som-ast-interp -cp Smalltalk:TestSuite Examples/Benchmarks/TestSuite/TestTestSuite.som - # Package and Upload - lz4 som-ast-interp som-ast-interp.lz4 - lz4 som-bc-interp som-bc-interp.lz4 - + - | sftp tmp-artifacts << EOF -mkdir incoming/${CI_PIPELINE_ID}/ @@ -94,7 +92,7 @@ build-and-test-jit-bc: script: - export PATH=$PATH:$PYPY_BIN_DIR - export SOM_INTERP=BC - + # JIT Compiled Version - $RPYTHON --batch -Ojit src/main_rpython.py - ./som-bc-jit -cp Smalltalk TestSuite/TestHarness.som @@ -103,7 +101,7 @@ build-and-test-jit-bc: # Package and Upload - lz4 som-bc-jit som-bc-jit.lz4 - + - | sftp tmp-artifacts << EOF -mkdir incoming/${CI_PIPELINE_ID}/ @@ -116,7 +114,7 @@ build-and-test-jit-ast: script: - export PATH=$PATH:$PYPY_BIN_DIR - export SOM_INTERP=AST - + # JIT Compiled Version - $RPYTHON --batch -Ojit src/main_rpython.py - ./som-ast-jit -cp Smalltalk TestSuite/TestHarness.som @@ -125,7 +123,7 @@ build-and-test-jit-ast: # Package and Upload - lz4 som-ast-jit som-ast-jit.lz4 - + - | sftp tmp-artifacts << EOF -mkdir incoming/${CI_PIPELINE_ID}/ @@ -134,13 +132,15 @@ build-and-test-jit-ast: benchmark-y1: stage: benchmark + needs: + [build-and-test-interpreters, build-and-test-jit-bc, build-and-test-jit-ast] tags: [yuria] script: - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-ast-jit.lz4 - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-ast-interp.lz4 - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-bc-jit.lz4 - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-bc-interp.lz4 - + - lz4 -d som-ast-jit.lz4 som-ast-jit - lz4 -d som-ast-interp.lz4 som-ast-interp - lz4 -d som-bc-jit.lz4 som-bc-jit @@ -151,13 +151,15 @@ benchmark-y1: benchmark-y2: stage: benchmark + needs: + [build-and-test-interpreters, build-and-test-jit-bc, build-and-test-jit-ast] tags: [yuria2] script: - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-ast-jit.lz4 - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-ast-interp.lz4 - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-bc-jit.lz4 - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-bc-interp.lz4 - + - lz4 -d som-ast-jit.lz4 som-ast-jit - lz4 -d som-ast-interp.lz4 som-ast-interp - lz4 -d som-bc-jit.lz4 som-bc-jit @@ -168,13 +170,15 @@ benchmark-y2: benchmark-y3: stage: benchmark + needs: + [build-and-test-interpreters, build-and-test-jit-bc, build-and-test-jit-ast] tags: [yuria3] script: - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-ast-jit.lz4 - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-ast-interp.lz4 - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-bc-jit.lz4 - sftp tmp-artifacts:incoming/${CI_PIPELINE_ID}/som-bc-interp.lz4 - + - lz4 -d som-ast-jit.lz4 som-ast-jit - lz4 -d som-ast-interp.lz4 som-ast-interp - lz4 -d som-bc-jit.lz4 som-bc-jit @@ -185,6 +189,8 @@ benchmark-y3: report-completion: stage: benchmark-completion + needs: + [benchmark-y1, benchmark-y2, benchmark-y3, build:aarch64-test-and-rebench] tags: [yuria] script: - rebench --experiment="CI ID $CI_PIPELINE_ID" --report-completion rebench.conf From 475b48f5950550f1f56fee9735c7fecc7443bb9d Mon Sep 17 00:00:00 2001 From: Stefan Marr Date: Sun, 16 Jun 2024 00:47:33 +0100 Subject: [PATCH 3/3] Run new benchmarks on yuria, and 5 times each --- rebench.conf | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/rebench.conf b/rebench.conf index 76db199d..85abb333 100644 --- a/rebench.conf +++ b/rebench.conf @@ -135,24 +135,25 @@ benchmark_suites: interpreter: description: Basic interpreter benchmarks for comparing performance of most basic concepts. gauge_adapter: RebenchLog + invocations: 5 command: "-cp Smalltalk:Examples/Benchmarks/Interpreter Examples/Benchmarks/BenchmarkHarness.som %(benchmark)s %(iterations)s 1" benchmarks: - - ArgRead - - ArrayReadConst - - ArrayWriteConstConst - - BlockSend0ConstReturn - - Const - - FieldConstWrite - - FieldRead - - FieldReadIncWrite - - FieldReadWrite - - GlobalRead - - LocalConstWrite - - LocalRead - - LocalReadIncWrite - - LocalReadWrite - - SelfSend0 - - SelfSend0BlockConstNonLocalReturn + - ArgRead: {machines: [yuria ]} + - ArrayReadConst: {machines: [yuria ]} + - ArrayWriteConstConst: {machines: [yuria ]} + - BlockSend0ConstReturn: {machines: [yuria ]} + - Const: {machines: [yuria ]} + - FieldConstWrite: {machines: [yuria ]} + - FieldRead: {machines: [yuria ]} + - FieldReadIncWrite: {machines: [yuria ]} + - FieldReadWrite: {machines: [yuria ]} + - GlobalRead: {machines: [yuria ]} + - LocalConstWrite: {machines: [yuria ]} + - LocalRead: {machines: [yuria ]} + - LocalReadIncWrite: {machines: [yuria ]} + - LocalReadWrite: {machines: [yuria ]} + - SelfSend0: {machines: [yuria ]} + - SelfSend0BlockConstNonLocalReturn: {machines: [yuria ]} executors: RPySOM-ast-interp: