Skip to content

Conversation

PatKamin
Copy link
Contributor

@PatKamin PatKamin commented Oct 7, 2025

Use the Combo Profiler in all supported Compute Benchmark scenarios. Introduce the --profiler-type parameter for picking one profiler each run. This effectively disables running the same scenarios two times: with time measurement and with CPU instructions retired counter.

Leaving by default CPU counter scenarios enabled in CI. This will result in less scenarios being ran as we won't run time-measuring scenarios where CPU counter is available. In the dashboard, only historic results will be drawn, no new runs in such cases.

The CPU count groups and names suffix can now be safely determined beforehand, without having to parse run logs.

Also, a Compute Benchmarks version bump is made for these changes.

Copy link
Contributor

@lukaszstolarczuk lukaszstolarczuk left a comment

Choose a reason for hiding this comment

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

LGTM

It makes sense to measure either time elapsed or cpu instructions
retired, not both. Adding an argument to scripts to run Compute
Benchmarks scenarios with only one of two scenarios would lower
the number of benchmark scenarios significantly. This would make
the tests to take less amount of time to complete, giving the user an
option to produce either time or cpu instructions count results,
where applicable.
@PatKamin PatKamin requested a review from lslusarczyk October 8, 2025 10:55
@PatKamin
Copy link
Contributor Author

@vinser52, please, review. Now both time and CPU instructions count are always measured.

Avoid creating new groups/names as each runtime has only one valid EmulateGraphs value.
@vinser52
Copy link
Contributor

@vinser52, please, review. Now both time and CPU instructions count are always measured.

Not directly related to this PR, but follow-up. Do I understand correctly that ComboProfiler is not supported in L0 versions of the benchmarks? Are you planning to extend L0 versions as well as a next step?

@PatKamin
Copy link
Contributor Author

@vinser52, please, review. Now both time and CPU instructions count are always measured.

Not directly related to this PR, but follow-up. Do I understand correctly that ComboProfiler is not supported in L0 versions of the benchmarks? Are you planning to extend L0 versions as well as a next step?

Yes, currently only timer is supported in SubmitKernel and SubmitGraph Level Zero scenarios in Compute Benchmarks' implementation. We might add the CPU counter in some future PRs, if needed.

return self.bench.project.build_dir / "bin" / self.bench_name

def cpu_count_str(self, separator: str = "") -> str:
# Note: SYCL CI currently parses for on this "CPU count" value.
Copy link
Contributor

Choose a reason for hiding this comment

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

when you rebase with my PR, pls note there's a slight change in here

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks, rebased

Copy link
Contributor

@vinser52 vinser52 left a comment

Choose a reason for hiding this comment

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

LGTM. I am not an expert in this part. I would ask someone else who is more familiar with these scripts to approve. But no objections from my side.

@PatKamin
Copy link
Contributor Author

@intel/llvm-gatekeepers, please merge.

@sarnex sarnex merged commit 93a515d into intel:sycl Oct 16, 2025
28 checks passed
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