2016-05-19 10 views
6

versagt Ich baue TensorFlow mit Bazel mit bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer wie von der TensorFlow 'installing from sources' instructions angewiesen.TensorFlow Bazel bauen

bekomme ich folgende Fehlermeldung:

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: 

... 

Stack: EC2 g2.8xlarge Maschine mit Ubuntu 14.04.2. Bazel Version 0.1.5 (installiert w/bazel-0.1.5-jdk7-installer-linux-x86_64.sh).

Ich habe versucht, Bazel 0.1.4 und 0.2.3 und ich bekomme den gleichen Fehler.

+1

Ich traf vor kurzem die Genaue Fehler. In meinem Fall habe ich auf TensorFlow 7.1 (ab 6.0) aufgerüstet. Am Ende habe ich CUDA (von 7.0 auf 7.5) und cuDNN (von V2 auf V4) aufgerüstet, damit ich nicht aus der Quelle bauen musste. (Ich habe nur von der Quelle gebaut, weil TensorFlow 7.1 CUDA 7.5 erwartet hatte und ich nur 7.0 hatte.) Wie auch immer, ich weiß, dass das keine wirkliche Antwort ist, aber je nachdem, was Sie erreichen wollen, wird vielleicht ein ähnlicher Ansatz funktionieren für dich. – Aenimated1

+0

Ich habe gerade das Gleiche gemacht. Aber ich möchte immer noch aus der Quelle bauen können! – rafaelcosman

+1

Haben Sie nach der Aktualisierung von CUDA/cuDDN versucht, aus der Quelle zu erstellen? Ich vermutete, dass der Build-Fehler das Ergebnis einer Inkompatibilität mit CUDA 7.0 oder cuDNN pre-v4 war, aber ich habe nicht versucht, nach dem Upgrade aus der Quelle zu bauen. – Aenimated1

Antwort

2

Ich hatte das gleiche Problem Aufbau Tensorflow in Ubuntu 16.04.

Zunächst einmal sicher, dass Sie < gcc-Version verwenden = 4,8

In meinem Fall musste ich es installieren zu tun:

Für 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 

Für 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 

Sobald ich die richtige Version von gcc und g ++ hatte, musste ich die C bearbeiten ROSSTOOL Datei wie folgt:

gedit tensorflow_sources_folder/third_party/gpus/crosstool/CROSSTOOL 

Suche alle ocurrence dieser spezifischen Linie:

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

und legen Sie die folgende Zeile genau darüber:

cxx_flag: "-D_FORCE_INLINES" 

So das Ergebnis sein muss:

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

ist gcc 4.8.4 zu hoch? Ich bekomme den gleichen Fehler mit Ubuntu 14.04, Bazel 0.3.0, TensorFlow 0.8, aws g2.2xlarge – Streblo