#tensorflow #nvidia
#tensorflow #nvidia
Вопрос:
Я на Ubuntu 18.04. И вывод следующих команд:
nvidia-smi
Fri Dec 4 11:35:09 2020
-----------------------------------------------------------------------------
| NVIDIA-SMI 418.87.01 Driver Version: 418.87.01 CUDA Version: 10.1 |
|------------------------------- ---------------------- ----------------------
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|=============================== ====================== ======================|
| 0 Tesla M40 On | 00000000:00:08.0 Off | Off |
| N/A 59C P0 146W / 250W | 11724MiB / 12215MiB | 100% Default |
------------------------------- ---------------------- ----------------------
-----------------------------------------------------------------------------
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
-----------------------------------------------------------------------------
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
dpkg -l | grep cuda
ii cuda-command-line-tools-10-0 10.0.130-1 amd64 CUDA command-line tools
ii cuda-compat-10-0 410.104-1 amd64 CUDA Compatibility Platform
ii cuda-cublas-10-0 10.0.130-1 amd64 CUBLAS native runtime libraries
ii cuda-cudart-10-0 10.0.130-1 amd64 CUDA Runtime native Libraries
ii cuda-cudart-dev-10-0 10.0.130-1 amd64 CUDA Runtime native dev links, headers
ii cuda-cufft-10-0 10.0.130-1 amd64 CUFFT native runtime libraries
ii cuda-cuobjdump-10-0 10.0.130-1 amd64 CUDA cuobjdump
ii cuda-cupti-10-0 10.0.130-1 amd64 CUDA profiling tools interface.
ii cuda-curand-10-0 10.0.130-1 amd64 CURAND native runtime libraries
ii cuda-cusolver-10-0 10.0.130-1 amd64 CUDA solver native runtime libraries
ii cuda-cusparse-10-0 10.0.130-1 amd64 CUSPARSE native runtime libraries
ii cuda-driver-dev-10-0 10.0.130-1 amd64 CUDA Driver native dev stub library
ii cuda-gdb-10-0 10.0.130-1 amd64 CUDA-GDB
ii cuda-gpu-library-advisor-10-0 10.0.130-1 amd64 CUDA GPU Library Advisor.
ii cuda-license-10-0 10.0.130-1 amd64 CUDA licenses
ii cuda-memcheck-10-0 10.0.130-1 amd64 CUDA-MEMCHECK
ii cuda-misc-headers-10-0 10.0.130-1 amd64 CUDA miscellaneous headers
ii cuda-nvcc-10-0 10.0.130-1 amd64 CUDA nvcc
ii cuda-nvdisasm-10-0 10.0.130-1 amd64 CUDA disassembler
ii cuda-nvprof-10-0 10.0.130-1 amd64 CUDA Profiler tools
ii cuda-nvtx-10-0 10.0.130-1 amd64 NVIDIA Tools Extension
ii cuda-repo-ubuntu1804 10.1.243-1 amd64 cuda repository configuration files
ii libcudnn7 7.4.1.5-1 cuda10.0 amd64 cuDNN runtime libraries
ii libnvinfer5 5.0.2-1 cuda10.0 amd64 TensorRT runtime libraries
ii nvinfer-runtime-trt-repo-ubuntu1804-5.0.2-ga-cuda10.0 1-1 amd64 nvinfer-runtime-trt repository configuration files
Итак, у меня установлен cuda10.0. Я также настроил путь:
export CUDA_HOME=/usr/local/cuda
export PATH=${CUDA_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:$LD_LIBRARY_PATH
Но тогда почему это выдает эту ошибку? Он ищет cuda10.1 вместо cuda10.0?
python3 -c 'import tensorflow as tf; print(tf.__version__)'
2020-12-04 11:37:43.929779: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:/usr/local/hadoop/lib/native:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/nvidia/lib:/usr/local/nvidia/lib64
2020-12-04 11:37:43.929830: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
2.3.1
Комментарии:
1. Вы должны использовать версию CUDA, для которой был создан tensorflow. Это требование не подлежит обсуждению. В данном случае это 10.1
2. @talonmies Означает ли сообщение об ошибке, что tensorflow построен на основе cuda 10.1? В этом случае, если я понизлю версию tensorflow, сообщение об ошибке исчезнет?
3. Как я уже сказал в своем комментарии, да, это означает, что ваш tensorflow был создан для и требует 10.1. Что касается понижения, я понятия не имею. Вам нужно использовать версию, созданную для CUDA 10.0, если это то, что вы установили. Возможно, это не понижение. Это вам решать.
4. Я также предлагаю обновить CUDA до 10.1 вместо понижения TF. Помимо текущего вопроса, это избавит вас от других ситуаций несовместимости.
5. ИЛИ, если вы каким-то образом не можете обновить CUDA, вы можете создать TF необходимой версии для своей версии CUDA. Но все же совет @PoeDator наиболее предпочтителен.
Ответ №1:
Согласно тестируемой конфигурации сборки Tensorflow от TF 2.1
до TF 2.3
, требуется CUDA 10.1
версия, поэтому вы получили вышеуказанную ошибку.
Если вы хотите использовать CUDA 10.0
, то совместимыми версиями являются TF_GPU 1.15
и TF 2.0
.
Как справедливо предположил Poe Dator, вы можете перейти на CUDA 10.1
вместо tensorflow downgrading
. Потому что в последних версиях устранены многие проблемы с производительностью.