Tensorflow компилируется с cuDNN 5.0, даже если указан 5.1.10
Я попытался скомпилировать Tensorflow самостоятельно, чтобы ускорить обучение (использование предварительно скомпилированного колеса работает, но медленно). Я использую./configure, чтобы настроить и явно указать, что должна использоваться версия cuDNN 5.1.10. Перед этим я скачал cuDNN 5.1.10 и скопировал свои файлы в каталог Cuda.
Вот как выглядит конфигурация (.tf_configure.bazelrc):
build --action_env PYTHON_BIN_PATH="/home/ubuntu/project/venv/bin/python"
build --action_env PYTHON_LIB_PATH="/home/ubuntu/project/venv/lib/python3.5/site-packages"
build --define PYTHON_BIN_PATH="/home/ubuntu/project/venv/bin/python"
build --define PYTHON_LIB_PATH="/home/ubuntu/project/venv/lib/python3.5/site-packages"
build --force_python=py3
build --host_force_python=py3
build --python3_path="/home/ubuntu/project/venv/bin/python"
test --force_python=py3
test --host_force_python=py3
test --define PYTHON_BIN_PATH="/home/ubuntu/project/venv/bin/python"
test --define PYTHON_LIB_PATH="/home/ubuntu/project/venv/lib/python3.5/site-packages"
run --define PYTHON_BIN_PATH="/home/ubuntu/project/venv/bin/python"
run --define PYTHON_LIB_PATH="/home/ubuntu/project/venv/lib/python3.5/site-packages"
build --define with_jemalloc=true
build:opt --cxxopt=-march=native --copt=-march=native
build --action_env TF_NEED_CUDA="1"
build --action_env TF_NEED_OPENCL="0"
build --action_env TF_CUDA_CLANG="0"
build --action_env CUDA_TOOLKIT_PATH="/usr/local/cuda"
build --action_env TF_CUDA_VERSION="8.0"
build --action_env GCC_HOST_COMPILER_PATH="/usr/bin/gcc"
build --action_env TF_CUDNN_VERSION="5.1.10"
build --action_env CUDNN_INSTALL_PATH="/usr/local/cuda-8.0"
build --action_env TF_CUDNN_VERSION="5.1.10"
build --action_env TF_CUDA_COMPUTE_CAPABILITIES="3.7"
build --config=cuda
test --config=cuda
Обратите внимание на часть TF_CUDNN_VERSION="5.1.10". Далее я выполняю следующие команды:
bazel build --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip3 install --upgrade /tmp/tensorflow_pkg/tensorflow-1.2.0-cp35-cp35m-linux_x86_64.whl
И наконец, я получаю следующее сообщение об ошибке
Loaded runtime CuDNN library: 5110 (compatibility version 5100) but source was compiled with 5005 (compatibility version 5000). If using a binary install, upgrade your CuDNN library to match. If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.
Что здесь происходит? Каким-то образом Tensorflow скомпилирован с использованием cuDNN 5.0, хотя я указал правильную версию?!
Система Ubuntu 16, экземпляр AWS p2.
1 ответ
Единственный способ исправить это - начать все заново (свежая версия Ubuntu с рынка AWS).
Я приму этот ответ, так как нет смысла возвращаться и пытаться решить проблему, но в случае, если кто-то еще задается вопросом об этом, я нашел эту статью весьма полезной: https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run