LAMMPS GPU compilation errors

Dear All,

We are looking forward to unleash our GPUs to accelerate LAMMPS, however I cannot seem to tackle a particular error with the compilation on my own.

I think I took care of the libgpu part just fine (although I had to disable the ICC version check in cuda as a ugly hack), since I have an non-empty libgpu.a now. However, the LAMMPS compilation still shows many undefined references related to gpus. I checked some of those references in libgpu.a (using nm), and I can see functions with similar (but not identical) names. The entire log is attached. I really have no idea where to look for these references and which library seems to be missing or incomplete.

I will very much appreciate any input and help!

Thanks,
-Mehmet

lammps_gpu_errors.txt (16.7 KB)

Hi

did you compile the GPU package with the same MPI wrapper (and flags) as you used in the main compilation?
I know its not much help, but I compiled the Oct27 version successfully on multiple machines.

Cheers
Christian

-------- Original-Nachricht --------

Hi

did you compile the GPU package with the same MPI wrapper (and flags) as you used in the main compilation?
I know its not much help, but I compiled the Oct27 version successfully on multiple machines.

christian,
this is very likely the problem.

the MPI lib seems to be using PGI compilers,
but i don't think that their C++ ABI is compatible
with the GNU compiler's.

i would compile everything with gcc/g++ first.
the PGI c++ compiler is pretty bad in any case
and in my personal opinion not worth the trouble
in the first place.

axel.

No, they are not even the same compilers(!) The main compilation is with PGI, and the GPU lib was compiled with Intel. In fact, I was expecting this could be a problem, but missing reference names may indicate other problems, I guess. Which combinations did you use, and which versions?

Thanks a lot!
-Memo

Thank you, I will try that. We had very good performance with PGI (for regular LAMMPS) before, that’s why I went with it. I will try with gcc and see how it goes.

-Memo

Hi

you have to use the same compiler for both the library and the main compilation but it shouldne matter which it is - so the PGI compiler should work as well. I've been compiling with the intel compiler as backend.

Christian

-------- Original-Nachricht --------

try using gcc/g++ with these settings (gcc 4.4 and later):

CC = mpic++
CCFLAGS = -O2 -fomit-frame-pointer -fno-rtti -fno-exceptions \
                        -march=native -ffast-math -mpc64 -finline-functions \
                        -funroll-loops -fstrict-aliasing

LINK = mpic++
LINKFLAGS = -O -g -fno-rtti -fno-exceptions -mpc64

they are incompatible with AtC, but i would rather compile
a separate binary for users of that than having everything else run
slower due to requiring exception and run-time-type-info support.

axel.