-
Notifications
You must be signed in to change notification settings - Fork 297
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
WIP for openacc (GPU) for MulticolvarTemplate #1206
base: final-backpropegation
Are you sure you want to change the base?
Conversation
8f15f0d
to
35b742a
Compare
@GiovanniBussi @gtribello Now if you run the new The next thing to do (after finding a solution for the virial) will be documenting what I did, since working with openacc feels more or less like playing with an escherian jenga tower |
@Iximiel, the stuff for the secondary structure using the new ParallelTaskManager is in the branch called gpuwork/secondarystructure |
Hi @Iximiel Further to my message the code for the new secondary structure stuff is in the gpuwork/secondarystructure-2 This version of the branch was built off final-backpropegation |
I managed to make also the virial work 😄 as now is not mergeable, becasue we are spending more time in printf-debugging that other. But I wanted to show that the code was working. I would like to do a small change while I a prepare this to be merged: I have already did something similar in ColvarOutput.h (where I also unrolled and removed the memory copies in |
Hi @Iximiel I made that change of variable name in the final-backpropegation branch that I pushed yesterday. If you have other changes that you think should be incorporated from the work you have done here then please PR them onto that branch. Thanks |
The changes in configure.ac in 37388af make working with nvhpc compiler much much easier |
db55c29
to
0891e5b
Compare
rebased on |
@gtribello it works (at least on my PC), on the branch more aligned with the I have included the change I proposed here I think I just need to refine a few things, but it is basically done:
|
bc858c1
to
efb7b76
Compare
//this is temporary: | ||
#ifdef __PLUMED_HAS_OPENACC | ||
#define __PLUMED_USE_OPENACC 1 | ||
#endif //__PLUMED_HAS_OPENACC |
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.
@gtribello I think it is done: with this last change I should have solved the cppcheck about __PLUMED_HAS_OPENACC
not being defined somewhere
My idea is to activate __PLUMED_USE_OPENACC
with __PLUMED_HAS_OPENACC
while it is "experimental" and then remove these "preheaders" and use __PLUMED_HAS_OPENACC
directly
Moreover now there is a "standard" way of compiling with openacc
I think now this is ready to be merged into final-backpropagation, so that I can rebase on these changes the work I am doing on the secondarystructure-2 branch
I am opening this PR to have a clearer diff and to make a few checks
In particular I need to understand why some tests do not pass anymore the forces part. I did not touch that part yet... (could be that skipping of the pbc passage 🤔)
So I need a clearer diff.
At the time of writing this the
/targetGPU/rt-matrixsum
that isadjmat/rt-matrixsum
passes the "value" test but not the "force test"If you try to compile/modify this remember that the dependency part of the build tree is somehow broken with nvc++ (at least with mine) and as now I am not trying to fix it. So to compile after a modification you have to manually delete the interested files (like this
rm src/colvar/Distance.o ; make -j12
)