Skip to content
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

Add experimental split constraints API #212

Merged
merged 1 commit into from
Oct 10, 2023
Merged

Add experimental split constraints API #212

merged 1 commit into from
Oct 10, 2023

Conversation

psalz
Copy link
Member

@psalz psalz commented Sep 12, 2023

This adds a new experimental::constrain_split() API that can be used to limit the ways in which a kernel can be split, similar to how ND-range kernels are constrained to be split along work group boundaries.

The implementation is rather trivial, as it mostly reuses the already existing task geometry mechanism we have. The only addition of note is that if an ND-range kernel is additionally constrained, the effective constraint will be the last common multiple LCM(wg-size, user-constraint)

@github-actions
Copy link

Check-perf-impact results: (7a518c63eb0655471fea6a4902fc0af7)

❓ No new benchmark data submitted. ❓
Please re-run the microbenchmarks and include the results if your commit could potentially affect performance.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

include/handler.h Outdated Show resolved Hide resolved
include/handler.h Outdated Show resolved Hide resolved
include/handler.h Show resolved Hide resolved
include/handler.h Show resolved Hide resolved
include/handler.h Outdated Show resolved Hide resolved
@github-actions
Copy link

Check-perf-impact results: (5a19ced85f862a00d0114dd241122462)

❓ No new benchmark data submitted. ❓
Please re-run the microbenchmarks and include the results if your commit could potentially affect performance.

Copy link
Contributor

@fknorr fknorr left a comment

Choose a reason for hiding this comment

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

LGTM!

include/handler.h Outdated Show resolved Hide resolved
@psalz psalz force-pushed the split-constraints branch from 29433eb to fdf0897 Compare October 9, 2023 08:17
This adds a new experimental::constrain_split() API that can be used to
limit the ways in which a kernel can be split, similar to how ND-range
kernels are constrained to be split along work group boundaries.
@psalz psalz force-pushed the split-constraints branch from fdf0897 to e887460 Compare October 9, 2023 13:16
Copy link
Contributor

@PeterTh PeterTh left a comment

Choose a reason for hiding this comment

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

LGTM

CHANGELOG.md Show resolved Hide resolved
@psalz psalz merged commit 65dc256 into master Oct 10, 2023
28 checks passed
@psalz psalz deleted the split-constraints branch October 10, 2023 08:33
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.

3 participants