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 HF datalayouts #2055

Merged
merged 1 commit into from
Oct 26, 2024
Merged

Add HF datalayouts #2055

merged 1 commit into from
Oct 26, 2024

Conversation

charleskawczynski
Copy link
Member

This PR adds support for new datalayouts:

  • VIJHF
  • IJHF
  • IHF
  • VIHF

For these new datalayouts, and other datalayouts that end with the field index, we'll be able to add fast paths for linear indexing. This will simply involve reviving #1922, and specializing on all datalayouts with the field index at the end.

Finally, we can compare this with our VIJFH datalayout performance.

To make this work with our existing implementation, users can now make horizontal spaces with a new keyword argument:
HorizontalLayout = DataLayouts.IJFH, which users may change to HorizontalLayout = DataLayouts.IJHF to try the new datalayout.

@charleskawczynski
Copy link
Member Author

cc @sriharshakandala, @dennisYatunin, @Sbozzolo, this PR may not be completely ready as I'm ironing out some issues, but can you please review the extension of our datalayouts and the design of how I've added the ability to make HF spaces?

Fix some bugs

Widen benchmarks, fix CPU-GPU dispatch

Fix code loading

Specialize in gpu pointwise kernels

Fix adapt call

Ensure has_uniform_datalayouts for cuda copyto

Dont limit recursion in get_struct_linear

Bump allocation limit, add mem to benchmark stencil job

Specialize HF for fused kernels

Simplify n_dofs

Add some docs and change HorizontalLayout to horizontal_layout_type

Apply formatter

Revert n_ndofs simplification

Add some unit tests, and fix empty field edge cases

Add some comments, use todata for some broadcasted objects

Forward todata, extend onExtrudedBroadcasted

Apply formatter

Use more non-specific DimensionMismatch error

Add a new unit test

Add more unit tests with edge case fixes

Fix more edge cases
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants