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

Define getindex_field and setindex_field #2050

Merged
merged 1 commit into from
Oct 18, 2024

Conversation

charleskawczynski
Copy link
Member

As I was trying to refactor our cuda dss code to use less DataLayouts internals, I realized that DataLayouts currently doesn't have an interface to achieve the same level of parallelism that our dss implementation achieves. So, this PR adds an interface to support this. This PR definesgetindex_field and setindex_field!. These new functions take a universal index and, unlike getindex(::AbstractData, ::CartesianIndex), uses the field index. This will allow us to write data-agnostic kernels that leverage the universal indexing scheme, while still allowing us to use cuda threads for each field variable.

This will allow us to refactor our dss kernels, so that we can close #2048, while not losing our current level of parallelism.

@charleskawczynski charleskawczynski merged commit 78894fc into main Oct 18, 2024
15 of 16 checks passed
@charleskawczynski charleskawczynski deleted the ck/dl_get_single_fid branch October 18, 2024 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use less internals in DSS
2 participants