Re: compilation with CUDA error

From: Thomas Evangelidis (tevang3_at_gmail.com)
Date: Fri Nov 09 2012 - 11:05:54 CST

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> 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 [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
>
>

-- 
======================================================================
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
          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