Pre-compiled Windows exe with GPU package

Dear Sir,

We want to accelerate our lammps performance by using the pre-compiled lammps executable which includes GPU package, developed by you. First of all we are furnishing our machine details here:

Dear Sir,

We want to accelerate our lammps performance by using the pre-compiled
lammps executable which includes GPU package, developed by you. First of all
we are furnishing our machine details here:

....

We have downloaded the latest version (64-bit 20130924) of lammps
64bit-executable from LAMMPS ICMS Windows Installer Repository. After
installing the lammps, we got 7 executable (tools +lmp_serial + lmp_mpi +
ocl_get_devices), we have tested MPI jobs, which are running fine, only in
case of reax type of job we are getting one error: " could not open log.cite
file ". We have not seen any file named "log.cite" in reax folder.

use the -nc flag to disable writing to that file. this error happens,
because you are trying to run lammps in a directory which is
read-only.

But our main concern is GPU acceleration. In the \benchmark\GPU folder we
have seen the gpu examples and gone through the README file. But how can we
get the executable for GPU computing like lmp_linux_single/mixed/double ?

you have no choice. the windows executable are compiled with mixed precision.

------------------------------------------------------------------------------------------------------------------
The output of the ocl_get_device.exe output is here --

C:\Program Files\LAMMPS 64-bit 20130924\bin>ocl_get_devices.exe
OpenCL error in file './geryon/ocl_device.h' in line 452 : -30.
C:\Program Files\LAMMPS 64-bit 20130924\bin>
-------------------------------------------------------------------------------------------------------------------

We think that we are meshing up the things or missing some thing important
related to GPU computing. So in this regard we have some questions --

this looks as if you have no OpenCL support installed, or the GPU
cannot be queried. but i am not an expert in this. i just compile the
code with a cross compiler against a dummy library. i suggest you look
for some OpenCL test or benchmark program and check if your OpenCL
support works at all.

i neither have a suitable windows test machine nor the option (or
desire) to compile LAMMPS on windows. you are most welcome to do so
yourself and build a custom executable to your own liking.

1. With this machine architecture, is it possible to get speed while our
main requirements are EAM, REAXC and SHOCK ?

there is no GPU support for REAX/C and there is no need to accelerate
the component of the SHOCK package.

2. How can we enable GPU to do gpu computing, could you be so pleased to
suggest us something regarding the GPU issue ?

impossible to do from remote.

axel.

If you build LAMMPS yourself (instead
of just downloading an executable) you
can build the GPU packages with whatever
precision you like.

Steve

Dear users and developers,

Please allow me to ask some question which may be not directly related to lammps but it may be helpful for the future guys if they attempted to compile lammps packages.

At last I have decided to switch to Linux, have installed CentOS 6.4 and have successfully compiled Lammps without any USER package. Now I want to include GPU to make it fast of my lammps calculation of EAM type calculation (pair style eam, eam/fs). Before going to do that, I have questions–

With CentOS 6.4 when I am trying to install Nvidia driver, CUDA toolkit and SDK , but I saw at http://lammps.sandia.gov/doc/Section_accelerate.html#acc_6 that " you currently need to have specific NVIDIA hardware and install specific NVIDIA CUDA software on your system:" So here I am getting confused which version of the driver, cuda toolkit and SDK I need to install. Problem is that when I am installing the latest version it is showing that the current kernel interface is not compatible with the latest version although I have updated the kernel.

  1. Is there anybody who have done that same ? Can you suggest me regarding this ?

  2. I am following https://www.centos.org/modules/newbb/viewtopic.php?topic_id=32811 instructions, would it be a wrong if I install some older version of the packages like NVIDIA-Linux x86_64 270.41.19.run, cudatoolkit_4.0.17_linux_64_rhel6.0.run, gpucomputingsdk_4.0.17_linux.run if my only intention to run Lammps GPU ?

  3. Can anybody referred me some link which explains how to install Nvidia driver and CUDA toolkit in RHEL 6, because I googled and saw several link but they are not working (may be my misunderstanding !)

Rajdeep Behera

Dear users and developers,

Please allow me to ask some question which may be not directly related to
lammps but it may be helpful for the future guys if they attempted to
compile lammps packages.

At last I have decided to switch to Linux, have installed CentOS 6.4 and
have successfully compiled Lammps without any USER package. Now I want to
include GPU to make it fast of my lammps calculation of EAM type calculation
(pair style eam, eam/fs). Before going to do that, I have questions--

With CentOS 6.4 when I am trying to install Nvidia driver, CUDA toolkit and
SDK , but I saw at
http://lammps.sandia.gov/doc/Section_accelerate.html#acc_6 that " you
currently need to have specific NVIDIA hardware and install specific NVIDIA
CUDA software on your system:" So here I am getting confused which version
of the driver, cuda toolkit and SDK I need to install. Problem is that when
I am installing the latest version it is showing that the current kernel
interface is not compatible with the latest version although I have updated
the kernel.

1. Is there anybody who have done that same ? Can you suggest me regarding
this ?

as of version 5.5 of the cuda toolkit, nvidia has a CentOS/Redhat
compatible repository for the cuda toolkit. that is the easiest way to
install it.
manual installation is straightforward as well, *if* you carefully
follow the instructions bundled with the toolkit and GPU driver.

you do not need the SDK for compiling lammps with gpu support. that is
more for learning GPU programming.

2. I am following
https://www.centos.org/modules/newbb/viewtopic.php?topic_id=32811
instructions, would it be a wrong if I install some older version of the
packages like NVIDIA-Linux x86_64 270.41.19.run,
cudatoolkit_4.0.17_linux_64_rhel6.0.run, gpucomputingsdk_4.0.17_linux.run if
my only intention to run Lammps GPU ?

you should at least use cuda 4.1. newer versions may be marginally
faster and more compatible.

3. Can anybody referred me some link which explains how to install Nvidia
driver and CUDA toolkit in RHEL 6, because I googled and saw several link
but they are not working (may be my misunderstanding !)

as stated above. the best instructions are the ones bundled with the
distribution.
if you have little experience, it is best to retain a "clean" machine
and use prepackaged rpm packages as they are distributed by nvidia or
(for older versions of the toolkit) through rpmfusion.

axel.

-- debian based linux --
About 6 months ago I posted some instructions for building GPU-enabled
LAMMPS on ubuntu/debian-based versions of linux
(http://en.wikipedia.org/wiki/List_of_Linux_distributions).

http://lammps.sandia.gov/threads/msg36437.html

    Correction to this post: Use:
     sudo apt-get install build-essential fftw-dev mpich2 gfortran

I don't know if these makefiles and instructions still work.

Definitely try Axel's suggestions first. If you run into an impasse,
then feel free to look at the instructions posted in this link. (I
don't have access to a computer with GPUs anymore, so I can not help
you if these instructions no longer work, unfortunately. If not,
please reply to that post, and somebody will likely reply to you,
hopefully.)
Cheers
Andrew

Hi all,

I’m going to present some terminal output to present my problem, so this mail may be lengthy, hope you will don’t mind and thanks in advance for your expertise comment.

At last I have successfully install cudatoolkit 4.1.28 and build gpu lib, have got ligpu.a and Makefile.lammps without error. Also the ./nvc_get_devices output are here:

lammps version is : lammps-23Sep13

lammps version is : lammps-23Sep13

[...]

Device 1: "Quadro FX 580"
  Type of device: GPU
  Compute capability: 1.1
  Double precision support: No
  Total amount of global memory: 0.499329 GB
  Number of compute units/multiprocessors: 4
  Number of cores: 32

with compute capability leve 1.1 and only 32 CUDA cores this second
GPU is pretty much useless compared to the tesla, so you're going to
better off to disable it from computing via the nvidia-smi utility.

Installed YES: package GPU
  src/pair_lj_sdk_coul_long_gpu.cpp does not exist
  src/pair_lj_sdk_gpu.cpp does not exist
  src/pair_lj_sf_dipole_sf_gpu.cpp does not exist
  src/pair_lj_sdk_coul_long_gpu.h does not exist
  src/pair_lj_sdk_gpu.h does not exist
  src/pair_lj_sf_dipole_sf_gpu.h does not exist

this is harmless. those refer to pair styles that reside in optional
packages that you did not install.

[...]

So my confusions are :
1. As I have not installed Cuda SDK, so are those msg related to gpu
package are the consequence of that SDK?

no. the SDK refers to the authors of the specific model ([S]hinoda,
[D]eVane, [K]lein)

2. What actually this msg says?

that the files are not installed

3. How can I fix it ?

you don't need to.

have you tried compiling? and tested the executable?

axel.

Dear Sir,

From the nvidia-smi utility, I am getting my cards information:

Dear Sir,

From the nvidia-smi utility, I am getting my cards information:

---------------------------------------------------------------------------------------------------------------
[[email protected]... ~]$ nvidia-smi
Thu Oct 3 17:16:24 2013
+------------------------------------------------------+
> NVIDIA-SMI 5.319.49 Driver Version: 319.49 |
>-------------------------------+----------------------+----------------------+
> GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr.
ECC |
> Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute
M. |
>===============================+======================+======================|
> 0 Quadro FX 580 Off | 0000:01:00.0 N/A |
N/A |
> 40% 48C N/A N/A / N/A | 36MB / 511MB | N/A
Default |
+-------------------------------+----------------------+----------------------+
> 1 Tesla C2075 Off | 0000:02:00.0 Off |
0 |
> 30% 65C P12 34W / N/A | 9MB / 5375MB | 0%
Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
> Compute processes: GPU
Memory |
> GPU PID Process name Usage
>
>=============================================================================|
> 0 Not Supported
>
+-----------------------------------------------------------------------------+
---------------------------------------------------------------------------------------------------------------------

But could you please tell me how can I off the Quadro card from nvidia-smi ?

After "off" , should I need to re-build the gpu lib ?

think about it for a bit. the answer is obvious and you should be able
to figure it out for yourself.

I tried to follow nvidia-smi --help but confused, how to off the Quadro
card.

read the documentation that comes with the driver. please make an
effort to solve problems that have no relation to LAMMPS by yourself.
if you cannot figure out how to properly operate a GPU, you should not
be using it. if you need training in this, you have to go to a proper
forum or person.

No, I have not make lammps till now, going to make after this gpu related
issues.

that is a bad strategy. you first should see, if you get things to
work and particularly, you should first get a lammps executable to
work *without* GPU support, so that you have a reference to compare
to.

axel.

Dear Sir,

From this forum, I have learned the strategy you suggested to many people. Firstly I make lammps without any package which requires extra lib, and tested that MPI run is working fine. Then, I include REAX successfully and ran the examples which was fine. Now I have included GPU package and re-build lammps and have got lmp_linux. I ran /examples/gpu/in.gpu.melt.2.5 which works without error, here is the output:

Hi all,
Now I can use all of core i.e. I am now running multiple MPI task.

Could anybody please refer some link or advised me that with my Tesla card (compute capability 2) and 8 CPU core,which precision would be faster ?

Hi all,
Now I can use all of core i.e. I am now running multiple MPI task.

Could anybody please refer some link or advised me that with my Tesla card
(compute capability 2) and 8 CPU core,which precision would be faster ?

is this too obvious?

http://lammps.sandia.gov/bench.html