-
Notifications
You must be signed in to change notification settings - Fork 295
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
An example of using cuda within plumed: the COORDINATION #1028
Conversation
Squashed commit of the following: commit 08dbb097f141f9e6faa5af2bb14588137f6193ce Author: Daniele Rapetti <[email protected]> Date: Tue Nov 28 15:24:50 2023 +0100 runned astyle on cuda files commit 6e7c9ddae4ded92ced31539676ce2c6d86f45b31 Author: Daniele Rapetti <[email protected]> Date: Tue Nov 28 15:24:02 2023 +0100 adding astyle commit 44fc0522f6cdc717abcd028e4c0f3238751b1108 Author: Daniele Rapetti <[email protected]> Date: Tue Nov 28 15:23:20 2023 +0100 setting up the tests commit 794312d3dff7313603bc704517b1740d95fbc2ae Author: Daniele Rapetti <[email protected]> Date: Tue Nov 28 15:17:02 2023 +0100 changed the makefile procedure commit e5f80d09d6bd37f52be496f1e2c8be447db065e9 Author: Daniele Rapetti <[email protected]> Date: Tue Nov 28 15:16:32 2023 +0100 easier to mantain gitignores commit 669b4de123ba1b592d8f5f1b3df02c9ff0621593 Author: Daniele Rapetti <[email protected]> Date: Tue Nov 28 14:42:35 2023 +0100 nvcc-mklib compiles
These images show how the time scales with nat= 108, 1944, 2916, 5832, 11664, 31104, 40500 atoms in the system. The time axis is logarithmic. single group (self)between two groupsbetween two groups, but with the PAIR flag |
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## master #1028 +/- ##
========================================
Coverage 84.18% 84.18%
========================================
Files 612 614 +2
Lines 56497 56669 +172
========================================
+ Hits 47563 47709 +146
- Misses 8934 8960 +26 ☔ View full report in Codecov by Sentry. |
@Iximiel I see that this is fully in the plugin directory, so merging should nor hurt anything. As for python stuff, I see some potential redundancy in the way you arranged regtests. Probably the best is to merge this as well and then check if we can factorize some script. Some additional comments:
Then if you think it's ok I can just click merge |
Now that I think it, the test are more or less all weak because I'm just using the cube of 108 atoms repeatedly, so if I am not loading the atoms correctly I might use the same, not changed atoms.
I agree. Is this a "me problem" or a "future me problem"? Maybe can be solved with the device emulation, but i need to dig further
Because of the 2FA I think that will need a manual run, but the script should not be a problem
Yes. Let me update a little the tests and then I think this can be accepted |
Maybe can we reduce a bit the footprint by generating this with awk before running the test? |
I collapsed both the pbc and the non-pbc trajectories in 10 frames If you merge-squash we do not track the part with all the trajectories multiplied, and that would leave a lighter footprint |
OK let me know what it's ready for merge! |
I think is ready to be merged as is. I have no idea how much time would take to set up the CI for the GPU code |
Description
I implemented a basic version of the Coordination with cuda.
It is not perfect, but showcase an approach to the problem using cuda.
I do not know if it is possible to run any GPU code on the nodes, as now there is no CI integration.
The plug in is set up like the pycv one.
I am adding a comment some graphs with the performance difference between the CPU and the cuda versions (run on Leonardo).
Target release
I would like my code to appear in release 2.10
Type of contribution
Copyright
COPYRIGHT
file with the correct license information. Code should be released under an open source license. I also used the commandcd src && ./header.sh mymodulename
in order to make sure the headers of the module are correct.Tests