USER-CUDA lammps compilation error

Dear all. Good evening.

I have a Graphic card Geforce GTX680 (i paste the result from /lib/gpu/nvc_get_devices) and i'm trying to compile lammps with the package user-cuda and without the package GPU (My problems with the package GPU are in other thread...). I made the user-cuda library and when i tried to compile, in the last process of the compilation (when it's trying to generate the binary file lmp_openmpi) i get an error that says:

Hi

that looks as if your libcufft.so library was not found for some reason.
Please send me your link line (its the one which is printed before that error occurs, with all the different .o files. Alternatively just pipe the output during the final compilation (preferable the one of trying to compile the second time, so I dont get all the individual object file lines) into a file and send me that.

Thanks
Christian

-------- Original-Nachricht --------

Hi Christian, good moorning from Spain.

Here it is the link line and all the error message (The warnings are OK because there are the two libraries in the links (32 & 64 bit) so it refuses the 32-bit libraries right?)

make[1]: se ingresa al directorio «/home/ekhi/lammps-30Aug12/src/Obj_openmpi.gea.cuda»
mpic++ -O -L../../lib/cuda -L../../lib/reax -L../../lib/poems -L../../lib/meam -L/usr/local/openmpi-1.6.1/lib -L/usr/local/lib -L/usr/local/cuda/lib -L/usr/local/cuda/lib64 -lcufft angle_cg_cmm.o angle_charmm.o angle_class2.o angle_cosine.o angle_cosine_delta.o angle_cosine_periodic.o angle_cosine_shift.o angle_cosine_shift_exp.o angle_cosine_squared.o angle.o angle_dipole.o angle_harmonic.o angle_hybrid.o angle_sdk.o angle_table.o atom.o atom_map.o atom_vec_angle.o atom_vec_angle_cuda.o atom_vec_atomic.o atom_vec_atomic_cuda.o atom_vec_bond.o atom_vec_charge.o atom_vec_charge_cuda.o atom_vec.o atom_vec_electron.o atom_vec_ellipsoid.o atom_vec_full.o atom_vec_full_cuda.o atom_vec_hybrid.o atom_vec_line.o atom_vec_molecular.o atom_vec_peri.o atom_vec_sphere.o atom_vec_tri.o balance.o bond_class2.o bond.o bond_fene.o bond_fene_expand.o bond_harmonic.o bond_harmonic_shift.o bond_harmonic_shift_cut.o bond_hybrid.o bond_morse.o bond_nonlinear.o bond_quartic.o bond_table.o cg_cmm_parms.o change_box.o comm.o comm_cuda.o compute_ackland_atom.o compute_angle_local.o compute_atom_molecule.o compute_bond_local.o compute_centro_atom.o compute_cluster_atom.o compute_cna_atom.o compute_com.o compute_com_molecule.o compute_contact_atom.o compute_coord_atom.o compute.o compute_damage_atom.o compute_dihedral_local.o compute_displace_atom.o compute_erotate_sphere_atom.o compute_erotate_sphere.o compute_event_displace.o compute_group_group.o compute_gyration.o compute_gyration_molecule.o compute_heat_flux.o compute_improper_local.o compute_ke_atom.o compute_ke_atom_eff.o compute_ke.o compute_ke_eff.o compute_msd.o compute_msd_molecule.o compute_pair.o compute_pair_local.o compute_pe_atom.o compute_pe.o compute_pe_cuda.o compute_pressure.o compute_pressure_cuda.o compute_property_atom.o compute_property_local.o compute_property_molecule.o compute_rdf.o compute_reduce.o compute_reduce_region.o compute_slice.o compute_stress_atom.o compute_temp_com.o compute_temp.o compute_temp_cuda.o compute_temp_deform.o compute_temp_deform_eff.o compute_temp_eff.o compute_temp_partial.o compute_temp_partial_cuda.o compute_temp_profile.o compute_temp_ramp.o compute_temp_region.o compute_temp_region_eff.o compute_temp_rotate.o compute_temp_sphere.o compute_ti.o create_atoms.o create_box.o cuda.o cuda_neigh_list.o delete_atoms.o delete_bonds.o dihedral_charmm.o dihedral_class2.o dihedral_cosine_shift_exp.o dihedral.o dihedral_harmonic.o dihedral_helix.o dihedral_hybrid.o dihedral_multi_harmonic.o dihedral_opls.o dihedral_table.o displace_atoms.o domain.o domain_cuda.o dump_atom.o dump_cfg.o dump.o dump_custom.o dump_dcd.o dump_image.o dump_local.o dump_molfile.o dump_xyz.o error.o ewald.o fft3d.o fft3d_cuda.o fft3d_wrap.o fft3d_wrap_cuda.o finish.o fix_adapt.o fix_addforce.o fix_addforce_cuda.o fix_addtorque.o fix_append_atoms.o fix_ave_atom.o fix_ave_correlate.o fix_aveforce.o fix_aveforce_cuda.o fix_ave_histo.o fix_ave_spatial.o fix_ave_time.o fix_balance.o fix_box_relax.o fix.o fix_deform.o fix_deposit.o fix_drag.o fix_dt_reset.o fix_efield.o fix_enforce2d.o fix_enforce2d_cuda.o fix_evaporate.o fix_event.o fix_event_prd.o fix_event_tad.o fix_external.o fix_freeze.o fix_freeze_cuda.o fix_gravity.o fix_gravity_cuda.o fix_heat.o fix_imd.o fix_indent.o fix_langevin.o fix_langevin_eff.o fix_lineforce.o fix_minimize.o fix_momentum.o fix_move.o fix_msst.o fix_neb.o fix_nh.o fix_nh_cuda.o fix_nh_eff.o fix_nh_sphere.o fix_nph.o fix_nph_eff.o fix_nph_sphere.o fix_nphug.o fix_npt.o fix_npt_cuda.o fix_npt_eff.o fix_npt_sphere.o fix_nve.o fix_nve_cuda.o fix_nve_eff.o fix_nve_limit.o fix_nve_noforce.o fix_nve_sphere.o fix_nvt.o fix_nvt_cuda.o fix_nvt_eff.o fix_nvt_sllod.o fix_nvt_sllod_eff.o fix_nvt_sphere.o fix_orient_fcc.o fix_peri_neigh.o fix_planeforce.o fix_poems.o fix_pour.o fix_press_berendsen.o fix_print.o fix_qeq_comb.o fix_qeq_reax.o fix_read_restart.o fix_reax_bonds.o fix_reaxc_bonds.o fix_reax_c.o fix_recenter.o fix_respa.o fix_restrain.o fix_setforce.o fix_set_force_cuda.o fix_shake.o fix_shake_cuda.o fix_shear_history.o fix_smd.o fix_spring.o fix_spring_rg.o fix_spring_self.o fix_store_force.o fix_store_state.o fix_temp_berendsen.o fix_temp_berendsen_cuda.o fix_temp_rescale.o fix_temp_rescale_cuda.o fix_temp_rescale_eff.o fix_temp_rescale_limit_cuda.o fix_thermal_conductivity.o fix_tmd.o fix_ttm.o fix_viscosity.o fix_viscous.o fix_viscous_cuda.o fix_wall_colloid.o fix_wall.o fix_wall_gran.o fix_wall_harmonic.o fix_wall_lj126.o fix_wall_lj93.o fix_wall_piston.o fix_wall_reflect.o fix_wall_region.o force.o group.o image.o improper_class2.o improper_cossq.o improper.o improper_cvff.o improper_harmonic.o improper_hybrid.o improper_ring.o improper_umbrella.o input.o integrate.o irregular.o kspace.o lammps.o lattice.o library.o main.o math_extra.o memory.o min_cg.o min.o min_fire.o min_hftn.o minimize.o min_linesearch.o min_quickmin.o min_sd.o modify.o modify_cuda.o molfile_interface.o neb.o neigh_bond.o neighbor.o neighbor_cuda.o neigh_derive.o neigh_full.o neigh_full_cuda.o neigh_gran.o neigh_half_bin.o neigh_half_multi.o neigh_half_nsq.o neigh_list.o neigh_request.o neigh_respa.o neigh_stencil.o output.o pair_adp.o pair_airebo.o pair_beck.o pair_bop.o pair_born_coul_long.o pair_born_coul_long_cuda.o pair_born_coul_wolf.o pair_born.o pair_brownian.o pair_brownian_poly.o pair_buck_coul_cut.o pair_buck_coul_cut_cuda.o pair_buck_coul_long.o pair_buck_coul_long_cuda.o pair_buck.o pair_buck_cuda.o pair_cdeam.o pair_cg_cmm_coul_cut.o pair_cg_cmm_coul_long.o pair_cg_cmm.o pair_cmm_common.o pair_colloid.o pair_comb.o pair_coul_cut.o pair_coul_debye.o pair_coul_diel.o pair_coul_long.o pair_coul_wolf.o pair.o pair_dipole_sf.o pair_dpd.o pair_dpd_tstat.o pair_eam_alloy.o pair_eam_alloy_cuda.o pair_eam_alloy_opt.o pair_eam.o pair_eam_cuda.o pair_eam_fs.o pair_eam_fs_cuda.o pair_eam_fs_opt.o pair_eam_opt.o pair_edip.o pair_eff_cut.o pair_eim.o pair_gauss.o pair_gauss_cut.o pair_gran_hertz_history.o pair_gran_hooke.o pair_gran_hooke_cuda.o pair_gran_hooke_history.o pair_hbond_dreiding_lj.o pair_hbond_dreiding_morse.o pair_hybrid.o pair_hybrid_overlay.o pair_lcbop.o pair_lj96_cut.o pair_lj96_cut_cuda.o pair_lj_charmm_coul_charmm.o pair_lj_charmm_coul_charmm_cuda.o pair_lj_charmm_coul_charmm_implicit.o pair_lj_charmm_coul_charmm_implicit_cuda.o pair_lj_charmm_coul_long.o pair_lj_charmm_coul_long_cuda.o pair_lj_charmm_coul_long_opt.o pair_lj_class2_coul_cut.o pair_lj_class2_coul_cut_cuda.o pair_lj_class2_coul_long.o pair_lj_class2_coul_long_cuda.o pair_lj_class2.o pair_lj_class2_cuda.o pair_lj_cubic.o pair_lj_cut_coul_cut.o pair_lj_cut_coul_cut_cuda.o pair_lj_cut_coul_debye.o pair_lj_cut_coul_debye_cuda.o pair_lj_cut_coul_long.o pair_lj_cut_coul_long_cuda.o pair_lj_cut_coul_long_opt.o pair_lj_cut_coul_long_tip4p.o pair_lj_cut_coul_long_tip4p_opt.o pair_lj_cut.o pair_lj_cut_cuda.o pair_lj_cut_experimental_cuda.o pair_lj_cut_opt.o pair_lj_expand.o pair_lj_expand_cuda.o pair_lj_gromacs_coul_gromacs.o pair_lj_gromacs_coul_gromacs_cuda.o pair_lj_gromacs.o pair_lj_gromacs_cuda.o pair_lj_sdk_coul_long.o pair_lj_sdk_coul_long_cuda.o pair_lj_sdk.o pair_lj_sdk_cuda.o pair_lj_sf.o pair_lj_smooth.o pair_lj_smooth_cuda.o pair_lj_smooth_linear.o pair_lubricate.o pair_lubricate_poly.o pair_lubricateU.o pair_lubricateU_poly.o pair_meam.o pair_meam_spline.o pair_morse.o pair_morse_cuda.o pair_morse_opt.o pair_peri_lps.o pair_peri_pmb.o pair_reax_c.o pair_reax.o pair_rebo.o pair_soft.o pair_sw.o pair_sw_cuda.o pair_table.o pair_tersoff.o pair_tersoff_cuda.o pair_tersoff_table.o pair_tersoff_zbl.o pair_tersoff_zbl_cuda.o pair_yukawa_colloid.o pair_yukawa.o pppm_cg.o pppm.o pppm_cuda.o pppm_old.o pppm_tip4p.o prd.o procmap.o random_mars.o random_park.o read_data.o read_dump.o reader.o reader_molfile.o reader_native.o reader_xyz.o read_restart.o reaxc_allocate.o reaxc_basic_comm.o reaxc_bond_orders.o reaxc_bonds.o reaxc_control.o reaxc_ffield.o reaxc_forces.o reaxc_hydrogen_bonds.o reaxc_init_md.o reaxc_io_tools.o reaxc_list.o reaxc_lookup.o reaxc_multi_body.o reaxc_nonbonded.o reaxc_reset_tools.o reaxc_system_props.o reaxc_tool_box.o reaxc_torsion_angles.o reaxc_traj.o reaxc_valence_angles.o reaxc_vector.o region_block.o region_cone.o region.o region_cylinder.o region_intersect.o region_plane.o region_prism.o region_sphere.o region_union.o remap.o remap_wrap.o replicate.o rerun.o respa.o run.o set.o special.o tad.o temper.o thermo.o timer.o universe.o update.o variable.o velocity.o verlet.o verlet_cuda.o verlet_split.o write_restart.o -llammpscuda -lreax -lpoems -lmeam -lcuda -lcudart -lrt -ldl -gfortran -lgfortran -lstdc++ -o ../lmp_openmpi.gea.cuda
make[1]: se sale del directorio «/home/ekhi/lammps-30Aug12/src/Obj_openmpi.gea.cuda»

/usr/bin/ld: skipping incompatible /usr/local/cuda/lib/libcufft.so when searching for -lcufft
/usr/bin/ld: skipping incompatible /usr/local/cuda/lib/libcudart.so when searching for -lcudart

fft3d_cuda.o: In function `fft_3d_cuda(FFT_DATA*, FFT_DATA*, int, fft_plan_3d*)':
fft3d_cuda.cpp:(.text+0x82): undefined reference to `cufftExecZ2Z'
fft3d_cuda.cpp:(.text+0xbb): undefined reference to `cufftExecZ2Z'
fft3d_cuda.o: In function `fft_3d_destroy_plan_cuda(fft_plan_3d*)':
fft3d_cuda.cpp:(.text+0x1ee): undefined reference to `cufftDestroy'
fft3d_cuda.o: In function `fft_3d_create_plan_cuda(ompi_communicator_t*, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int*, bool)':
fft3d_cuda.cpp:(.text+0xbd8): undefined reference to `cufftPlan3d'
fft3d_cuda.o: In function `fft_1d_only_cuda(FFT_DATA*, int, int, fft_plan_3d*)':
fft3d_cuda.cpp:(.text+0xf4a): undefined reference to `cufftExecZ2Z'
fft3d_cuda.cpp:(.text+0xf87): undefined reference to `cufftExecZ2Z'
collect2: ld devolvió el estado de salida 1
make[1]: *** [../lmp_openmpi.gea.cuda] Error 1
make: *** [openmpi.gea.cuda] Error 2

Hi

this is very weird. I don't see anything particularily wrong. You did compile with CUDA5 right? Could you try CUDA4.2?

You can just move your /usr/local/cuda to /usr/local/cuda5.0 and then install CUDA4.2 on top of that. You dont need to change the drivers. You might want to move the new /usr/local/cuda to /usr/local/cuda4.2 though.

Christian

-------- Original-Nachricht --------

Hi Christian.

I have just taken a look to what CUDA toolkit did i download last week and i download the file:

cudatoolkit_4.2.9_linux_64_ubuntu11.04.run

but (as can be seen in other mails with GPU problem) the binary nvc_get_devices from the /lammps/lib/gpu directory says:

/lammps-30Aug12/lib/gpu$ ./nvc_get_devices
Found 1 platform(s).
Using platform: NVIDIA Corporation NVIDIA CUDA Driver
CUDA Driver Version: 5.0

Device 0: "GeForce GTX 680"
Type of device: GPU
Compute capability: 3
Double precision support: Yes
Total amount of global memory: 1.99969 GB

[.......................]

So, why if i installed the version 4.2.9, the get_devices program says that i have version 5? Maybe due to the Nvidia driver installation (V304.43)???

It is quite strange. I can try to download an old 4.2 version and a old driver (Version below 300) if you think that my problem is with those drivers, but that conflict in the nvc_get_devices let me a little bit suspicious...

Thanks

Hi

hm that should be fine, I am running the 304.xx drivers and dont see any issues. Are you using the latest LAMMPS version? I'll try to reproduce the issue later.

Christian

-------- Original-Nachricht --------

Hi.

I'm using the LAMMPS version dated on 30-Aug-12. I can try to re-install the drivers and the toolkit, but maybe some conflicts with other compilations of lammps that i've already made may appear (I'm talking about the GPU-package and my issues with it XD)?

Ekhi