RE: compilation with CUDA error

From: Martin, Erik W (Erik.Martin_at_stjude.org)
Date: Fri Nov 09 2012 - 10:49:29 CST

I'm curious, did this solve the problems? I just tried to compile namd with CUDA on our linux system last night and ended up with all manner of errors I'd never seen before...

-Erik

fwiw, here are what my errors looked like:

src/ComputeNonbondedCUDA.C:1830: error: ‘end_local_download’ was not declared in this scope
src/ComputeNonbondedCUDA.C:1830: error: ‘cudaEventRecord’ was not declared in this scope
src/ComputeNonbondedCUDA.C:1843: error: ‘stream’ was not declared in this scope
src/ComputeNonbondedCUDA.C:1845: error: ‘end_local_download’ was not declared in this scope
src/ComputeNonbondedCUDA.C:1845: error: ‘stream’ was not declared in this scope
src/ComputeNonbondedCUDA.C:1845: error: ‘cudaEventRecord’ was not declared in this scope
src/ComputeNonbondedCUDA.C: In member function ‘int ComputeNonbondedCUDA::finishWork()’:
src/ComputeNonbondedCUDA.C:1910: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1911: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1915: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1915: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1916: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1916: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1917: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1917: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1921: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1921: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1922: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1922: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1923: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1923: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1939: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1939: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1941: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
src/ComputeNonbondedCUDA.C:1941: error: invalid use of incomplete type ‘struct float4’
src/ComputeNonbondedCUDA.h:8: error: forward declaration of ‘struct float4’
make: *** [obj/ComputeNonbondedCUDA.o] Error 1

________________________________________
From: owner-namd-l_at_ks.uiuc.edu [owner-namd-l_at_ks.uiuc.edu] On Behalf Of Thomas Evangelidis [tevang3_at_gmail.com]
Sent: Tuesday, October 30, 2012 2:59 AM
To: Namd Mailing List
Subject: Re: namd-l: compilation with CUDA error. .

I think I know what the error is, it has to do with the compiler version I used for CUDA. Because fedora 17 comes with gcc4.7 which is incompatible with CUDA, I installed from the repositories gcc3.4 and made a symbolic link at:

ln -s /bin/gcc34 /usr/local/cuda/bin/gcc

Do you know how I can compile CUDA with the Intel compilers to avoid all this hassle?

T.

On 30 October 2012 09:19, Norman Geist <norman.geist_at_uni-greifswald.de<mailto:norman.geist_at_uni-greifswald.de>> wrote:
If I remember correctly and if it hasn’t changed yet, namd is not using CUDA features of charm++, so you should try to build charm++ without cuda support.

Norman Geist.

Von: owner-namd-l_at_ks.uiuc.edu<mailto:owner-namd-l_at_ks.uiuc.edu> [mailto:owner-namd-l_at_ks.uiuc.edu<mailto:owner-namd-l_at_ks.uiuc.edu>] Im Auftrag von Aron Broom
Gesendet: Montag, 29. Oktober 2012 18:44
An: Thomas Evangelidis
Cc: namd-l
Betreff: Re: namd-l: compilation with CUDA error

it doesn't say anywhere in the instructions which version of cuda it is intended for? My impression was that it was 4.0, but that's a big guess.
On Mon, Oct 29, 2012 at 9:44 AM, Thomas Evangelidis <tevang3_at_gmail.com<mailto:tevang3_at_gmail.com>> wrote:
Greetings,

I am trying to compile NAMD CVS-2012-09-22_Linux-x86_64-multicore-CUDA using Cuda 4.2 with the following command lines:

CUDA_DIR=/usr/local/cuda MAKE=gmake ./build charm++ net-linux-x86_64 icc ifort smp cuda -j8 --with-production -O3 -axSSE4.2 -unroll -DCMK_OPTIMIZE=1
./config Linux-x86_64-icc --charm-arch net-linux-x86_64-cuda-ifort-smp-icc --with-fftw3 --fftw-prefix /home/thomas/Programs/fftw-3.3.2/single_precision_Intel_build --cuda-prefix /usr/local/cuda
cd Linux-x86_64-icc
CUDA_DIR=/usr/local/cuda gmake -j8

but I get the following error:

icpc: command line warning #10121: overriding '-shared-intel' with '-i-static'
icpc: warning #10237: -lcilkrts linked in dynamically, static library not available
.rootdir/charm-6.4.0/net-linux-x86_64-cuda-ifort-smp-icc/bin/../lib/libcudahybridapi.a(hybridapi.o): In function `gpuProgressFn':
tmpxft_00003316_00000000-1_cuda-hybrid-api.cudafe1.cpp:(.text+0xb26): undefined reference to `kernelSelect(workRequest*)'
tmpxft_00003316_00000000-1_cuda-hybrid-api.cudafe1.cpp:(.text+0xbe1): undefined reference to `kernelSelect(workRequest*)'
/usr/local/cuda/lib64/libcudart.so: undefined reference to `std::_List_node_base::_M_unhook()@GLIBCXX_3.4.14'
/usr/local/cuda/lib64/libcudart.so: undefined reference to `std::_List_node_base::_M_hook(std::_List_node_base*)@GLIBCXX_3.4.14'
Fatal Error by charmc in directory /home/thomas/Programs/NAMD_CVS-2012-09-22_Source/Linux-x86_64-icc

I also get the same error with Cuda 5.0. I then tried to replace the libcudart.so (and libcudart.so.4) with the one that is shipped with NAMD but got:

icpc: command line warning #10121: overriding '-shared-intel' with '-i-static'
icpc: warning #10237: -lcilkrts linked in dynamically, static library not available
.rootdir/charm-6.4.0/net-linux-x86_64-cuda-ifort-smp-icc/bin/../lib/libcudahybridapi.a(hybridapi.o): In function `gpuProgressFn':
tmpxft_00003316_00000000-1_cuda-hybrid-api.cudafe1.cpp:(.text+0xb26): undefined reference to `kernelSelect(workRequest*)'
tmpxft_00003316_00000000-1_cuda-hybrid-api.cudafe1.cpp:(.text+0xbe1): undefined reference to `kernelSelect(workRequest*)'
Fatal Error by charmc in directory /home/thomas/Programs/NAMD_CVS-2012-09-22_Source/Linux-x86_64-icc

Does anyone know how to fix this? Do I need to install an older version of CUDA?

thanks,
Thomas

--
======================================================================
Thomas Evangelidis
PhD student
University of Athens
Faculty of Pharmacy
Department of Pharmaceutical Chemistry
Panepistimioupoli-Zografou
157 71 Athens
GREECE
email: tevang_at_pharm.uoa.gr<mailto:tevang_at_pharm.uoa.gr>
          tevang3_at_gmail.com<mailto:tevang3_at_gmail.com>
website: https://sites.google.com/site/thomasevangelidishomepage/
--
Aron Broom M.Sc
PhD Student
Department of Chemistry
University of Waterloo
--
======================================================================
Thomas Evangelidis
PhD student
University of Athens
Faculty of Pharmacy
Department of Pharmaceutical Chemistry
Panepistimioupoli-Zografou
157 71 Athens
GREECE
email: tevang_at_pharm.uoa.gr<mailto:tevang_at_pharm.uoa.gr>
          tevang3_at_gmail.com<mailto:tevang3_at_gmail.com>
website: https://sites.google.com/site/thomasevangelidishomepage/
Email Disclaimer:  www.stjude.org/emaildisclaimer
Consultation Disclaimer:  www.stjude.org/consultationdisclaimer

This archive was generated by hypermail 2.1.6 : Mon Dec 31 2012 - 23:22:14 CST