Skip to content

[CI][UR] Unify UR and SYCL benchmarking CI into a single benchmarking CI #17229

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

Draft
wants to merge 79 commits into
base: sycl
Choose a base branch
from

Conversation

ianayl
Copy link
Contributor

@ianayl ianayl commented Feb 27, 2025

Unfortunately this PR got pretty big, and people have expressed that they don't want to review such a big PR...

I am working on splitting this PR, see this for current status: #17545 (comment)

Copy link
Contributor

@pbalcer pbalcer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we also probably need to modify CODEOWNERS to include the new team, right?

@ianayl
Copy link
Contributor Author

ianayl commented Mar 3, 2025

we also probably need to modify CODEOWNERS to include the new team, right?

Yeah: Although, I'm thinking we do this at the end, when the workflow has taken more shape and we know exactly what locations to add to CODEOWNERS

@ianayl ianayl temporarily deployed to WindowsCILock March 4, 2025 21:21 — with GitHub Actions Inactive
@ianayl ianayl temporarily deployed to WindowsCILock March 4, 2025 21:36 — with GitHub Actions Inactive
pbalcer and others added 19 commits March 5, 2025 16:32
This patch improves numerous aspects on how the benchmarking
results are visualized:
 - rewrites the way HTML charts are generated, using a library (Chart.js)
 that's both easier to use and more visually pleasing.
 The new HTML page also now decouples data from the HTML itself,
 leading to faster load times and the ability to fetch data
 from remote sources.
 - The markdown output now contains a failures section that
 lists all benchmarks that failed for a given run. This will be
 a helpful for developers during PR testing.
 - Benchmarks can now have description that's displayed on the page.
 - And many more minor improvements.
@ianayl ianayl temporarily deployed to WindowsCILock March 21, 2025 20:20 — with GitHub Actions Inactive
@ianayl ianayl temporarily deployed to WindowsCILock March 21, 2025 20:20 — with GitHub Actions Inactive
@ianayl ianayl temporarily deployed to WindowsCILock March 21, 2025 20:38 — with GitHub Actions Inactive
@ianayl ianayl temporarily deployed to WindowsCILock March 21, 2025 20:38 — with GitHub Actions Inactive
@ianayl ianayl temporarily deployed to WindowsCILock March 21, 2025 20:54 — with GitHub Actions Inactive
martygrant pushed a commit that referenced this pull request Mar 24, 2025
Given that #17229 is massive, I am
splitting the PR into smaller individual PRs such that reviewers would
have an easier time. This PR prepares for changes in
#17229 by moving the UR benchmarking
scripts into devops.

For more context: A previous attempt at splitting is here
#17545, but even this is way too big,
and thus I'm splitting it into chunks.

This is a non-functional change, as these scripts not currently used
anywhere right now... hopefully soon though!
RossBrunton pushed a commit to oneapi-src/unified-runtime that referenced this pull request Mar 24, 2025
Given that intel/llvm#17229 is massive, I am
splitting the PR into smaller individual PRs such that reviewers would
have an easier time. This PR prepares for changes in
intel/llvm#17229 by moving the UR benchmarking
scripts into devops.

For more context: A previous attempt at splitting is here
intel/llvm#17545, but even this is way too big,
and thus I'm splitting it into chunks.

This is a non-functional change, as these scripts not currently used
anywhere right now... hopefully soon though!
sarnex pushed a commit that referenced this pull request Mar 25, 2025
This PR adds a placeholder sycl-ur-perf-benchmarking.yml in preparation
for testing and merging the benchmark.yml in
#17229.
martygrant pushed a commit that referenced this pull request Mar 26, 2025
…rks (#17617)

This PR partially merges changes introduced in
#17229. Specifically, it merges
changes related to:
- Introducing metadata in the result
- Tweaks to the benchmarks itself: benchmarks ran, parameters used to
run, what is enabled/disabled, etc
- Enables/Disables benchmarks we are interested/no longer interested in
  - Disables non-working benchmarks
  - Bumps commit hashes used to fetch each benchmark
- New command line arguments, such as `--build-jobs` and `--redownload`
(to re-fetch the benchmarks)

**Note:** I am relying on this PR having its commits squashed during
merge (which should be the default behavior for intel/llvm)

I did not try to clean up the commit history. Most of these changes are
by Piotr anyway, I wanted to make sure he was properly credited for the
changes.

Updates for current splitting effort of #17229:
#17545 (comment)

---------

Co-authored-by: Piotr Balcer <[email protected]>
Co-authored-by: Łukasz Stolarczuk <[email protected]>
martygrant pushed a commit that referenced this pull request Mar 27, 2025
In continuation of the effort outlined in
#17545 (comment), this
PR merges further changes introduced in
#17229. Specifically, it merges
@pbalcer's changes for adding the ability to run different benchmarking
presets

**Note:** I am relying on this PR having its commits squashed during
merge (which should be the default behavior for intel/llvm)

---------

Co-authored-by: Piotr Balcer <[email protected]>
Co-authored-by: Łukasz Stolarczuk <[email protected]>
martygrant pushed a commit that referenced this pull request Mar 27, 2025
…ntation (#17662)

In continuation of the effort outlined in
#17545 (comment), this
PR merges further changes introduced in
#17229. Specifically, it merges
changes related to markdown output generation intended for creating
summaries on user PRs.

Note: I am relying on this PR having its commits squashed during merge
(which should be the default behavior for intel/llvm)

---------

Co-authored-by: Piotr Balcer <[email protected]>
Co-authored-by: Łukasz Stolarczuk <[email protected]>
pbalcer and others added 4 commits March 27, 2025 13:03
…7608)

Beside the new class for fragmentation measurements, ComputeUMFBenchmark
base class is directly replaced by GBench. Methods and attributes
previously included in ComputeUMFBenchmark have been relevant only for
Google Benchmark, therefore inheriting from ComputeUMFBenchmark would
have been pointless for benchmarks using other frameworks.

Additionally, each benchmark is run separately in order to avoid any
impact of benchmarks on each other. Benchmarks using glibc are excluded
from fragmentation measurements.
martygrant pushed a commit that referenced this pull request Mar 28, 2025
In continuation of the effort outlined in
#17545 (comment), this
PR merges further changes introduced in
#17229. Specifically, it merges
@pbalcer's new HTML benchmarking results dashboard implementation, which
now loads html data from remote sources in order to facilitate bringing
up the benchmarking dashboard in intel.github.io in the future.

**Note:** I am relying on this PR having its commits squashed during
merge (which should be the default behavior for intel/llvm)

I did not try to clean up the commit history. Most of these changes are
by Piotr anyway, I wanted to make sure he was properly credited for the
changes.

---------

Co-authored-by: Piotr Balcer <[email protected]>
Co-authored-by: Łukasz Stolarczuk <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants