【问题标题】:How to build Tensorflow 1.4 with CUDNN 5.0?如何使用 CUDNN 5.0 构建 TensorFlow 1.4?
【发布时间】:2017-11-08 19:23:15
【问题描述】:

我正在尝试在 Centos 7 上从具有 CUDA 8.0 和 CUDNN 5.0.5 的源安装 Tensorflow 1.4。文档中指出它应该与 CUDNN 3 及更高版本一起使用。我正在使用 Bazel 0.7.0 和 GCC 4.9 在 Python 3.4.5 的虚拟环境中工作。在配置过程中,我将 CUDNN 版本设置为 5.0.5 并且找到了该库。

不幸的是,它不起作用并最终出现一个似乎表明需要 CUDNN v6 的错误(我可能对错误的原因有误)。

这是我正在使用的命令:

bazel build --config=opt --config=cuda --config=mkl //tensorflow/tools/pip_package:build_pip_packag

这是错误:

ERROR: /home/localuser/tensorflow/tensorflow/stream_executor/BUILD:52:1: C++ compilation of rule '//tensorflow/stream_executor:cuda_platform' failed (Exit 1).
tensorflow/stream_executor/cuda/cuda_dnn.cc: In member function 'cudnnStatus_t perftools::gputools::cuda::wrap::WrapperShim__cudnnSetRNNDescriptor_v6::operator()(perftools::gputools::cuda::CUDAExecutor*, Args ...)':
tensorflow/stream_executor/cuda/cuda_dnn.cc:140:30: error: '::cudnnSetRNNDescriptor_v6' has not been declared
       cudnnStatus_t retval = ::__name(args...);                    \
                              ^
tensorflow/stream_executor/cuda/cuda_dnn.cc:235:3: note: in expansion of macro 'PERFTOOLS_GPUTOOLS_CUDNN_WRAP'
   __macro(cudnnSetRNNDescriptor_v6)                           \
   ^
tensorflow/stream_executor/cuda/cuda_dnn.cc:240:1: note: in expansion of macro 'CUDNN_DNN_ROUTINE_EACH_R5'
 CUDNN_DNN_ROUTINE_EACH_R5(PERFTOOLS_GPUTOOLS_CUDNN_WRAP)

这是配置的结果(.tf_configure.bazelrc):

build --action_env PYTHON_BIN_PATH="/home/localuser/venvs/tensorflow14-opt/bin/python"
build --action_env PYTHON_LIB_PATH="/home/localuser/venvs/tensorflow14-opt/lib/python3.4/site-packages"
build --define PYTHON_BIN_PATH="/home/localuser/venvs/tensorflow14-opt/bin/python"
build --define PYTHON_LIB_PATH="/home/localuser/venvs/tensorflow14-opt/lib/python3.4/site-packages"
build --force_python=py3
build --host_force_python=py3
build --python_path="/home/localuser/venvs/tensorflow14-opt/bin/python"
test --force_python=py3
test --host_force_python=py3
test --define PYTHON_BIN_PATH="/home/localuser/venvs/tensorflow14-opt/bin/python"
test --define PYTHON_LIB_PATH="/home/localuser/venvs/tensorflow14-opt/lib/python3.4/site-packages"
run --define PYTHON_BIN_PATH="/home/localuser/venvs/tensorflow14-opt/bin/python"
run --define PYTHON_LIB_PATH="/home/localuser/venvs/tensorflow14-opt/lib/python3.4/site-packages"
build:gcp --define with_gcp_support=true
build:hdfs --define with_hdfs_support=true
build:s3 --define with_s3_support=true
build:xla --define with_xla_support=true
build:gdr --define with_gdr_support=true
build:verbs --define with_verbs_support=true
build --action_env TF_NEED_OPENCL="0"
build --action_env TF_NEED_CUDA="1"
build --action_env CUDA_TOOLKIT_PATH="/usr/local/cuda"
build --action_env TF_CUDA_VERSION="8.0"
build --action_env CUDNN_INSTALL_PATH="/usr/local/cuda-8.0"
build --action_env TF_CUDNN_VERSION="5.0.5"
build --action_env TF_CUDA_COMPUTE_CAPABILITIES="3.7,3.7,3.7,3.7"
build --action_env TF_CUDA_CLANG="0"
build --action_env GCC_HOST_COMPILER_PATH="/opt/rh/devtoolset-3/root/usr/bin/gcc"
build --config=cuda
test --config=cuda
build:opt --cxxopt=-march=native --copt=-march=native
build:mkl --define using_mkl=true
build:mkl -c opt
build:mkl --copt="-DEIGEN_USE_VML"
build:monolithic --define framework_shared_object=false
build --define framework_shared_object=true

我可以做些什么来使用 CUDNN 5 安装 TF 1.4 吗?

【问题讨论】:

  • 我没有亲自尝试过,但它似乎可以用 cuDNN 5 构建。你能分享一下 ./configure 日志吗?
  • @SmitShilu 我添加了带有配置信息的 .tf_configure.bazelrc。

标签: tensorflow tensorflow-gpu cudnn


【解决方案1】:

Tensorflow r1.4 发行说明建议使用 cuDNN6。您可以找到所有发布信息here

我们所有预构建的二进制文件都是使用 CUDA 8 和 cuDNN 6 构建的。我们预计会发布带有 CUDA 9 和 cuDNN 7 的 TensorFlow 1.5。

在 r1.4 之前,cuDNN 5 可以正常工作。

【讨论】:

  • 是的,但他们也建议从源代码编译应该使用 CUDNN 3 及更高版本。
【解决方案2】:

问题是 Tensorflow 中的一个错误,他们确实在 V5 版本中使用了 CUDNN V6 函数。现在通过将PR #12355 应用于分支 1.4 来解决此问题(PR 仅应用于 master)。

【讨论】:

  • 现在可以编译成功了吗?
  • @MuhammadHannan 是的,一旦我将 git 应用到源代码,构建顺利。
  • 我可以完全支持这个答案,我在我们的 RHEL 7.4 集群上安装带有 CUDA 8.0、CuDNN 5.1 的 Tensorflow 1.4 时遇到了同样的问题。有同样的问题,这是解决它。
【解决方案3】:

Tensorflow 1.4 中的一些模块不能很好地与 cuda 库配合使用,我建议您应该使用 1.2.1 或 1.3 的较旧版本的 Tensorflow。它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2019-02-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多