2017-11-08 7 views
1

CentOS 7でCUDA 8.0およびCUDNN 5.0.5のソースからTensorflow 1.4をインストールしようとしています.CUDNN 3以上で動作することがドキュメントに示されています。私はGaz 4.9でBazel 0.7.0を使って、Python 3.4.5で仮想envで作業しています。設定中、私はCUDNNのバージョンを5.0.5に設定し、ライブラリが見つかりました。CUDNN 5.0でTensorflow 1.4を構築するには?

残念ながら、それは動作しませんし、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) 

は、configure(.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をインストールするにはできることはありますか?

+1

私は個人的にはこれを試していませんが、cuDNN 5でビルドすることは可能です。./configureログを共有できますか? –

+0

@SmitShilu .tf_configure.bazelrcにconfigureの情報を追加しました。 –

答えて

1

問題はVensビルドで実際にCUDNN V6関数を使用していたTensorflowのバグでした。これは、ブランチ1.4にPR #12355を適用することで修正されました(PRはマスターにのみ適用されます)。

+0

これで正常にビルドできますか? –

+1

@MuhammadHannanはい、ソースコードにgitを適用すると、ビルドは順調でした。 –

+0

私はこの回答を完全にサポートすることができます。私はRHEL 7.4クラスタ上にCUDA 8.0、CuDNN 5.1とTensorflow 1.4をインストールするのと同じ問題がありました。同じ問題がありましたが、これが修正されました。 – Fex

1

Tensorflow r1.4リリースノートはcuDNN6を使用しています。すべてのリリース情報hereが見つかります。

All our prebuilt binaries have been built with CUDA 8 and cuDNN 6. We anticipate releasing TensorFlow 1.5 with CUDA 9 and cuDNN 7.

r1.4より前のcuDNN 5は正常です。

+0

はい、しかし、ソースからのコンパイルはCUDNN 3以上で動作するはずです。 –

0

Tensorflow 1.4のモジュールの一部がcudaライブラリでうまく動作しなかったため、1.2.1または1.3の古いTensorflowバージョンを使用することをお勧めします。わたしにはできる。

関連する問題