CUDA 8 RC 的 Tensorflow 安装失败

Tensorflow install fails with CUDA 8 RC

我知道 Cuda 8 还不受 tensorflow 支持,但它是我的 Ubuntu 16.04 系统上唯一可用的选项。 (我可以通过 Ubuntu 存储库安装 7.5,但它不会创建 cuda 主目录,所以我不能将它用于 tensorflow .configure 脚本,尽管它适用于其他所有内容)。我尝试使用以下命令构建它。

bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

我收到这个错误。

ERROR: /home/chase/Desktop/tensorflow/tensorflow/stream_executor/BUILD:5:1: C++ compilation of rule '//tensorflow/stream_executor:stream_executor' 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-free-nonheap-object ... (remaining 100 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1.
tensorflow/stream_executor/cuda/cuda_blas.cc: In member function 'virtual bool perftools::gputools::cuda::CUDABlas::DoBlasGemm(perftools::gputools::Stream*, perftools::gputools::blas::Transpose, perftools::gputools::blas::Transpose, tensorflow::uint64, tensorflow::uint64, tensorflow::uint64, float, const perftools::gputools::DeviceMemory<Eigen::half>&, int, const perftools::gputools::DeviceMemory<Eigen::half>&, int, float, perftools::gputools::DeviceMemory<Eigen::half>*, int)':
tensorflow/stream_executor/cuda/cuda_blas.cc:1683:22: error: 'CUBLAS_DATA_HALF' was not declared in this scope
       CUDAMemory(a), CUBLAS_DATA_HALF, lda,
                      ^
tensorflow/stream_executor/cuda/cuda_blas.cc: In function 'cublasOperation_t perftools::gputools::cuda::{anonymous}::CUDABlasTranspose(perftools::gputools::blas::Transpose)':
tensorflow/stream_executor/cuda/cuda_blas.cc:406:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
tensorflow/stream_executor/cuda/cuda_blas.cc: In function 'cublasFillMode_t perftools::gputools::cuda::{anonymous}::CUDABlasUpperLower(perftools::gputools::blas::UpperLower)':
tensorflow/stream_executor/cuda/cuda_blas.cc:417:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
tensorflow/stream_executor/cuda/cuda_blas.cc: In function 'cublasDiagType_t perftools::gputools::cuda::{anonymous}::CUDABlasDiagonal(perftools::gputools::blas::Diagonal)':
tensorflow/stream_executor/cuda/cuda_blas.cc:428:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
tensorflow/stream_executor/cuda/cuda_blas.cc: In function 'cublasSideMode_t perftools::gputools::cuda::{anonymous}::CUDABlasSide(perftools::gputools::blas::Side)':
tensorflow/stream_executor/cuda/cuda_blas.cc:439:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
Target //tensorflow/tools/pip_package:build_pip_package failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 118.926s, Critical Path: 115.25s

有谁知道如何解决或解决这个问题,还是我只需要等待他们支持 CUDA 8?

这是一个 known issue with the current version of TensorFlow. You can try patching in the code from this pull request 来定义缺少的类型 (CUBLAS_DATA_HALF),这会导致编译失败。