-
Notifications
You must be signed in to change notification settings - Fork 784
[CI][Benchmark] Add comparison script to benchmark scripts + benchmark dashboard via sycl-docs.yml #17522
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
[CI][Benchmark] Add comparison script to benchmark scripts + benchmark dashboard via sycl-docs.yml #17522
Changes from all commits
Commits
Show all changes
126 commits
Select commit
Hold shift + click to select a range
e6ca992
Move UR devops scripts to devops folder
ianayl 3d42db2
Restrict number of cores used
ianayl fc70520
Merge branch 'sycl' of https://github.com/intel/llvm into unify-bench…
ianayl 4f08dd6
Restore ur-benchmark*.yml
ianayl 497dcce
[benchmarks] improve HTML and Markdown output
pbalcer 3cbed5e
Test UR benchmarking suite
ianayl 1936207
Merge branch 'unify-benchmark-ci' of https://github.com/intel/llvm in…
ianayl f79bbbf
Bump tolerance to 7%
ianayl ffc8139
Revert "Bump tolerance to 7%"
ianayl 0a34e0d
[benchmarks] fix failing benchmarks, improve html output
pbalcer 3f42420
[benchmarks] fix python formatting with black
pbalcer 1c7b189
update driver version
pbalcer ad13e93
simplify preset implementation and fix normal preset
pbalcer 68ed0c4
Add PVC and BMG as runners
ianayl 18fff93
Merge branch 'unify-benchmark-ci' of https://github.com/intel/llvm in…
ianayl 3a65b98
Install dependencies before running UR script
ianayl 220121a
Use venv for python packages
ianayl 37d361c
Install venv before using venv
ianayl 07f1e10
[benchmarks] allow specifying custom results directories
pbalcer 64cf79c
[benchmarks] sort runs by date for html output
pbalcer 6c28d33
simplify presets, remove suites if all set
pbalcer e15b94f
[benchmarks] use python venv for scripts
pbalcer 78fd037
Run apt with sudo
ianayl 0ed1599
Merge branch 'unify-benchmark-ci' of https://github.com/intel/llvm in…
ianayl 82b6e55
Ignore "missing" apt packages in workflow
ianayl 162cba0
Change pip to install to user
ianayl 848f741
Ignore system controlled python env
ianayl 918604e
[CI] use realpaths when referring to SYCL
ianayl 72d8730
[CI] use minimal preset when running benchmarks
ianayl 066f5a6
[CI] Allow 2 bench scripts locations (#17394)
lukaszstolarczuk 18e5291
add ulls compute benchmarks
pbalcer 237750e
[CI][Benchmark] Decouple results from existing file structure, fetch …
ianayl ba1297f
[benchmark] Disabling UR test suites
ianayl cd6097f
update compute benchmarks and fix requirements
pbalcer c4e92c6
fix url updates
pbalcer ed8eecc
use timestamps in result file names
pbalcer 130212d
add hostname to benchmark run
pbalcer a884df8
Merge branch 'sycl' of https://github.com/intel/llvm into unify-bench…
ianayl 5323386
add SubmitGraph benchmark
pbalcer 5bd1d56
Restore sycl-linux-run-tests benchmarking action
ianayl e9b1375
Restore old SYCL benchmarking CI
ianayl a3edf7a
Add benchmarking results to sycl-docs.yml
ianayl 6620e4a
[CI] Bump compute bench (#17431)
lukaszstolarczuk f4a2e39
Initial implementation of unified benchmark workflow
ianayl 5d3b0d9
Merge branch 'unify-benchmark-ci' of https://github.com/intel/llvm in…
ianayl 38394bb
[CI] Use commit hash instead, fix issues with run
ianayl f232b93
add benchmark metadata
pbalcer 30cd308
apply formatting
pbalcer 5e0539a
fix multiple descriptions/notes
pbalcer 137407a
fix benchmark descriptions
pbalcer e0f5ca6
fix remote html output
pbalcer 1041db6
fix metadata collection with dry run
pbalcer fae04f4
cleanup compute bench, fix readme, use newer sycl-bench
pbalcer cfa4a9c
[CI] configure upload results
ianayl ca963e6
[CI] Change config to update during workflow run instead
ianayl 45a02e1
[CI] Change save name depending on build
ianayl 98f9d38
bump to 2024-2025
ianayl ef88ea0
[CI] Enforce commit hash to be string regardless
ianayl c65540d
Initial implementation of comparison code
ianayl b7acba2
cleanup options in js scripts and fix ordering on bar charts
pbalcer e330a50
use day on x axis for timeseries
pbalcer 0bd7488
document + add main function to compare.py
ianayl 0738185
Merge branch 'unify-benchmark-ci' of https://github.com/intel/llvm in…
ianayl 25fd917
add compare to benchmark action
ianayl 5ff2249
[test] hijack aggregate for testing
ianayl 1469a2a
add missing \, standardize cmd arg opts
ianayl d22b45e
add missing \
ianayl ab25299
add curly braces to escape _
ianayl cde744c
Merge branch 'sycl' of https://github.com/intel/llvm into unify-bench…
ianayl cae7049
[benchmarks] Undo merging in prior tests
ianayl 6bff3d6
add an option to limit build parallelism
pbalcer 3662b43
tiny tweaks for benchmark tags
pbalcer d2610c3
add support for benchmark tags
pbalcer ffc60bf
support for tags in html
pbalcer 75dd229
better and more tags
pbalcer cec8f05
formatting
pbalcer a0d8370
fix fetching tags from remote json
pbalcer c7f8d10
fix results /w descriptions and add url/commit of benchmarks
pbalcer 1dad513
fix git repo/hash for benchmarks
pbalcer 9f1df9a
[test] bump threshold to 0.01 to trigger failrues
ianayl 8437b89
Merge branch 'sycl' of https://github.com/intel/llvm into unify-bench…
ianayl be7271c
Rename ambiguous 'benchmarks.yml' to a better name
ianayl b58cd91
Merge branch 'unify-benchmark-ci' of https://github.com/intel/llvm in…
ianayl c55313b
Remove sycl-benchmark-aggregate instrumentation
ianayl d0d1d3d
Enable build from PR and L0v2
ianayl 4c51558
Introduce presets
ianayl 63d2235
Fix typo
ianayl 23330fc
Fix typo part 2.
ianayl 0d79d89
Fix typo pt 3.
ianayl 722e31e
Merge branch 'sycl' of https://github.com/intel/llvm into ianayl/benc…
ianayl a8048b2
Reset ur-build-hw.sh
ianayl 29d125c
Add comments explaining executable section in presets.py
ianayl 5a3afcb
Revert stuff that shouldnt be merged
ianayl b6d42d4
Finally no more reset_intel_gpu
ianayl 8b3b79c
Remove streaming median
ianayl 3a070d5
Add missing newlines
ianayl 186b36e
Allegedly, runner name is already baked into github_env
ianayl de280a5
Modify save directory structure, amend hostname behavior for github r…
ianayl 4f5ce71
typo fix
ianayl 9bd519f
Ensure timezones are UTC
ianayl 3726a7d
Clarify options
ianayl 60d80a9
enforce UTC time in benchmark action
ianayl c69e874
Properly load repo/commit information in CI
ianayl 6224eaa
[test] debug message
ianayl f0a9a97
I forgot a )
ianayl b68c119
misplaced )
ianayl cc17af9
revert test
ianayl 64832a6
[test] debug statements
ianayl ab07001
Whitespace was causing issues?
ianayl 2b94436
rename variables and remove sycl_ prefix
ianayl 63c3092
Delete text message, fix whitespace
ianayl 38bfe31
Merge branch 'sycl' of https://github.com/intel/llvm into ianayl/benc…
ianayl ca96184
Set up multiple push attempts in CI
ianayl a3d7ff6
Apply clang format
ianayl ba7df66
Archive benchmark runs
ianayl 989441d
Remove legacy benchmarking code
ianayl 850ccac
Fix typo
ianayl 47d8861
Update nightly to use new workflow
ianayl 56461ec
Fix bug with caching
ianayl bfbc7b6
Fix typo
ianayl 3913619
Use no-assertions builds for benchmarking
ianayl 2fab911
Use shared build in nightly
ianayl 652fd39
Build no-assertion versions from scratch instead
ianayl 5a41787
Add a message indicating compare script has indeed been ran
ianayl 05994f2
Add comments to benchmark options in sycl-linux-run-tests
ianayl c148216
Revert changes to use linux_shared_build for benchmark runs
ianayl File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,138 @@ | ||
name: Benchmarks | ||
name: Run Benchmarks | ||
|
||
# This workflow is a WIP: this workflow file acts as a placeholder. | ||
on: | ||
workflow_call: | ||
inputs: | ||
preset: | ||
type: string | ||
description: | | ||
Benchmark presets to run: See /devops/scripts/benchmarks/presets.py | ||
required: false | ||
default: 'Minimal' # Only compute-benchmarks | ||
pr_no: | ||
type: string | ||
description: | | ||
PR no. to build SYCL from if specified: SYCL will be built from HEAD | ||
of incoming branch used by the specified PR no. | ||
|
||
on: [ workflow_dispatch ] | ||
If both pr_no and commit_hash are empty, the latest SYCL nightly build | ||
will be used. | ||
required: false | ||
default: '' | ||
commit_hash: | ||
type: string | ||
description: | | ||
Commit hash (within intel/llvm) to build SYCL from if specified. | ||
|
||
If both pr_no and commit_hash are empty, the latest commit in | ||
deployment branch will be used. | ||
required: false | ||
default: '' | ||
upload_results: | ||
type: string # true/false: workflow_dispatch does not support booleans | ||
required: true | ||
runner: | ||
type: string | ||
required: true | ||
backend: | ||
type: string | ||
required: true | ||
|
||
workflow_dispatch: | ||
inputs: | ||
preset: | ||
type: choice | ||
description: | | ||
Benchmark presets to run, See /devops/scripts/benchmarks/presets.py. Hint: Minimal is compute-benchmarks only. | ||
options: | ||
- Full | ||
- SYCL | ||
- Minimal | ||
- Normal | ||
- Test | ||
default: 'Minimal' # Only compute-benchmarks | ||
pr_no: | ||
type: string | ||
description: | | ||
PR no. to build SYCL from: | ||
|
||
SYCL will be built from HEAD of incoming branch. | ||
required: false | ||
default: '' | ||
commit_hash: | ||
type: string | ||
description: | | ||
Commit hash (within intel/llvm) to build SYCL from: | ||
|
||
Leave both pr_no and commit_hash empty to use latest commit. | ||
required: false | ||
default: '' | ||
upload_results: | ||
description: 'Save and upload results' | ||
type: choice | ||
options: | ||
- false | ||
- true | ||
default: true | ||
runner: | ||
type: choice | ||
options: | ||
- '["PVC_PERF"]' | ||
backend: | ||
description: Backend to use | ||
type: choice | ||
options: | ||
- 'level_zero:gpu' | ||
- 'level_zero_v2:gpu' | ||
# As of #17407, sycl-linux-build now builds v2 by default | ||
|
||
permissions: read-all | ||
|
||
jobs: | ||
do-nothing: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- run: echo 'This workflow is a WIP.' | ||
build_sycl: | ||
name: Build SYCL | ||
uses: ./.github/workflows/sycl-linux-build.yml | ||
with: | ||
build_ref: | | ||
${{ | ||
inputs.commit_hash != '' && inputs.commit_hash || | ||
inputs.pr_no != '' && format('refs/pull/{0}/head', inputs.pr_no) || | ||
github.ref | ||
}} | ||
build_cache_root: "/__w/" | ||
build_artifact_suffix: "prod_noassert" | ||
build_cache_suffix: "prod_noassert" | ||
build_configure_extra_args: "--no-assertions" | ||
build_image: "ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest" | ||
cc: clang | ||
cxx: clang++ | ||
changes: '[]' | ||
|
||
run_benchmarks_build: | ||
name: Run Benchmarks on Build | ||
needs: [ build_sycl ] | ||
strategy: | ||
matrix: | ||
include: | ||
- ref: ${{ inputs.commit_hash != '' && inputs.commit_hash || format('refs/pull/{0}/head', inputs.pr_no) }} | ||
save_name: ${{ inputs.commit_hash != '' && format('Commit{0}', inputs.commit_hash) || format('PR{0}', inputs.pr_no) }} | ||
# Set default values if not specified: | ||
runner: ${{ inputs.runner || '["PVC_PERF"]' }} | ||
backend: ${{ inputs.backend || 'level_zero:gpu' }} | ||
uses: ./.github/workflows/sycl-linux-run-tests.yml | ||
secrets: inherit | ||
with: | ||
name: Run compute-benchmarks (${{ matrix.save_name }}, ${{ matrix.runner }}, ${{ matrix.backend }}) | ||
runner: ${{ matrix.runner }} | ||
image: ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest | ||
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | ||
target_devices: ${{ matrix.backend }} | ||
tests_selector: benchmarks | ||
benchmark_upload_results: ${{ inputs.upload_results }} | ||
benchmark_save_name: ${{ matrix.save_name }} | ||
benchmark_preset: ${{ inputs.preset }} | ||
repo_ref: ${{ matrix.ref }} | ||
devops_ref: ${{ github.ref }} | ||
sycl_toolchain_artifact: sycl_linux_prod_noassert | ||
sycl_toolchain_archive: ${{ needs.build_sycl.outputs.artifact_archive_name }} | ||
sycl_toolchain_decompress_command: ${{ needs.build_sycl.outputs.artifact_decompress_command }} |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.