[Paradiseo-help] [Paradiseo-users] Having trouble to get the ParadisEO-GPU running

Oliver Damm c009492 at gmail.com
Lun 28 Jan 11:40:02 CET 2013


Hi,

I just started working with Paradis-EO and have some trouble getting
the ParadisEO-GPU-1.1 compiled on my ubuntu 12.04 machine.

Let me start with the system environment:
Linux: 3.2.0-36-generic #57-Ubuntu SMP Tue Jan 8 21:44:52 UTC 2013
x86_64 x86_64 x86_64 GNU/Linux

modinfo nvidia
filename:       /lib/modules/3.2.0-36-generic/kernel/drivers/video/nvidia.ko
version:        310.19

gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2012 NVIDIA Corporation
Built on Fri_Sep_21_17:28:58_PDT_2012
Cuda compilation tools, release 5.0, V0.2.1221

I downloaded the package ParadisEO-GPU-1.1.zip from the site and
extracted it. If I run
> bash installParadiseo-gpu.sh
the script reports a success (I skipped the cuda toolkit installation).

However, if I look into the paradiseo-gpu/build/tutorial directory, I
found working executables (e.g., KswapNeighborhood) and not
working/compiling ones, e.g. OneMax:

ParadisEO-GPU-1.1/paradiseo-gpu/build/tutorial/OneMax$ make
[ 16%] Building NVCC (Device) object
tutorial/OneMax/./GPUtestFirstImpr_generated_testFirstImpr.cu.o
/para/ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoParam.h(374):
warning: statement is unreachable

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoParam.h(381):
warning: statement is unreachable
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoGnuplot1DMonitor.h(49):
warning: overloaded virtual function "eoFileMonitor::operator()" is
only partially overridden in class eoGnuplot1DMonitor"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoIntBounds.h(151):
warning: overloaded virtual function "eoIntBounds::foldsInBounds" is
only partially overridden in class "eoIntNoBounds"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoIntBounds.h(151):
warning: overloaded virtual function "eoIntBounds::truncate" is only
partially overridden in class "eoIntNoBounds"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoIntBounds.h(235):
warning: overloaded virtual function "eoIntBounds::foldsInBounds" is
only partially overridden in class "eoIntInterval"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoIntBounds.h(235):
warning: overloaded virtual function "eoIntBounds::truncate" is only
partially overridden in class "eoIntInterval"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoIntBounds.h(361):
warning: overloaded virtual function "eoIntBounds::foldsInBounds" is
only partially overridden in class "eoIntBelowBound"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoIntBounds.h(361):
warning: overloaded virtual function "eoIntBounds::truncate" is only
partially overridden in class "eoIntBelowBound"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoIntBounds.h(468):
warning: overloaded virtual function "eoIntBounds::foldsInBounds" is
only partially overridden in class "eoIntAboveBound"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoIntBounds.h(468):
warning: overloaded virtual function "eoIntBounds::truncate" is only
partially overridden in class "eoIntAboveBound"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoIntBounds.h(578):
warning: overloaded virtual function "eoIntBounds::foldsInBounds" is
only partially overridden in class "eoGeneralIntBounds"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-eo/src/utils/eoIntBounds.h(578):
warning: overloaded virtual function "eoIntBounds::truncate" is only
partially overridden in class "eoGeneralIntBounds"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-mo/src/neighborhood/moIndexNeighbor.h(70):
warning: function "moNeighbor<EOType, Fitness>::operator=(const
moNeighbor<EOType, Fitness> &) [with
EOType=moGPUBitVector<eoMaximizingFitness>,
Fitness=eoMaximizingFitness]" is hidden by "moIndexNeighbor<EOT,
Fitness>::operator= [with EOT=moGPUBitVector<eoMaximizingFitness>,
Fitness=eoMaximizingFitness]" -- virtual function override intended?
          detected during:
            instantiation of class "moIndexNeighbor<EOT, Fitness>
[with EOT=moGPUBitVector<eoMaximizingFitness>,
Fitness=eoMaximizingFitness]"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/neighborhood/moGPUBitNeighbor.h(48):
here
            instantiation of class "moGPUBitNeighbor<Fitness> [with
Fitness=eoMaximizingFitness]"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/eval/moGPUEvalFunc.h(51):
here
            instantiation of class "moGPUEvalFunc<Neighbor> [with
Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/problems/eval/moGPUOneMaxIncrEval.h(45):
here
            instantiation of class "moGPUOneMaxIncrEval<Neighbor>
[with Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/tutorial/OneMax/testFirstImpr.cu(145): here

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-mo/src/neighborhood/moIndexNeighbor.h(105):
warning: function "moNeighbor<EOType,
Fitness>::equals(moNeighbor<EOType, Fitness> &) [with
EOType=moGPUBitVector<eoMaximizingFitness>,
Fitness=eoMaximizingFitness]" is hidden by "moIndexNeighbor<EOT,
Fitness>::equals [with EOT=moGPUBitVector<eoMaximizingFitness>,
Fitness=eoMaximizingFitness]" -- virtual function override intended?
          detected during:
            instantiation of class "moIndexNeighbor<EOT, Fitness>
[with EOT=moGPUBitVector<eoMaximizingFitness>,
Fitness=eoMaximizingFitness]"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/neighborhood/moGPUBitNeighbor.h(48):
here
            instantiation of class "moGPUBitNeighbor<Fitness> [with
Fitness=eoMaximizingFitness]"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/eval/moGPUEvalFunc.h(51):
here
            instantiation of class "moGPUEvalFunc<Neighbor> [with
Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/problems/eval/moGPUOneMaxIncrEval.h(45):
here
            instantiation of class "moGPUOneMaxIncrEval<Neighbor>
[with Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/tutorial/OneMax/testFirstImpr.cu(145): here

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/eval/moGPUEvalByModif.h(47):
warning: overloaded virtual function
"moGPUEval<Neighbor>::neighborhoodEval [with Neighbor=Neighbor]" is
only partially overridden in class "moGPUEvalByModif<Neighbor,
moGPUOneMaxIncrEval<Neighbor>>"
          detected during instantiation of class
"moGPUEvalByModif<Neighbor, Eval> [with Neighbor=Neighbor,
Eval=moGPUOneMaxIncrEval<Neighbor>]"
ParadisEO-GPU-1.1/paradiseo-gpu/tutorial/OneMax/testFirstImpr.cu(146): here

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/eval/moGPUEvalFunc.h(79):
warning: calling a __host__ function from a __host__ __device__
function is not allowed
          detected during:
            instantiation of "moGPUEvalFunc<Neighbor>::Fitness
moGPUEvalFunc<Neighbor>::operator()(moGPUEvalFunc<Neighbor>::T *,
moGPUEvalFunc<Neighbor>::Fitness, unsigned int *) [with
Neighbor=Neighbor]"
(60): here
            instantiation of "moGPUEvalFunc<Neighbor>::moGPUEvalFunc()
[with Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/problems/eval/moGPUOneMaxIncrEval.h(57):
here
            instantiation of
"moGPUOneMaxIncrEval<Neighbor>::moGPUOneMaxIncrEval() [with
Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/tutorial/OneMax/testFirstImpr.cu(145): here

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/problems/eval/moGPUOneMaxIncrEval.h(76):
warning: calling a __host__ function from a __host__ __device__
function is not allowed
          detected during:
            instantiation of "moGPUOneMaxIncrEval<Neighbor>::Fitness
moGPUOneMaxIncrEval<Neighbor>::operator()(moGPUOneMaxIncrEval<Neighbor>::T
*, moGPUOneMaxIncrEval<Neighbor>::Fitness, unsigned int *) [with
Neighbor=Neighbor]"
(58): here
            instantiation of
"moGPUOneMaxIncrEval<Neighbor>::moGPUOneMaxIncrEval() [with
Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/tutorial/OneMax/testFirstImpr.cu(145): here

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/problems/eval/moGPUOneMaxIncrEval.h(80):
warning: calling a __host__ function from a __host__ __device__
function is not allowed
          detected during:
            instantiation of "moGPUOneMaxIncrEval<Neighbor>::Fitness
moGPUOneMaxIncrEval<Neighbor>::operator()(moGPUOneMaxIncrEval<Neighbor>::T
*, moGPUOneMaxIncrEval<Neighbor>::Fitness, unsigned int *) [with
Neighbor=Neighbor]"
(58): here
            instantiation of
"moGPUOneMaxIncrEval<Neighbor>::moGPUOneMaxIncrEval() [with
Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/tutorial/OneMax/testFirstImpr.cu(145): here

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/problems/eval/moGPUOneMaxIncrEval.h(80):
warning: calling a __host__ function from a __host__ __device__
function is not allowed
          detected during:
            instantiation of "moGPUOneMaxIncrEval<Neighbor>::Fitness
moGPUOneMaxIncrEval<Neighbor>::operator()(moGPUOneMaxIncrEval<Neighbor>::T
*, moGPUOneMaxIncrEval<Neighbor>::Fitness, unsigned int *) [with
Neighbor=Neighbor]"
(58): here
            instantiation of
"moGPUOneMaxIncrEval<Neighbor>::moGPUOneMaxIncrEval() [with
Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/tutorial/OneMax/testFirstImpr.cu(145): here

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/problems/eval/moGPUOneMaxIncrEval.h(82):
warning: calling a __host__ function from a __host__ __device__
function is not allowed
          detected during:
            instantiation of "moGPUOneMaxIncrEval<Neighbor>::Fitness
moGPUOneMaxIncrEval<Neighbor>::operator()(moGPUOneMaxIncrEval<Neighbor>::T
*, moGPUOneMaxIncrEval<Neighbor>::Fitness, unsigned int *) [with
Neighbor=Neighbor]"
(58): here
            instantiation of
"moGPUOneMaxIncrEval<Neighbor>::moGPUOneMaxIncrEval() [with
Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/tutorial/OneMax/testFirstImpr.cu(145): here

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/problems/eval/moGPUOneMaxIncrEval.h(82):
warning: calling a __host__ function from a __host__ __device__
function is not allowed
          detected during:
            instantiation of "moGPUOneMaxIncrEval<Neighbor>::Fitness
moGPUOneMaxIncrEval<Neighbor>::operator()(moGPUOneMaxIncrEval<Neighbor>::T
*, moGPUOneMaxIncrEval<Neighbor>::Fitness, unsigned int *) [with
Neighbor=Neighbor]"
(58): here
            instantiation of
"moGPUOneMaxIncrEval<Neighbor>::moGPUOneMaxIncrEval() [with
Neighbor=Neighbor]"
ParadisEO-GPU-1.1/paradiseo-gpu/tutorial/OneMax/testFirstImpr.cu(145): here

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/eval/moGPUKernelEvalByModif.h(64):
error: calling a __host__ function("eoScalarFitness<float,
std::less<float> > ::operator =") from a __global__
function("moGPUKernelEvalByModif<bool, eoScalarFitness<float,
std::less<float> > ,
moGPUOneMaxIncrEval<moGPUBitNeighbor<eoScalarFitness<float,
std::less<float> > > > > ") is not allowed

ParadisEO-GPU-1.1/paradiseo-gpu/../paradiseo-gpu/src/eval/moGPUKernelEvalByModif.h(64):
error: calling a __host__ function("eoScalarFitness<float,
std::less<float> > ::eoScalarFitness") from a __global__
function("moGPUKernelEvalByModif<bool, eoScalarFitness<float,
std::less<float> > ,
moGPUOneMaxIncrEval<moGPUBitNeighbor<eoScalarFitness<float,
std::less<float> > > > > ") is not allowed

2 errors detected in the compilation of
"/tmp/tmpxft_00001185_00000000-6_testFirstImpr.cpp1.ii".
CMake Error at CMakeFiles/GPUtestFirstImpr_generated_testFirstImpr.cu.o.cmake:256
(message):
  Error generating file
  ParadisEO-GPU-1.1/paradiseo-gpu/build/tutorial/OneMax/./GPUtestFirstImpr_generated_testFirstImpr.cu.o

make[2]: *** [tutorial/OneMax/./GPUtestFirstImpr_generated_testFirstImpr.cu.o]
Error 1
make[1]: *** [tutorial/OneMax/CMakeFiles/GPUtestFirstImpr.dir/all] Error 2
make: *** [all] Error 2



I have no idea where this relates to (cuda toolkit v3.2 required? gcc
v4.4 required? 32bit instead of 64bit?) I think, "error: calling a
__host__ function...from a __global__ function...is not allowed"
relates to the sources? Can anyone help me, please?


BR
Oliver

_______________________________________________
Paradiseo-users mailing list
Paradiseo-users at lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/paradiseo-users




Plus d'informations sur la liste de diffusion Paradiseo-help