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

Mods to allow copy in/out of full QDP-JIT spinors #1504

Merged
merged 4 commits into from
Oct 29, 2024

Conversation

bjoo
Copy link
Member

@bjoo bjoo commented Oct 16, 2024

Mods to allow copy-in of full (both parities) of QDP-JIT fields. This should allow the use of unpreconditioned actions from Chroma (allowing QUDA to take care of source creation and reconstruction on device).

@bjoo bjoo requested a review from a team as a code owner October 16, 2024 14:31
@bjoo bjoo requested a review from maddyscientist October 16, 2024 14:35
@bjoo
Copy link
Member Author

bjoo commented Oct 16, 2024

I have tested this with Chroma using CG and BiCGStab. In the end I went with an inline function to compute the parities. This way I don't need to flip them in the constructor body (which would involve changing a 'const int`). Rather the constructor can call the helper function to set the parities. This avoids having to check, e.g. a 'flipInputParity' flag in the actual accessor every time we access.

I ran git clang-format as well to clang-format the changes. Hope it is OK.

@bjoo bjoo removed the request for review from maddyscientist October 16, 2024 14:37
@bjoo
Copy link
Member Author

bjoo commented Oct 16, 2024

Removed Kate from the reviewer list since I think she is already part of the quda_core.

@bjoo
Copy link
Member Author

bjoo commented Oct 16, 2024 via email

@maddyscientist
Copy link
Member

maddyscientist commented Oct 16, 2024

So, the way checkerboarding works in Chroma at the moment, is that we always use the Odd Subset for preconditioned solves. However it may be worth bullet proofing, in case someone wants to call an even-even solve for whatever reason. Can we get that info? (A reference to the solver params) from the ColorSpinor fields? If so, the ‘computeParity()’ function is a good place to put that I guess.

Yes, that information is available. When the fields are set up, the preconditioning type for the solver (even-even, odd-odd, even-even-asymmetric, etc.) is used to store the "suggested" parity for the field. The function to query is ColorSpinorField::SuggestedParity().

Copy link
Contributor

@weinbe2 weinbe2 left a comment

Choose a reason for hiding this comment

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

This has my approval pending the doxygen request! I confirmed offline that this was clang-format'd.

@bjoo
Copy link
Member Author

bjoo commented Oct 28, 2024

Resolved Evan's comment with: commit 25cfeed

@bjoo
Copy link
Member Author

bjoo commented Oct 28, 2024

Fixed @param f[in] -> @param[in] f in 76947a3

@bjoo
Copy link
Member Author

bjoo commented Oct 29, 2024

OK. Looks like comments are resolved, and PR is approved so here goes...

@bjoo bjoo closed this Oct 29, 2024
@bjoo bjoo reopened this Oct 29, 2024
@bjoo bjoo merged commit aebd9b2 into develop Oct 29, 2024
13 checks passed
@bjoo bjoo deleted the feature/full-qdpjit-fields branch October 29, 2024 14:53
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.

3 participants