2016-05-19 4 views
6

Я строю TensorFlow с помощью Bazel с использованием bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer, как указано TensorFlow 'installing from sources' instructions.TensorFlow Bazel build failing

я получаю следующее сообщение об ошибке:

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 машина работает Ubuntu 14.04.2. Базель версии 0.1.5 (установлен w/bazel-0.1.5-jdk7-installer-linux-x86_64.sh).

Я пробовал Bazel 0.1.4 и 0.2.3, и я получаю ту же ошибку.

+1

Недавно я столкнулся с такие же точные ошибки. В моем случае я обновлялся до TensorFlow 7.1 (от 6.0). В итоге я завершил обновление CUDA (от 7.0 до 7.5) и cuDNN (от v2 до v4), так что мне не пришлось строить из источника. (Я только строился из источника, потому что TensorFlow 7.1 ожидал найти CUDA 7.5, и у меня было только 7.0.) В любом случае, я знаю, что это не совсем ответ, но в зависимости от того, что вы пытаетесь выполнить, возможно, подобный подход будет работать для тебя. – Aenimated1

+0

Я просто сделал то же самое. Но я все равно хотел бы построить из источника! – rafaelcosman

+1

Вы пытались создать исходный код после обновления CUDA/cuDDN? Я понял, что сбой сборки был, вероятно, результатом некоторой несовместимости с CUDA 7.0 или cuDNN pre-v4, но я не стал пытаться строить из источника после обновления. – Aenimated1

ответ

2

У меня был такой же выпуск тензорного строительства в Ubuntu 16.04.

Прежде всего убедитесь, что вы используете GCC версии < = 4,8

В моем случае я должен был установить это делает:

Для НКУ

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 

Для г ++

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 

После правильной версии gcc и g ++ мне пришлось редактировать C ROSSTOOL файл следующим образом:

gedit tensorflow_sources_folder/third_party/gpus/crosstool/CROSSTOOL 

Поиск каждое вхождение этой конкретной линии:

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

и вставьте следующую строку точно над ним:

cxx_flag: "-D_FORCE_INLINES" 

Так что результат должен быть:

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

gcc 4.8.4 слишком высокий? Я получаю ту же ошибку с Ubuntu 14.04, Bazel 0.3.0, TensorFlow 0.8, aws g2.2xlarge – Streblo