Problem compiling VASP/GPU with CUDA7.5 and 8.0

Questions regarding compilation of VASP on various platforms.

Moderators: Global Moderator, Moderator

Problem compiling VASP/GPU with CUDA7.5 and 8.0

Postby jperaltac » Thu Nov 24, 2016 4:43 pm

Hello,

I tried the easy way to compile vasp with gpu support. However doesn't work because a double definition of a function. I did copied

cp arch/makefile.include.linux_intel_cuda makefile.include

When I run make gpu :

/usr/local/cuda//bin/nvcc -gencode=arch=compute_30,code=\"sm_30,compute_30\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" -m64 --compiler-options -fno-strict-aliasing -DKERNEL_DP -DKERNEL_ZP -DDEBUG -DUSE_STREAM -DMPICH_IGNORE_CXX_SEEK -D__PARA -I/usr/local/cuda//include -I/include -I/opt/intel/impi_latest/include64 -I. -I/usr/local/cuda//include -I/usr/local/cuda//samples/common/inc -DUNIX -O3 -g -o obj/x86_64/release/hamil.cu.o -c hamil.cu
kernels.h(182): error: function "atomicAdd(double *, double)" has already been defined

1 error detected in the compilation of "/tmp/tmpxft_00002c1b_00000000-5_hamil.cpp4.ii".
common.mk:411: fallo en las instrucciones para el objetivo 'obj/x86_64/release/hamil.cu.o'
make[3]: *** [obj/x86_64/release/hamil.cu.o] Error 2
jperaltac
Newbie
Newbie
 
Posts: 1
Joined: Wed Sep 14, 2011 7:30 pm

Re: Problem compiling VASP/GPU with CUDA7.5 and 8.0

Postby admin » Mon Dec 12, 2016 4:00 pm

All details on software, hardware, installation
and persons behind the GPU port of VASP can be find in the page
http://cms.mpi.univie.ac.at/wiki/index. ... rt_of_VASP
admin
Administrator
Administrator
 
Posts: 2801
Joined: Tue Aug 03, 2004 8:18 am

Re: Problem compiling VASP/GPU with CUDA7.5 and 8.0

Postby crivello » Fri Jan 06, 2017 3:56 pm

hi everyone,

I have exactly the same problem with cuda 8.0 installed.
I guess that it is because I am not using a Tesla card, but one other NVIDIA device type...
Am I right ?

thanks,
JCC
crivello
Newbie
Newbie
 
Posts: 3
Joined: Fri Oct 03, 2008 7:21 am

Re: Problem compiling VASP/GPU with CUDA7.5 and 8.0

Postby Paranord » Tue Feb 07, 2017 7:53 pm

I setup a compiler directive to remove the offending routine from src/CUDA/kernels.h

This compiles and runs on at least one system. Others can comment on the advisability of this change.

#if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 600
#else
__forceinline__ __device__ double atomicAdd(double* address, double val)
{
unsigned long long int* address_as_ull=(unsigned long long int*)address;
unsigned long long int old=*address_as_ull,assumed;
do {
assumed=old;
old=atomicCAS(address_as_ull,assumed,__double_as_longlong(val+__longlong_as_double(assumed)));
} while(assumed!=old);
return __longlong_as_double(old);
}
#endif
Paranord
Newbie
Newbie
 
Posts: 3
Joined: Mon Feb 06, 2017 4:24 am


Return to Installation problems

Who is online

Users browsing this forum: No registered users and 2 guests