Build kokkos fails

Hello everyone, I’m building last version from git (maybe in the future? version says 19 Nov 2014) and I cannot build kokkos with cuda, I get an error in the core implementation:

“”"
…/…/lib/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp(144): error: first argument must be a pointer to integer or enumeration type

…/…/lib/kokkos/core/src/impl/Kokkos_Atomic_Exchange.hpp(168): error: first argument must be a pointer to integer or enumeration type
“”"

when trying to build compute_dihedral_local.cpp in a GTX 560 with nvcc

any thoughts? am I missing something? Had no problems compiling OMP

make yes-kokkos
make kokkos_cuda

works for me, using nvcc 5.5, V5.5.0

Can anyone else reproduce this problem?

Steve

i’ll try upgrading nvcc, looks pretty outdated (4.2 V0.2.1221). I found though no mention about a specific version in the manual. I will let you know what happens with the newest version

make yes-kokkos
make kokkos_cuda

works for me, using nvcc 5.5, V5.5.0

Can anyone else reproduce this problem?

it compiles for me with CUDA 6.5 on linux x86_64 (fedora 20).

however, i do get a bunch of warnings that look as if they point to
problems that need to be resolved.

for example this:

../comm_kokkos.h(42): warning: function
"LAMMPS_NS::Comm::forward_comm_fix(LAMMPS_NS::Fix *, int)" is hidden
by "LAMMPS_NS::CommKokkos::forward_comm_fix" -- virtual function
override intended?
../comm_kokkos.h(43): warning: function
"LAMMPS_NS::Comm::reverse_comm_fix(LAMMPS_NS::Fix *, int)" is hidden
by "LAMMPS_NS::CommKokkos::reverse_comm_fix" -- virtual function
override intended?

it also applies to USER-CUDA:

../comm_cuda.h(43): warning: function
"LAMMPS_NS::Comm::forward_comm_fix(LAMMPS_NS::Fix *, int)" is hidden
by "LAMMPS_NS::CommCuda::forward_comm_fix" -- virtual function
override intended?
../domain_cuda.h(22): warning: overloaded virtual function
"LAMMPS_NS::Domain::lamda2x" is only partially overridden in class
"LAMMPS_NS::DomainCuda"
../domain_cuda.h(22): warning: overloaded virtual function
"LAMMPS_NS::Domain::x2lamda" is only partially overridden in class
"LAMMPS_NS::DomainCuda"

USER-CUDA also has issues in pppm/cuda and pppm/old, which can be
fixed with the attached patch.

and this seems to be caused by changes to the baseline code that were
not correctly ported to both KOKKOS and USER-CUDA (if at all).

and *lots* of these:
../atom_vec_full_kokkos.cpp(1069): warning: calling a __host__
function from a __host__ __device__ function is not allowed
../atom_vec_full_kokkos.cpp(1073): warning: calling a __host__
function from a __host__ __device__ function is not allowed

../comm_kokkos.cpp(620) (col. 15): warning: calling a __host__
function("Kokkos::Impl::OpenMPexecTeamMember::team_scan<int> ") from a
__host__ __device__ function("BuildBorderListFunctor<Kokkos::OpenMP>
::operator ()") is not allowed

axel.

lammps-user-cuda-pppm-api-hack.diff.gz (735 Bytes)