Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions .github/workflows/engine-benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ on:
- 'scripts/check_engine_json.sh'
- '.github/workflows/engine-benchmarks.yml'
workflow_dispatch:
inputs:
confirm_publish:
description: 'Publish this run to OpenBenchmarking.org (full-self-hosted lane only). Requires a one-time `phoronix-test-suite openbenchmarking-login` on the runner.'
type: boolean
default: false
release:
types: [published]

Expand Down Expand Up @@ -94,8 +99,10 @@ jobs:
full-self-hosted:
# Full pack on the registered self-hosted runner. Only fires on release
# publish or manual dispatch — never on PRs — so untrusted code cannot
# land on the maintainer machine. Results land as artifacts; this
# session does NOT upload to OpenBenchmarking.org (separate milestone).
# land on the maintainer machine. Results always land as artifacts;
# publishing to OpenBenchmarking.org is a separate, explicitly gated
# step below (workflow_dispatch with confirm_publish: true only — a
# release publish alone never auto-publishes to the public leaderboard).
if: github.event_name == 'workflow_dispatch' || github.event_name == 'release'
runs-on: [self-hosted, linux, x86_64, skainet-bench-linux-x86]
timeout-minutes: 120
Expand Down Expand Up @@ -137,3 +144,15 @@ jobs:
name: engine-full-records-${{ github.run_id }}
path: out/engine/**/*.json
retention-days: 90

- name: Publish to OpenBenchmarking.org
# Explicitly gated — only a manual workflow_dispatch with
# confirm_publish: true reaches this step. A release publish event
# alone runs the benchmarks and uploads artifacts above, but never
# this step, so a bad release tag can't silently publish public
# numbers. Requires a one-time `phoronix-test-suite
# openbenchmarking-login` on this runner — see
# docs/modules/ROOT/pages/contributing/benchmarks.adoc.
if: github.event_name == 'workflow_dispatch' && github.event.inputs.confirm_publish == 'true'
run: |
./scripts/upload_openbenchmarking.sh "$(ls -td out/engine/*/ | head -1)" --confirm
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,15 @@ fi

cp "$SKAINET_PUBLISH_JAR" "$DEST/skainet-engine-publish.jar"

cat > "$DEST/$SCENARIO" <<'WRAPPER'
cat > "$DEST/skainet-$SCENARIO" <<'WRAPPER'
#!/usr/bin/env bash
# PTS only parses results from the file at $LOG_FILE (set by the PTS client), never
# from captured stdout directly — so the parseable result line must land there too.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
exec java --enable-preview --add-modules jdk.incubator.vector \
java --enable-preview --add-modules jdk.incubator.vector \
-jar "$HERE/skainet-engine-publish.jar" \
run --scenario engine-bf16-matmul --out "$HERE/last-result.json" "$@"
run --scenario engine-bf16-matmul --out "$HERE/last-result.json" "$@" \
| tee -a "${LOG_FILE:-/dev/stdout}"
WRAPPER
chmod +x "$DEST/$SCENARIO"
chmod +x "$DEST/skainet-$SCENARIO"
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,27 @@
<TestProfile>
<Version>1.0.0</Version>
<SupportedPlatforms>Linux, MacOSX</SupportedPlatforms>
<SoftwareType>Library</SoftwareType>
<SoftwareType>Benchmark</SoftwareType>
<TestType>Processor</TestType>
<License>MIT</License>
<Status>Testing</Status>
<License>Free</License>
<Status>Unverified</Status>
<Maintainer>SKaiNET Developers</Maintainer>
<Executable>skainet-engine-bf16-matmul</Executable>
</TestProfile>
<TestSettings>
<Default>
<Arguments>--smoke false --provider panama</Arguments>
<Arguments>--provider panama</Arguments>
</Default>
<Option>
<DisplayName>Kernel Provider</DisplayName>
<Identifier>provider</Identifier>
<Menu>
<Entry>
<Name>Panama Vector</Name>
<Value>--smoke false --provider panama</Value>
<Value>--provider panama</Value>
</Entry>
<Entry>
<Name>Scalar</Name>
<Value>--smoke false --provider scalar</Value>
<Value>--provider scalar</Value>
</Entry>
</Menu>
</Option>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,15 @@ fi

cp "$SKAINET_PUBLISH_JAR" "$DEST/skainet-engine-publish.jar"

cat > "$DEST/$SCENARIO" <<'WRAPPER'
cat > "$DEST/skainet-$SCENARIO" <<'WRAPPER'
#!/usr/bin/env bash
# PTS only parses results from the file at $LOG_FILE (set by the PTS client), never
# from captured stdout directly — so the parseable result line must land there too.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
exec java --enable-preview --add-modules jdk.incubator.vector \
java --enable-preview --add-modules jdk.incubator.vector \
-jar "$HERE/skainet-engine-publish.jar" \
run --scenario engine-elementwise-add --out "$HERE/last-result.json" "$@"
run --scenario engine-elementwise-add --out "$HERE/last-result.json" "$@" \
| tee -a "${LOG_FILE:-/dev/stdout}"
WRAPPER
chmod +x "$DEST/$SCENARIO"
chmod +x "$DEST/skainet-$SCENARIO"
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,15 @@
<TestProfile>
<Version>1.0.0</Version>
<SupportedPlatforms>Linux, MacOSX</SupportedPlatforms>
<SoftwareType>Library</SoftwareType>
<SoftwareType>Benchmark</SoftwareType>
<TestType>Processor</TestType>
<License>MIT</License>
<Status>Testing</Status>
<License>Free</License>
<Status>Unverified</Status>
<Maintainer>SKaiNET Developers</Maintainer>
<Executable>skainet-engine-elementwise-add</Executable>
</TestProfile>
<TestSettings>
<Default>
<Arguments>--smoke false</Arguments>
<Arguments></Arguments>
</Default>
<Option>
<DisplayName>Mode</DisplayName>
<Identifier>mode</Identifier>
<Menu>
<Entry>
<Name>Full</Name>
<Value>--smoke false</Value>
</Entry>
<Entry>
<Name>Smoke</Name>
<Value>--smoke</Value>
</Entry>
</Menu>
</Option>
</TestSettings>
</PhoronixTestSuite>
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,15 @@ fi

cp "$SKAINET_PUBLISH_JAR" "$DEST/skainet-engine-publish.jar"

cat > "$DEST/$SCENARIO" <<'WRAPPER'
cat > "$DEST/skainet-$SCENARIO" <<'WRAPPER'
#!/usr/bin/env bash
# PTS only parses results from the file at $LOG_FILE (set by the PTS client), never
# from captured stdout directly — so the parseable result line must land there too.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
exec java --enable-preview --add-modules jdk.incubator.vector \
java --enable-preview --add-modules jdk.incubator.vector \
-jar "$HERE/skainet-engine-publish.jar" \
run --scenario engine-fp32-gemm --out "$HERE/last-result.json" "$@"
run --scenario engine-fp32-gemm --out "$HERE/last-result.json" "$@" \
| tee -a "${LOG_FILE:-/dev/stdout}"
WRAPPER
chmod +x "$DEST/$SCENARIO"
chmod +x "$DEST/skainet-$SCENARIO"
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,15 @@
<TestProfile>
<Version>1.0.0</Version>
<SupportedPlatforms>Linux, MacOSX</SupportedPlatforms>
<SoftwareType>Library</SoftwareType>
<SoftwareType>Benchmark</SoftwareType>
<TestType>Processor</TestType>
<License>MIT</License>
<Status>Testing</Status>
<License>Free</License>
<Status>Unverified</Status>
<Maintainer>SKaiNET Developers</Maintainer>
<Executable>skainet-engine-fp32-gemm</Executable>
</TestProfile>
<TestSettings>
<Default>
<Arguments>--smoke false</Arguments>
<Arguments></Arguments>
</Default>
<Option>
<DisplayName>Mode</DisplayName>
<Identifier>mode</Identifier>
<Menu>
<Entry>
<Name>Full</Name>
<Value>--smoke false</Value>
</Entry>
<Entry>
<Name>Smoke</Name>
<Value>--smoke</Value>
</Entry>
</Menu>
</Option>
</TestSettings>
</PhoronixTestSuite>
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,15 @@ fi

cp "$SKAINET_PUBLISH_JAR" "$DEST/skainet-engine-publish.jar"

cat > "$DEST/$SCENARIO" <<'WRAPPER'
cat > "$DEST/skainet-$SCENARIO" <<'WRAPPER'
#!/usr/bin/env bash
# PTS only parses results from the file at $LOG_FILE (set by the PTS client), never
# from captured stdout directly — so the parseable result line must land there too.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
exec java --enable-preview --add-modules jdk.incubator.vector \
java --enable-preview --add-modules jdk.incubator.vector \
-jar "$HERE/skainet-engine-publish.jar" \
run --scenario engine-kernel-matmul --out "$HERE/last-result.json" "$@"
run --scenario engine-kernel-matmul --out "$HERE/last-result.json" "$@" \
| tee -a "${LOG_FILE:-/dev/stdout}"
WRAPPER
chmod +x "$DEST/$SCENARIO"
chmod +x "$DEST/skainet-$SCENARIO"
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,27 @@
<TestProfile>
<Version>1.0.0</Version>
<SupportedPlatforms>Linux, MacOSX</SupportedPlatforms>
<SoftwareType>Library</SoftwareType>
<SoftwareType>Benchmark</SoftwareType>
<TestType>Processor</TestType>
<License>MIT</License>
<Status>Testing</Status>
<License>Free</License>
<Status>Unverified</Status>
<Maintainer>SKaiNET Developers</Maintainer>
<Executable>skainet-engine-kernel-matmul</Executable>
</TestProfile>
<TestSettings>
<Default>
<Arguments>--smoke false --provider panama</Arguments>
<Arguments>--provider panama</Arguments>
</Default>
<Option>
<DisplayName>Kernel Provider</DisplayName>
<Identifier>provider</Identifier>
<Menu>
<Entry>
<Name>Panama Vector</Name>
<Value>--smoke false --provider panama</Value>
<Value>--provider panama</Value>
</Entry>
<Entry>
<Name>Scalar</Name>
<Value>--smoke false --provider scalar</Value>
<Value>--provider scalar</Value>
</Entry>
</Menu>
</Option>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,15 @@ fi

cp "$SKAINET_PUBLISH_JAR" "$DEST/skainet-engine-publish.jar"

cat > "$DEST/$SCENARIO" <<'WRAPPER'
cat > "$DEST/skainet-$SCENARIO" <<'WRAPPER'
#!/usr/bin/env bash
# PTS only parses results from the file at $LOG_FILE (set by the PTS client), never
# from captured stdout directly — so the parseable result line must land there too.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
exec java --enable-preview --add-modules jdk.incubator.vector \
java --enable-preview --add-modules jdk.incubator.vector \
-jar "$HERE/skainet-engine-publish.jar" \
run --scenario engine-q4-gemm --out "$HERE/last-result.json" "$@"
run --scenario engine-q4-gemm --out "$HERE/last-result.json" "$@" \
| tee -a "${LOG_FILE:-/dev/stdout}"
WRAPPER
chmod +x "$DEST/$SCENARIO"
chmod +x "$DEST/skainet-$SCENARIO"
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,15 @@
<TestProfile>
<Version>1.0.0</Version>
<SupportedPlatforms>Linux, MacOSX</SupportedPlatforms>
<SoftwareType>Library</SoftwareType>
<SoftwareType>Benchmark</SoftwareType>
<TestType>Processor</TestType>
<License>MIT</License>
<Status>Testing</Status>
<License>Free</License>
<Status>Unverified</Status>
<Maintainer>SKaiNET Developers</Maintainer>
<Executable>skainet-engine-q4-gemm</Executable>
</TestProfile>
<TestSettings>
<Default>
<Arguments>--smoke false</Arguments>
<Arguments></Arguments>
</Default>
<Option>
<DisplayName>Mode</DisplayName>
<Identifier>mode</Identifier>
<Menu>
<Entry>
<Name>Full</Name>
<Value>--smoke false</Value>
</Entry>
<Entry>
<Name>Smoke</Name>
<Value>--smoke</Value>
</Entry>
</Menu>
</Option>
</TestSettings>
</PhoronixTestSuite>
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,15 @@ fi

cp "$SKAINET_PUBLISH_JAR" "$DEST/skainet-engine-publish.jar"

cat > "$DEST/$SCENARIO" <<'WRAPPER'
cat > "$DEST/skainet-$SCENARIO" <<'WRAPPER'
#!/usr/bin/env bash
# PTS only parses results from the file at $LOG_FILE (set by the PTS client), never
# from captured stdout directly — so the parseable result line must land there too.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
exec java --enable-preview --add-modules jdk.incubator.vector \
java --enable-preview --add-modules jdk.incubator.vector \
-jar "$HERE/skainet-engine-publish.jar" \
run --scenario engine-q8-matmul --out "$HERE/last-result.json" "$@"
run --scenario engine-q8-matmul --out "$HERE/last-result.json" "$@" \
| tee -a "${LOG_FILE:-/dev/stdout}"
WRAPPER
chmod +x "$DEST/$SCENARIO"
chmod +x "$DEST/skainet-$SCENARIO"
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,27 @@
<TestProfile>
<Version>1.0.0</Version>
<SupportedPlatforms>Linux, MacOSX</SupportedPlatforms>
<SoftwareType>Library</SoftwareType>
<SoftwareType>Benchmark</SoftwareType>
<TestType>Processor</TestType>
<License>MIT</License>
<Status>Testing</Status>
<License>Free</License>
<Status>Unverified</Status>
<Maintainer>SKaiNET Developers</Maintainer>
<Executable>skainet-engine-q8-matmul</Executable>
</TestProfile>
<TestSettings>
<Default>
<Arguments>--smoke false --provider panama</Arguments>
<Arguments>--provider panama</Arguments>
</Default>
<Option>
<DisplayName>Kernel Provider</DisplayName>
<Identifier>provider</Identifier>
<Menu>
<Entry>
<Name>Panama Vector</Name>
<Value>--smoke false --provider panama</Value>
<Value>--provider panama</Value>
</Entry>
<Entry>
<Name>Scalar</Name>
<Value>--smoke false --provider scalar</Value>
<Value>--provider scalar</Value>
</Entry>
</Menu>
</Option>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,15 @@ fi

cp "$SKAINET_PUBLISH_JAR" "$DEST/skainet-engine-publish.jar"

cat > "$DEST/$SCENARIO" <<'WRAPPER'
cat > "$DEST/skainet-$SCENARIO" <<'WRAPPER'
#!/usr/bin/env bash
# PTS only parses results from the file at $LOG_FILE (set by the PTS client), never
# from captured stdout directly — so the parseable result line must land there too.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
exec java --enable-preview --add-modules jdk.incubator.vector \
java --enable-preview --add-modules jdk.incubator.vector \
-jar "$HERE/skainet-engine-publish.jar" \
run --scenario engine-reductions-mean --out "$HERE/last-result.json" "$@"
run --scenario engine-reductions-mean --out "$HERE/last-result.json" "$@" \
| tee -a "${LOG_FILE:-/dev/stdout}"
WRAPPER
chmod +x "$DEST/$SCENARIO"
chmod +x "$DEST/skainet-$SCENARIO"
Loading
Loading