GPU acceleration with bonds

Hello, lammps community

Does anybody know,
is there a way to accelerate LAMMPS with Nvidia GPU,
when modeling polymer melts, or long single chains with pair_style lj/cut?
As far as I understand, user-cuda package can’t process bonded interactions on the GPU
so it decreases performance because it copies coordinates etc. between CPU and GPU memory every timestep.

So the question is - does any other package (gpu, kokkos, etc. ) accelerate such a system?
Or plain MPI is the best choice?

Thanks,
alex

Hello, lammps community

Does anybody know,
is there a way to accelerate LAMMPS with Nvidia GPU,
when modeling polymer melts, or long single chains with pair_style lj/cut?
As far as I understand, user-cuda package can't process bonded
interactions on the GPU
so it decreases performance because it copies coordinates etc. between CPU
and GPU memory every timestep.

So the question is - does any other package (gpu, kokkos, etc. )
accelerate such a system?
Or plain MPI is the best choice?

​the time spent on computing bonds is typically quite small compared to the
time spent on computing non-bonded interactions.
please also consider that bonded interactions do not accelerate well. many
times the computation of them is much slower than on the host CPU, since
there is a *much* small number of work units compared to nonbonded
interactions.

also, the time transferring data to and from the GPU is not that large, if
the neighbor lists are generated on the GPU. when running with GPUs and
MPI, the coordinates need to be communicated to the host anyway, as
multiple MPI ranks need to mutually update their respective ghost atom
coordinates.
furthermore, with asynchronous GPU kernel launches running some
computations on the CPU is even faster in total, as the calculations on the
CPU are essentially free. when running with multiple MPI ranks and using
long-range electrostatics, it is often *much* faster to disable GPU
acceleration for PPPM, even though it exists.

in short. things are not as simple.

please also note that the USER-CUDA package is deprecated and going to be
removed from LAMMPS in the future (unless somebody volunteers to take over
maintenance and fixes the known and yet unknown bugs in it). please use the
GPU package or the KOKKOS package.

axel.

thank you!

MPI with GPU package worked well.

alex

FYI, Kokkos does accelerate some bond/angle/dihedral/improper types on the GPU, and from my tests did get speedup. However, Kokkos is still under development and isn’t as mature as the GPU package.

Stan