La compilación de Caffe falla debido a la versión de compilador gcc no compatible

Yo lucho conCafe Compilacion. Lamentablemente no pude compilarlo.

Pasos Seguí:

git clone https://github.com/BVLC/caffe.git
cd caffe
mkdir build
cd build
cmake ..
make all

Corriendomake all falla con el siguiente mensaje de error:

[  2%] Building NVCC (Device) object src/caffe/CMakeFiles/cuda_compile.dir/util/cuda_compile_generated_im2col.cu.o
In file included from /usr/include/cuda_runtime.h:59:0,
                 from <command-line>:0:
/usr/include/host_config.h:82:2: error: #error -- unsupported GNU version! gcc 4.9 and up are not supported!
 #error -- unsupported GNU version! gcc 4.9 and up are not supported!
  ^
CMake Error at cuda_compile_generated_im2col.cu.o.cmake:207 (message):
  Error generating /mydir/caffe/build/src/caffe/CMakeFiles/cuda_compile.dir/util/./cuda_compile_generated_im2col.cu.o

Versión del software:

OS:Debian.gcc versión:5.3.1.nvcc versión:6.5.12.cat /proc/driver/nvidia/version resultado:
NVRM version: NVIDIA UNIX x86_64 Kernel Module  352.63  Sat Nov  7 21:25:42 PST 2015
GCC version:  gcc version 4.8.5 (Debian 4.8.5-3) 
Intenta resolver el problema.1er intento

Las soluciones simples suelen ser las mejores, por lo que (como se sugiereaquí) Traté de comentar la comprobación de macrosgcc versión de/usr/include/host_config.h (línea 82). Desafortunadamente no funciona y la compilación falla gravemente:

1 catastrophic error detected in the compilation of "/tmp/tmpxft_000069c2_00000000-4_im2col.cpp4.ii".
2º intento

Traté de correr:

cmake -D CMAKE_CXX_COMPILER=g++-4.8 ..
make

pero falla conexactamente el mismo mensaje de error (aunqueg++-4.8 debe ser aceptado)

3er intento

He encontradoproblema similar (aunque no está relacionado conCafe) e intenté resolverlo como se sugiere en la respuesta aceptada.

Lo que hice:

He corridogrep -iR "find_package(CUDA" caffe comando y encontradoCuda.cmake archivo que tienefind_package(CUDA 5.5 QUIET) en línea225.yo añadíset(CUDA_HOST_COMPILER /usr/bin/gcc-4.8) aCuda.cmake, línea antes de línea:find_package(CUDA 5.5 QUIET).Quité todo debuild directorio y corriócmake ymake de nuevo, con y sin-D CMAKE_CXX_COMPILER=g++-4.8.

Lamentablemente, el resultado es exactamente el mismo. Caffe probablemente lo sobrescribe de alguna manera, no lo descubrícómo.

make VERBOSE=1 2>&1 | grep -i compiler-bindir no devuelve nada

Lo que es interesantemake VERBOSE=1 Imprime el comando que falla, que es:

/usr/bin/nvcc -M -D__CUDACC__ /mydir/caffe/src/caffe/util/im2col.cu -o /mydir/caffe/build/src/caffe/CMakeFiles/cuda_compile.dir/util/cuda_compile_generated_im2col.cu.o.NVCC-depend -ccbin /usr/bin/cc -m64 -DUSE_LMDB -DUSE_LEVELDB -DUSE_OPENCV -DWITH_PYTHON_LAYER -DGTEST_USE_OWN_TR1_TUPLE -Xcompiler ,\"-fPIC\",\"-Wall\",\"-Wno-sign-compare\",\"-Wno-uninitialized\",\"-O3\",\"-DNDEBUG\" -gencode arch=compute_20,code=sm_21 -Xcudafe --diag_suppress=cc_clobber_ignored -Xcudafe --diag_suppress=integer_sign_change -Xcudafe --diag_suppress=useless_using_declaration -Xcudafe --diag_suppress=set_but_not_used -Xcompiler -fPIC -DNVCC -I/usr/include -I/mydir/caffe/src -I/usr/include -I/mydir/caffe/build/include -I/usr/include/hdf5/serial -I/usr/include/opencv -I/usr/include/atlas -I/usr/include/python2.7 -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/mydir/caffe/include -I/mydir/caffe/build

cuando agrego--compiler-bindir /usr/bin/gcc-4.8 marca manualmente, imprime error:

nvcc fatal   : redefinition of argument 'compiler-bindir'

que puede estar relacionado conesta informe de error.

Editar: No me di cuenta de eso--compiler-bindir y-ccbin son las mismas opciones, y esta última ya está configurada en el comando anterior que falló. Cuando cambié-ccbin /usr/bin/cc a-ccbin /usr/bin/gcc-4.8 en el comando anterior que falló, se completa con éxito. Ahora necesito encontrar una opción en el archivo CMake de Caffe que sobrescribe-ccbin en todos los CMakes posteriores de Caffe. Mirando acmake/Cuda.cmake:252:list(APPEND CUDA_NVCC_FLAGS ${NVCC_FLAGS_EXTRA} Parece ser un buen camino a seguir.

¿Cómo puedo completar con éxito mi compilación? Cualquier ayuda es apreciada.

Preguntas SO relacionadas:

host_config.h: versión de GNU no compatible las versiones de gcc posteriores a 4.9 no son compatibles.CUDA 6.5 se queja de no admitir gcc 4.9: ¿qué hacer?.

Respuestas a la pregunta(2)

Su respuesta a la pregunta