Re: [AMBER] pmemd.cuda compilation problems on Ubuntu 12.4

From: Daniel Roe <daniel.r.roe.gmail.com>
Date: Wed, 20 Mar 2013 13:15:31 -0600

Hi,

People have encountered this before, although it is rare. I am unsure
of the cause, but I believe the workaround is to add the flag
'-lstdc++' to the PMEMD_LD variable in the config.h.

-Dan

On Wed, Mar 20, 2013 at 11:56 AM, Weinzierl, Robert O J
<r.weinzierl.imperial.ac.uk> wrote:
> Dear all,
>
> I am currently trying to compile the GPU-version of pmemd.cuda on a Ubuntu 12.4 system with installed Nvidia driver (version 310.40) and CUDA Toolbox (version 5.0.35).
>
> The early stages of the installation
>
> cd $AMBERHOME
> make clean
> ./configure -cuda gnu
> make install
>
> appear to work well, but the compilation stops at a later stage with the following error messages:
>
> make[4]: Leaving directory `/home/rojw/amber12/src/pmemd/src/cuda'
> gfortran -O3 -mtune=native -DCUDA -Duse_SPFP -o pmemd.cuda gbl_constants.o gbl_datatypes.o state_info.o file_io_dat.o mdin_ctrl_dat.o mdin_ewald_dat.o mdin_debugf_dat.o prmtop_dat.o inpcrd_dat.o dynamics_dat.o img.o nbips.o parallel_dat.o parallel.o gb_parallel.o pme_direct.o pme_recip_dat.o pme_slab_recip.o pme_blk_recip.o pme_slab_fft.o pme_blk_fft.o pme_fft_dat.o fft1d.o bspline.o pme_force.o pbc.o nb_pairlist.o nb_exclusions.o cit.o dynamics.o bonds.o angles.o dihedrals.o extra_pnts_nb14.o runmd.o loadbal.o shake.o prfs.o mol_list.o runmin.o constraints.o axis_optimize.o gb_ene.o veclib.o gb_force.o timers.o pmemd_lib.o runfiles.o file_io.o bintraj.o binrestart.o pmemd_clib.o pmemd.o random.o degcnt.o erfcfun.o nmr_calls.o nmr_lib.o get_cmdline.o master_setup.o pme_alltasks_setup.o pme_setup.o ene_frc_splines.o gb_alltasks_setup.o nextprmtop_section.o angles_ub.o dihedrals_imp.o cmap.o charmm.o charmm_gold.o findmask.o remd.o multipmemd.o remd_exchg.o amd.o gbsa.o \
> ./cuda/cuda.a -L/usr/local/cuda-5.0//lib64 -L/usr/local/cuda-5.0//lib -lcurand -lcufft -lcudart -L/home/rojw/amber12/lib -L/home/rojw/amber12/lib -lnetcdf
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_startup_: error: undefined reference to 'operator new(unsigned long)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_startup_: error: undefined reference to 'operator delete(void*)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_shutdown_: error: undefined reference to 'operator delete(void*)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_init_: error: undefined reference to 'operator new[](unsigned long)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_init_: error: undefined reference to 'operator new[](unsigned long)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_init_: error: undefined reference to 'operator delete[](void*)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_init_: error: undefined reference to 'operator delete[](void*)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_amd_setup_: error: undefined reference to 'operator new[](unsigned long)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_amd_setup_: error: undefined reference to 'operator new(unsigned long)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_amd_setup_: error: undefined reference to 'operator delete(void*)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_constraint_molecule_list_setup_: error: undefined reference to 'operator new[](unsigned long)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_constraint_molecule_list_setup_: error: undefined reference to 'operator new(unsigned long)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_constraint_molecule_list_setup_: error: undefined reference to 'operator new(unsigned long)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_constraint_molecule_list_setup_: error: undefined reference to 'operator delete[](void*)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_constraint_molecule_list_setup_: error: undefined reference to 'operator delete[](void*)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function gpu_constraint_molecule_list_setup_: error: undefined reference to 'operator delete(void*)'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function _GLOBAL__sub_I_gpu_startup_: error: undefined reference to 'std::ios_base::Init::Init()'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function _GLOBAL__sub_I_gpu_startup_: error: undefined reference to 'std::ios_base::Init::~Init()'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function typeinfo for GpuBuffer<double>: error: undefined reference to 'vtable for __cxxabiv1::__class_type_info'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function typeinfo for GpuBuffer<float2>: error: undefined reference to 'vtable for __cxxabiv1::__class_type_info'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function typeinfo for GpuBuffer<float>: error: undefined reference to 'vtable for __cxxabiv1::__class_type_info'
> ./cuda/cuda.a(gpu.o):gpu.cpp:function typeinfo for GpuBuffer<unsigned int>: error: undefined reference to 'vtable for __cxxabiv1::__class_type_info'
> ./cuda/cuda.a(gpu.o)(.eh_frame+0x16293): error: undefined reference to '__gxx_personality_v0'
> collect2: ld returned 1 exit status
> make[3]: *** [pmemd.cuda] Error 1
> make[3]: Leaving directory `/home/rojw/amber12/src/pmemd/src'
> make[2]: *** [cuda] Error 2
> make[2]: Leaving directory `/home/rojw/amber12/src/pmemd'
> make[1]: *** [cuda] Error 2
> make[1]: Leaving directory `/home/rojw/amber12/src'
> make: *** [install] Error 2
>
>
> I would be very grateful for any advice about what might be going wrong on at that stage. The serial versions of AMBER12 and AmberTools installed without problems, so these errors are specifically associated with compiling the GPU-based version.
>
> Robert
>
>
>
> _______________________________________________
> AMBER mailing list
> AMBER.ambermd.org
> http://lists.ambermd.org/mailman/listinfo/amber



-- 
-------------------------
Daniel R. Roe, PhD
Department of Medicinal Chemistry
University of Utah
30 South 2000 East, Room 201
Salt Lake City, UT 84112-5820
http://home.chpc.utah.edu/~cheatham/
(801) 587-9652
(801) 585-9119 (Fax)
_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Wed Mar 20 2013 - 12:30:04 PDT
Custom Search