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

HALOEXCHANGE_FUSED WorkGroup Dispatch Policies #260

Merged
merged 4 commits into from
Dec 14, 2023

Conversation

MrBurmark
Copy link
Member

Use new Dispatch policies in HALOEXCHANGE_FUSED.

This demonstrates the work group dispatch policies added to RAJA.

Based on changes in RAJA PR LLNL/RAJA#1320.

  • This PR is a feature
  • It does the following:
    • Adds a point for dispatch policy comparison at the request of myself

Copy link

@robinson96 robinson96 left a comment

Choose a reason for hiding this comment

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

LGTM

@rhornung67 rhornung67 mentioned this pull request Jul 10, 2023
24 tasks
@MrBurmark MrBurmark changed the title HALOEXCHANGE_FUSED WorkGroup Dispatch Policies [Draft] HALOEXCHANGE_FUSED WorkGroup Dispatch Policies Jul 18, 2023
It now takes a camp::list of types and calls the function with
a default initialized object of each type in order.
Gpu block sizes were changed from integer sequences
to lists of integral constants to work with the changes.
Make a templated member function to handle different tunings.
@MrBurmark MrBurmark force-pushed the feature/burmark1/fusable_direct_dispatch branch from 28c07fc to a2e0b75 Compare December 14, 2023 00:08
@MrBurmark MrBurmark changed the title [Draft] HALOEXCHANGE_FUSED WorkGroup Dispatch Policies HALOEXCHANGE_FUSED WorkGroup Dispatch Policies Dec 14, 2023
@MrBurmark
Copy link
Member Author

I've discovered one potential down side to abstracting the workgroup implementation. I can no longer use lambdas in the RAJA variants because the templated function has to support direct dispatch polices and indirect policies. The direct polices require fore-knowledge of the types used so I end up using functional classes instead of lambdas. Previously the indirect polices where in their own function so they used lambdas. I will be able to use if constexpr in c++17 to use lambdas however.

@MrBurmark MrBurmark merged commit de080df into develop Dec 14, 2023
19 checks passed
@MrBurmark MrBurmark deleted the feature/burmark1/fusable_direct_dispatch branch December 14, 2023 16:47
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.

None yet

3 participants