2016-05-19 20 views
6

Buduję TensorFlow z Bazel za pomocą bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer zgodnie z instrukcjami dostarczonymi przez TensorFlow 'installing from sources' instructions.Awaria TensorFlow Bazel build

pojawia się następujący błąd:

ERROR: /home/ubuntu/tensorflow/tensorflow/stream_executor/BUILD:5:1: C++ compilation of rule '//tensorflow/stream_executor:stream_e 
xecutor' failed: crosstool_wrapper_driver_is_not_gcc failed: error executing command third_party/gpus/crosstool/clang/bin/crosstool 
_wrapper_driver_is_not_gcc -U_FORTIFY_SOURCE '-D_FORTIFY_SOURCE=1' -fstack-protector -fPIE -Wall -Wunused-but-set-parameter -Wno-fr 
ee-nonheap-object ... (remaining 87 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exite 
d with status 1. 

tensorflow/stream_executor/cuda/cuda_dnn.cc: In function 'cudnnConvolutionFwdAlgo_t perftools::gputools::cuda::{anonymous}::ToConvF 
orwardAlgo(perftools::gputools::dnn::AlgorithmType)':                    
tensorflow/stream_executor/cuda/cuda_dnn.cc:269:10: error: 'CUDNN_CONVOLUTION_FWD_ALGO_FFT' was not declared in this scope   
    case CUDNN_CONVOLUTION_FWD_ALGO_FFT: 

... 

Stos: EC2 maszyna g2.8xlarge systemem Ubuntu 14.04.2. Wersja Bazela 0.1.5 (zainstalowana w/bazel-0.1.5-jdk7-installer-linux-x86_64.sh).

Próbowałem Bazel 0.1.4 i 0.2.3 i otrzymuję ten sam błąd.

+1

Niedawno natknąłem się na dokładnie takie same błędy. W moim przypadku zaktualizowałem TensorFlow 7.1 (z wersji 6.0). W końcu zakończyłem aktualizację CUDA (z 7.0 na 7.5) i cuDNN (z v2 na v4), więc nie musiałem budować ze źródła. (Budowałem tylko ze źródeł, ponieważ TensorFlow 7.1 spodziewał się znaleźć CUDA 7.5, a miałem tylko 7.0.) W każdym razie wiem, że to nie jest odpowiedź, ale w zależności od tego, co próbujesz osiągnąć, być może podobne podejście zadziała dla Ciebie. – Aenimated1

+0

Po prostu zrobiłem to samo. Ale nadal chciałbym móc budować ze źródła! – rafaelcosman

+1

Czy próbowałeś budować ze źródeł po uaktualnieniu CUDA/cuDDN? Doszedłem do wniosku, że niepowodzenie kompilacji było prawdopodobnie wynikiem niekompatybilności z CUDA 7.0 lub cuDNN pre-v4, ale nie próbowałem budować ze źródła po aktualizacji. – Aenimated1

Odpowiedz

2

Miałem ten sam problem z budową tensorflow w Ubuntu 16.04.

Przede wszystkim upewnić się, że używasz gcc w wersji < = 4,8

W moim przypadku musiałem zainstalować to robi:

Dla gcc

sudo apt-get install gcc-4.8 
sudo update-alternatives --remove-all gcc 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 

Dla g ++

sudo apt-get install g++-4.8 
sudo update-alternatives --remove-all g++ 
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10 

Kiedy już miałem odpowiednią wersję gcc i g ++, musiałem edytować C Plik ROSSTOOL następująco:

gedit tensorflow_sources_folder/third_party/gpus/crosstool/CROSSTOOL 

Szukaj każdego wcześniejszego występowania tej konkretnej linii:

tool_path { name: "gcc" path: "clang/bin/crosstool_wrapper_driver_is_not_gcc" } 

i wstawić następujący wiersz dokładnie nad nim:

cxx_flag: "-D_FORCE_INLINES" 

więc wynik musi być:

cxx_flag: "-D_FORCE_INLINES" 
tool_path { name: "gcc" path: "clang/bin/crosstool_wrapper_driver_is_not_gcc" } 
+0

czy gcc 4.8.4 jest za wysoki? Otrzymuję ten sam błąd w Ubuntu 14.04, Bazel 0.3.0, TensorFlow 0.8, aws g2.2xlarge – Streblo