pe/atom and CUDA?

Hello,

I am trying to print out the per-atom energies to a dump file using CUDA and the following computes:

compute peratom all pe/atom
compute pe all reduce sum c_peratom
thermo 5
thermo_style custom step pe c_pe
thermo_modify format float %15.14g lost warn

dump geometry all custom 100 Ge.dump id type x y z c_peratom
dump_modify geometry format “%d %d %20.15g %20.15g %20.15g %20.15g”

I believe I have found a few bugs:

BUG 1. The per-atom energies, c_peratom (and hence the sum of the per-atom energies, c_pe) drop to zero after 70 timesteps. (See attachments: Ge.dump and log.lammps)

Here is the screen output:

LAMMPS (5 Mar 2012)

Using LAMMPS_CUDA

USER-CUDA mode is enabled (lammps.cpp:396)
Reading data file …
orthogonal box = (-70 -70 -70) to (70 70 70)
1 by 1 by 1 MPI processor grid
1388 atoms

CUDA: Activate GPU

Using device 0: GeForce GTX 560

CUDA: VerletCuda::setup: Allocate memory on device for maximum of 1388 atoms…

CUDA: Using precision: Global: 8 X: 8 V: 8 F: 8 PPPM: 8

Setting up run …

CUDA: VerletCuda::setup: Upload data…

CUDA: Total Device Memory useage post setup: 213.195312 MB

Memory usage per processor = 1.67601 Mbytes
Step PotEng pe
0 -4852.4009374448 -4852.4009374448
5 -4836.3778281971 -4833.4665176848
10 -4791.4542040333 -4791.4542040333
15 -4727.122805875 -4724.2129102419
20 -4656.4539000095 -4653.5480985489
25 -4596.3535288594 -4596.3535288594
30 -4565.1117098309 -4562.21656814
35 -4568.6075739802 -4565.7206205284
40 -4590.5287545806 -4587.655857678
45 -4617.0157756444 -4617.0157756444
50 -4640.5842013672 -4637.7590592372
55 -4654.586859057 -4651.7961199272
60 -4654.8542914239 -4652.103213556
65 -4641.0967615527 -4638.3873700257
70 -4616.6632862688 -4613.9934610603
75 -4588.099067754 0
80 -4564.1069350281 0
85 -4552.6996716958 0

Note: This problem goes away when (1) setting “thermo” to any value less than 5, or (2) choosing a different seed for the “velocity” command.

BUG 2. In some cases the values for “pe” and “c_pe” differ by ~3 eV (See, for example, timestep 5 above.)

Also, LAMMPS slows down drastically when using the above compute.

I am attaching my input script (Ge.in) and geo file (Ge.geo). Please let me know if you need any additional information.

Best regards,

– Willie

Ge.geo (82.9 KB)

in.Ge (619 Bytes)

Ge.dump (1.33 MB)

log.lammps (9.84 KB)

Christian is the best person to look at the bug
aspect of this.

Also, LAMMPS slows down drastically when using the above compute.

I am guessing that is b/c this compute may not be calculated
on the GPU, but on the CPU, so if you invoke it often
it means it interrupts the GPU performance to move
data back to the CPU.

Christian can clarify.

Steve

Hi

I reproduced your problem, and am looking into it now.
Thanks for the bugreport.

Best regards
Christian

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