Skip to content

Subgroup size for subgroup primitives #118

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

Open
sravanikonda opened this issue Apr 13, 2020 · 2 comments
Open

Subgroup size for subgroup primitives #118

sravanikonda opened this issue Apr 13, 2020 · 2 comments
Assignees
Labels
DPC++ enhancement New feature or request

Comments

@sravanikonda
Copy link

Querying sycl::info::device::sub_group_size gives several numbers. For example, we get 8, 16 and 32 for Gen9. We would like to specify the sub group size and this feature is supported. All three sizes seem to work except that subgroup primitives such as shuffle_down do not work for all sizes. By try and error, we have found that shuffle_down works for 16. Could oneAPI provide a query function for returning the "primitive" subgroup size?

@rscohn2 rscohn2 added DPC++ enhancement New feature or request labels Apr 13, 2020
@mkinsner
Copy link

@Pennycook any thoughts on direction here?

@Pennycook
Copy link

Sorry for the late response here. There was a lot of discussion about how to expose this functionality, and whether additional guarantees were required to make it useful.

Proposed changes to the sub-group class are being reviewed here: intel/llvm#2452. @sravanikonda , could you please take a look and confirm that the changes are sufficient?

I think that the "core" sub-group size is equivalent to the requested "primitive" sub-group size. The other changes clarify that not all features are supported by all sub-group sizes, and make it easy for developers to use a sub-group size that is guaranteed to work for all of their kernels.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DPC++ enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants