2016-05-19 52 views
6

Tôi đang xây dựng TensorFlow với Bazel sử dụng bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer theo hướng dẫn của TensorFlow 'installing from sources' instructions.TensorFlow Bazel xây dựng thất bại

tôi nhận được lỗi sau:

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 máy chạy Ubuntu 14.04.2. Bazel phiên bản 0.1.5 (cài đặt w/bazel-0.1.5-jdk7-installer-linux-x86_64.sh).

Tôi đã thử Bazel 0.1.4 và 0.2.3 và tôi gặp lỗi tương tự.

+1

Gần đây tôi đã gặp phải cùng một lỗi chính xác. Trong trường hợp của tôi, tôi đã nâng cấp lên TensorFlow 7.1 (từ 6.0). Cuối cùng, tôi nâng cấp CUDA (từ 7.0 lên 7.5) và cuDNN (từ v2 đến v4) để tôi không phải xây dựng từ nguồn. (Tôi chỉ xây dựng từ nguồn bởi vì TensorFlow 7.1 đã mong đợi để tìm CUDA 7.5 và tôi chỉ có 7.0.) Dù sao, tôi biết đó không thực sự là câu trả lời, nhưng tùy thuộc vào những gì bạn đang cố gắng hoàn thành, có thể một cách tiếp cận tương tự sẽ hoạt động cho bạn. – Aenimated1

+0

Tôi cũng làm điều tương tự. Nhưng tôi vẫn muốn có thể xây dựng từ nguồn! – rafaelcosman

+1

Bạn đã thử xây dựng từ nguồn sau khi nâng cấp CUDA/cuDDN chưa? Tôi thấy sự thất bại xây dựng có lẽ là kết quả của một số không tương thích với CUDA 7.0 hoặc cuDNN trước v4, nhưng tôi không bận tâm cố gắng xây dựng từ nguồn sau khi nâng cấp. – Aenimated1

Trả lời

2

Tôi gặp vấn đề tương tự khi xây dựng chuỗi lưu lượng trong Ubuntu 16.04.

Trước hết đảm bảo rằng bạn đang sử dụng gcc phiên bản < = 4,8

Trong trường hợp của tôi, tôi đã phải cài đặt nó làm:

Đối với 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 

Đối với 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 

Khi có phiên bản đúng của gcc và g ++, tôi phải chỉnh sửa C tập tin ROSSTOOL như sau:

gedit tensorflow_sources_folder/third_party/gpus/crosstool/CROSSTOOL 

Tìm kiếm tất cả các ocurrence của dòng cụ thể này:

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

Và chèn dòng sau chính xác trên nó:

cxx_flag: "-D_FORCE_INLINES" 

Vì vậy, kết quả phải:

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

là gcc 4.8.4 quá cao? Tôi gặp lỗi tương tự với Ubuntu 14.04, Bazel 0.3.0, TensorFlow 0.8, aws g2.2xlarge – Streblo

Các vấn đề liên quan