gpu precision

I thought I compiled lammps to run on a GPU with double precision, but when I run a simulation I get this line.

I thought I compiled lammps to run on a GPU with double precision, but when I run a simulation I get this line.

--------------------------------------------------------------------------
GPU 0: Tesla C1060, 240 cores, 4/4 GB, 1.3 GHZ (Single Precision)
--------------------------------------------------------------------------

This suggests to me that it is only doing a single precision calculation. Any ideas?

yes. capitalization matters.

Following is the Makefile for the gpu library build and the lammps build.

CUDA_HOME = /usr/local/cuda
NVCC = nvcc

CUDA_ARCH = -arch=sm_13
CUDA_PRECISION = -D_Double_Double

here is the problem. you define _Double_Double,
but it has to be _DOUBLE_DOUBLE for all double precision.

please note, that you'll be getting a significant performance hit
on 1.3 generation hardware. i would recommend to use -D_SINGLE_DOUBLE
to do the force computation in single, but the summation in double
precision. this will preserve most of the accuracy (the largest truncation
errors are in summing the forces), at almost the same speed at
an all-single precision compile.

cheers,
    axel.