-
Notifications
You must be signed in to change notification settings - Fork 101
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
Feature/openqxd #1414
base: develop
Are you sure you want to change the base?
Feature/openqxd #1414
Conversation
The rank formula was updated to the openQxD layout: rank = coords[0]*dims[1]*dims[2]*dims[3] + coords[1]*dims[2]*dims[3] + coords[2]*dims[3] + coords[3]
The forloop was corrected (typo in i counter)
corrected to i<=3
trying to manually couple indexing correctly
Currently, the reordering is done inside OpenQxd
Probably it will continue to work for spinor fields... To be confirmed..
In check3, only half the sites are loaded onto quda (odd ones on whole lattice), then in the save function, only the odd ones in the first half get reloaded!
… feature/openqxd
Sw term is zero, but QUDA should not complain then
Dear Kate, I dealt with the two points:
Best, |
Hi Roman, I've added you to the lattice github group, so you should have permission to edit the wiki now (and push to branches in the lattice org). Thx |
@Jenkins ok to test |
I was able to commit to the wiki, thanks for giving me access! |
cscs-ci run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've had a review of the latest code. This is a great contribution, but a few things left outstanding to be resolved. I have left some comments, but beyond those:
- The C89 changes are of concern, since we will be embracing a C99 interface, e.g., use of
bool
. - The new openQCD interface is rather opaque to me. Can this be better documented?
- Thanks for the wiki additions. Is there a test input file or equivalent to allow us to run a test with this?
@@ -2606,6 +2606,8 @@ namespace quda { | |||
&& (pc_type == QUDA_MATPC_EVEN_EVEN || pc_type == QUDA_MATPC_EVEN_EVEN_ASYMMETRIC)) | |||
return true; | |||
|
|||
if (dirac_type == QUDA_WILSON_DIRAC || dirac_type == QUDA_CLOVER_DIRAC) return true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This addition here looks bogus: the Wilson operator is not Hermitian. Is this addition intentional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is in the class DiracG5M
(i.e. gamma5 times the Dirac operator), which is Hermitian. I had to change this, since the eigensolver didn't accept a non-Hermitian operator else. So this should be correct (only for gamma5*D
and D*gamma5
though).
@@ -38,6 +38,20 @@ namespace quda | |||
#else | |||
errorQuda("QUDA_RECONSTRUCT=%d does not enable reconstruct-8/9", QUDA_RECONSTRUCT); | |||
#endif | |||
#ifdef BUILD_OPENQCD_INTERFACE |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kostrzewa noting that we could augment this for tmLQCD after this is merged to give recon 9/13 support, which I guess will help your perf?
Dear Kate,
|
@chaoos apologies for the slow reply at my end. GTC and other travel got in the way..... If you can revert the C99 -> C89 changes that would be great. It would also narrow the scope of the PR which would also be helpful. Regarding documentation, the basic rule is that all new functions should have doxygen markup next to their declarations, together with overall conceptual documentation in the wiki. If you can write up the documentation to include cloning the openq*d and compiling the code to work with QUDA that would be great. Understood that the repo isn't public yet, and that's fine for now. Does that sound ok to you? |
not do any transfer of fields)
develop
branch