Re: compilation with CUDA error

From: Martin, Erik W (Erik.Martin_at_stjude.org)
Date: Fri Nov 09 2012 - 14:06:52 CST

Huh. That’s too bad. I was kind of hoping the solution to my problem would be that simple. Does anyone have any clue about the errors I was getting compiling namd with CUDA? I didn't really deviate at all from the documentation.

Thanks,
Erik

From: Thomas Evangelidis <tevang3_at_gmail.com<mailto:tevang3_at_gmail.com>>
Date: Fri, 9 Nov 2012 11:05:54 -0600
To: Erik Martin <erik.martin_at_stjude.org<mailto:erik.martin_at_stjude.org>>
Cc: Namd Mailing List <namd-l_at_ks.uiuc.edu<mailto:namd-l_at_ks.uiuc.edu>>
Subject: Re: namd-l: compilation with CUDA error

I still get "undefined reference to `kernelSelect(workRequest*)'" etc. when I compile Charm without CUDA (and NAMD with CUDA). I don't know if my comment about the compiler (Intel of GNU) make sense at all since the CUDA toolkit does not need to be compiled, unlike the GPU Computing SDK.

Thomas

PS: In the documentation it says that NAMD source can be built with CUDA versions >4 as well.

On 9 November 2012 18:49, Martin, Erik W <Erik.Martin_at_stjude.org<mailto:Erik.Martin_at_stjude.org>> wrote:
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<mailto:owner-namd-l_at_ks.uiuc.edu> [owner-namd-l_at_ks.uiuc.edu<mailto:owner-namd-l_at_ks.uiuc.edu>] On Behalf Of Thomas Evangelidis [tevang3_at_gmail.com<mailto: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><mailto: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>> [mailto: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><mailto: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><mailto:tevang_at_pharm.uoa.gr<mailto:tevang_at_pharm.uoa.gr>>
          tevang3_at_gmail.com<mailto:tevang3_at_gmail.com><mailto: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><mailto:tevang_at_pharm.uoa.gr<mailto:tevang_at_pharm.uoa.gr>>
          tevang3_at_gmail.com<mailto:tevang3_at_gmail.com><mailto:tevang3_at_gmail.com<mailto:tevang3_at_gmail.com>>
website: https://sites.google.com/site/thomasevangelidishomepage/
Email Disclaimer:  www.stjude.org/emaildisclaimer<http://www.stjude.org/emaildisclaimer>
Consultation Disclaimer:  www.stjude.org/consultationdisclaimer<http://www.stjude.org/consultationdisclaimer>
--
======================================================================
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/

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