Skip to content

Add HF datalayouts#2055

Merged
charleskawczynski merged 1 commit into
mainfrom
ck/HF_datalayouts
Oct 26, 2024
Merged

Add HF datalayouts#2055
charleskawczynski merged 1 commit into
mainfrom
ck/HF_datalayouts

Conversation

@charleskawczynski

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor 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?

Comment thread examples/common_spaces.jl Outdated
Comment thread src/DataLayouts/non_extruded_broadcasted.jl Outdated
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