CUDA functionality of table potentials

So, I’ve defined a couple of potentials with a table, but they aren’t
implemented on CUDA yet. I don’t know who’s doing it (I think it’s
done by a particular user?), but does anyone here know if this is
going to be implemented anytime soon?

If not, I’m willing to contribute with this a bit (although my knowledge

in CUDA is quite limited yet)! Can you give me some pointers on this?

Pablo

PS: http://xkcd.com/138/

So, I've defined a couple of potentials with a table, but they aren't
implemented on CUDA yet. I don't know who's doing it (I think it's

that is not entirely correct. pair_style table is supported by the GPU
package, which is an alternative to the USER-CUDA package and also
supports compilation with CUDA. USER-CUDA and GPU follow two different
strategies of data management resulting in one package outperforming
the other under different scenarios (so you can get the best of both
worlds). if you want even more extreme GPU performance, you have to
look into a code like HOOMD-blue, that was designed from ground up for
GPU support. it is in many ways inspired by LAMMPS, but has a much
reduced feature set is not designed for large parallel calculations
with MPI like LAMMPS.

done by a particular user?), but does anyone here know if this is
going to be implemented anytime soon?

the author and maintainer of the USER-CUDA package is christian trott
(in cc), and his name is mentioned all over the place in README files
and the sources. but posting to the lammps-users lists with feature
requests and inquiries about implementation issues is ok, too. many
developers are subscribed and steve plimpton, the lead developer of
LAMMPS usually tosses the inquires to the proper people, if they don't
answer themselves right away.

If not, I'm willing to contribute with this a bit (although my knowledge
in CUDA is quite limited yet)! Can you give me some pointers on this?

as with all programming, and particularly large package programs, you
have to "use the source, luke", i.e. read through the current
implementation and follow the flow of control. the developers guide
document gives you a general overview of how lammps is structured and
how things are organized. there also is a paper by christian on arXiv
specifically on USER-CUDA, if i remember correctly.

axel.

Pablo

PS: http://xkcd.com/138/

LOL, can't do that (yet), you didn't say whether you are 32-bit or
64-bit and little endian or big endian. don't want to give you an
invalid pointer. :wink: