Dear experts,
my system is Ubuntu 16.04, I have gcc 5.4 and CUDA toolkit 9.
I have a standalone installation of Vc (1.3) and Vecgeom (master branch) which uses Vc as backend and with CUDA support enabled.
The cmake command to configure the compilation is:
cmake …/git -Dqtgsi=“1” -Dvecgeom=“1” -DCMAKE_BUILD_TYPE=“RelWithDebInfo” -DCUDA_HOST_COMPILER=“/usr/bin/cc” -Dmemstat=“1” -Dpython3=“1” -Dldap=“1” -Dgnuinstall=“1” -Dqt=“1” -Dminuit2=“1” -Dshadowpw=“1” -Dtable=“1” -Dvc=“1” -Dgviz=“1” -DCMAKE_INSTALL_PREFIX=“/home/ccorti/programs/root6/build” -DCMAKE_PREFIX_PATH=“/home/ccorti/programs/vecgeom/build/lib/cmake/VecGeom” -Dbuiltin_vdt=“1” -Dveccore=“1” -Dkrb5=“1” -Dall=“1” -Dcuda=“1” -DENABLE_LINKER_BUILD_ID=“1” -Dcxx14=“1” -Dvdt=“1” -Dunuran=“1”
So far I had two compilation errors:
-
Failed compilation of TMVA/DNN with CUDA and C++14, because nvcc was not passed the
-std=c++14
flag.
I solved this by settingCUDA_NVCC_FLAGS="-std=c++14"
in CMakeCache.txt. -
Failed compilation of graf3d/gl/CMakeFiles/RGL.dir/G__RGL.cxx.o
The compilation command being issued is:
/usr/bin/c++ -DVECCORE_ENABLE_CUDA -DVECCORE_ENABLE_VC -DVECGEOM_CUDA_NO_VOLUME_SPECIALIZATION -DVECGEOM_ENABLE_CUDA -DVECGEOM_INPLACE_TRANSFORMATIONS -DVECGEOM_NO_SPECIALIZATION -DVECGEOM_QUADRILATERALS_VC -DVECGEOM_USE_INDEXEDNAVSTATES -DVECGEOM_VC -I/home/ccorti/programs/root6/build/include -I/usr/local/include -I/home/ccorti/programs/root6/build/externals/home/ccorti/programs/root6/build/include -I/home/ccorti/programs/root6/git/graf3d/ftgl/inc -I/usr/include/freetype2 -I/usr/include/x86_64-linux-gnu/freetype2 -I/home/ccorti/programs/root6/git/graf3d/gl/src/gl2ps -pipe -m64 -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -fPIC -pthread -std=c++14 -DR__HAVE_CONFIG -fabi-version=0 -march=native -O2 -g -DNDEBUG -fPIC -o CMakeFiles/RGL.dir/G__RGL.cxx.o -c /home/ccorti/programs/root6/build/graf3d/gl/G__RGL.cxx
while the errors are (I report only the first lines):
In file included from /usr/include/GL/glx.h:30:0,
from /home/ccorti/programs/root6/build/include/TX11GL.h:27,
from /home/ccorti/programs/root6/build/graf3d/gl/G__RGL.cxx:56:
/usr/local/include/Vc/common/simdarray.h:1542:32: error: expected nested-name-specifier before numeric constant
template <bool B, typename True, typename False>
^
/usr/local/include/Vc/common/simdarray.h:1542:32: error: expected ‘>’ before numeric constant
In file included from /usr/local/include/Vc/vector.h:191:0,
from /usr/local/include/Vc/Vc:30,
from /home/ccorti/programs/root6/build/include/Math/Types.h:18,
from /home/ccorti/programs/root6/build/include/TFormula.h:24,
from /home/ccorti/programs/root6/build/include/TF1.h:27,
from /home/ccorti/programs/root6/build/include/TF2.h:26,
from /home/ccorti/programs/root6/build/include/TGLParametric.h:18,
from /home/ccorti/programs/root6/build/graf3d/gl/G__RGL.cxx:72:
/usr/local/include/Vc/common/simdarray.h:1543:65: error: type/value mismatch at argument 2 in template parameter list for ‘template<bool <anonymous>, class, class> struct std::conditional’
using conditional = typename std::conditional<B, True, False>::type;
^
/usr/local/include/Vc/common/simdarray.h:1543:65: note: expected a type, got ‘1’
/usr/local/include/Vc/common/simdarray.h:1543:65: error: type/value mismatch at argument 3 in template parameter list for ‘template<bool <anonymous>, class, class> struct std::conditional’
/usr/local/include/Vc/common/simdarray.h:1543:65: note: expected a type, got ‘0’
I’m currently stuck here, since Vecgeom has been compiled with Vc with no problems, so I don’t know exactly what to do.
Best,
Claudio