'Tensorflow: Could not load dynamic library 'libcusolver.so.11'; dlerror: libcusolver.so.11: cannot open shared object file: No such file
I've been trying to run tensorflow in my gpu for some long days but I've been not able to accomplish it.
I know that there are several questions with similar questions but I've tried everything I found and it didn't work, so that is why I'm writting this question:
How to install libcusolver.so.11
https://stackoverflow.com/a/67642774/15098668
I've installed the drivers 460.106.00 and cuda 11.2 for the Nvidia GeForce RTX 3090:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.106.00 Driver Version: 460.106.00 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce RTX 3090 On | 00000000:08:00.0 On | N/A |
| 33% 26C P8 22W / 350W | 282MiB / 24260MiB | 2% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1264 G /usr/lib/xorg/Xorg 59MiB |
| 0 N/A N/A 3349 G /usr/lib/xorg/Xorg 124MiB |
| 0 N/A N/A 3508 G /usr/bin/gnome-shell 77MiB |
| 0 N/A N/A 6384 G /usr/lib/firefox/firefox 4MiB |
+-----------------------------------------------------------------------------+
The cudnn:
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 1
#define CUDNN_PATCHLEVEL 1
And the GCC compiler:
gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
I've also added the LD_LIRARY_PATH to ./bashrc
# Nvidia cuda toolkit
export PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
I've tried several tensorflow and tensorflow-gpu versions, from 2.4 to 2.7, but in everyone fails with:
2022-01-24 21:28:43.206834: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
or
2022-01-24 21:28:44.087779: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2022-01-24 21:28:44.087827: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcublas.so.11'; dlerror: libcublas.so.11: cannot open shared object file: No such file or directory
2022-01-24 21:28:44.087858: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcublasLt.so.11'; dlerror: libcublasLt.so.11: cannot open shared object file: No such file or directory
2022-01-24 21:28:44.087891: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcufft.so.10'; dlerror: libcufft.so.10: cannot open shared object file: No such file or directory
2022-01-24 21:28:44.087921: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcurand.so.10'; dlerror: libcurand.so.10: cannot open shared object file: No such file or directory
2022-01-24 21:28:44.087947: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusolver.so.11'; dlerror: libcusolver.so.11: cannot open shared object file: No such file or directory
2022-01-24 21:28:44.087975: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcusparse.so.11'; dlerror: libcusparse.so.11: cannot open shared object file: No such file or directory
Thanks in advance, I dont know what more to try...
Solution 1:[1]
After trying a lot of things, I created a new conda environment and installed tensorflow-gpu, as I didn't care about the TF version:
conda install tensorflow-gpu -c anaconda
It installed all the following packages:
package | build
---------------------------|-----------------
_tflow_select-2.1.0 | gpu 2 KB anaconda
absl-py-0.10.0 | py38_0 170 KB anaconda
aiohttp-3.6.3 | py38h7b6447c_0 622 KB anaconda
astunparse-1.6.3 | py_0 17 KB anaconda
async-timeout-3.0.1 | py38_0 12 KB anaconda
attrs-20.2.0 | py_0 41 KB anaconda
blas-1.0 | mkl 6 KB anaconda
blinker-1.4 | py38_0 21 KB anaconda
brotlipy-0.7.0 |py38h7b6447c_1000 349 KB anaconda
c-ares-1.16.1 | h7b6447c_0 112 KB anaconda
ca-certificates-2020.10.14 | 0 128 KB anaconda
cachetools-4.1.1 | py_0 12 KB anaconda
certifi-2020.6.20 | py38_0 160 KB anaconda
cffi-1.14.0 | py38h2e261b9_0 228 KB anaconda
chardet-3.0.4 | py38_1003 170 KB anaconda
click-7.1.2 | py_0 67 KB anaconda
cryptography-3.1.1 | py38h1ba5d50_0 618 KB anaconda
cudatoolkit-10.1.243 | h6bb024c_0 513.2 MB anaconda
cudnn-7.6.5 | cuda10.1_0 250.6 MB anaconda
cupti-10.1.168 | 0 1.7 MB anaconda
gast-0.3.3 | py_0 14 KB anaconda
google-auth-1.22.1 | py_0 62 KB anaconda
google-auth-oauthlib-0.4.1 | py_2 21 KB anaconda
google-pasta-0.2.0 | py_0 44 KB anaconda
grpcio-1.31.0 | py38hf8bcb03_0 2.3 MB anaconda
h5py-2.10.0 | py38hd6299e0_1 1.1 MB anaconda
hdf5-1.10.6 | hb1b8bf9_0 4.8 MB anaconda
idna-2.10 | py_0 56 KB anaconda
importlib-metadata-2.0.0 | py_1 35 KB anaconda
intel-openmp-2020.2 | 254 947 KB anaconda
keras-preprocessing-1.1.0 | py_1 36 KB anaconda
libgfortran-ng-7.3.0 | hdf63c60_0 1.3 MB anaconda
libprotobuf-3.13.0.1 | hd408876_0 2.3 MB anaconda
markdown-3.3.2 | py38_0 123 KB anaconda
mkl-2019.4 | 243 204.1 MB anaconda
mkl-service-2.3.0 | py38he904b0f_0 68 KB anaconda
mkl_fft-1.2.0 | py38h23d657b_0 173 KB anaconda
mkl_random-1.1.0 | py38h962f231_0 398 KB anaconda
multidict-4.7.6 | py38h7b6447c_1 72 KB anaconda
numpy-1.19.1 | py38hbc911f0_0 20 KB anaconda
numpy-base-1.19.1 | py38hfa32c7d_0 5.3 MB anaconda
oauthlib-3.1.0 | py_0 88 KB anaconda
openssl-1.1.1h | h7b6447c_0 3.8 MB anaconda
opt_einsum-3.1.0 | py_0 54 KB anaconda
protobuf-3.13.0.1 | py38he6710b0_1 702 KB anaconda
pyasn1-0.4.8 | py_0 58 KB anaconda
pyasn1-modules-0.2.8 | py_0 67 KB anaconda
pycparser-2.20 | py_2 94 KB anaconda
pyjwt-1.7.1 | py38_0 32 KB anaconda
pyopenssl-19.1.0 | py_1 47 KB anaconda
pysocks-1.7.1 | py38_0 27 KB anaconda
requests-2.24.0 | py_0 54 KB anaconda
requests-oauthlib-1.3.0 | py_0 22 KB anaconda
rsa-4.6 | py_0 26 KB anaconda
scipy-1.5.2 | py38h0b6359f_0 18.7 MB anaconda
six-1.15.0 | py_0 13 KB anaconda
tensorboard-2.2.1 | pyh532a8cf_0 2.5 MB anaconda
tensorboard-plugin-wit-1.6.0| py_0 663 KB anaconda
tensorflow-2.2.0 |gpu_py38hb782248_0 4 KB anaconda
tensorflow-base-2.2.0 |gpu_py38h83e3d50_0 421.3 MB anaconda
tensorflow-estimator-2.2.0 | pyh208ff02_0 276 KB anaconda
tensorflow-gpu-2.2.0 | h0d30ee6_0 2 KB anaconda
termcolor-1.1.0 | py38_1 8 KB anaconda
urllib3-1.25.11 | py_0 93 KB anaconda
werkzeug-1.0.1 | py_0 243 KB anaconda
wrapt-1.12.1 | py38h7b6447c_1 50 KB anaconda
yarl-1.6.2 | py38h7b6447c_0 142 KB anaconda
zipp-3.3.1 | py_0 11 KB anaconda
------------------------------------------------------------
Total: 1.41 GB
Including cudatoolkit and cudnn...
And after that, I don't know why, TF detected the nvidia card:
2022-01-25 09:37:52.865587: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2022-01-25 09:37:52.902796: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-01-25 09:37:52.903487: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1561] Found device 0 with properties:
pciBusID: 0000:08:00.0 name: GeForce RTX 3090 computeCapability: 8.6
coreClock: 1.695GHz coreCount: 82 deviceMemorySize: 23.69GiB deviceMemoryBandwidth: 871.81GiB/s
2022-01-25 09:37:52.903637: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2022-01-25 09:37:52.904633: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2022-01-25 09:37:52.905878: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2022-01-25 09:37:52.906023: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2022-01-25 09:37:52.907115: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2022-01-25 09:37:52.907719: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2022-01-25 09:37:52.910042: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2022-01-25 09:37:52.910137: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-01-25 09:37:52.911078: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-01-25 09:37:52.911707: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1703] Adding visible gpu devices: 0
Num GPUs Available: 1
Prcess finished with exit code 0
Solution 2:[2]
Make sure to follow the tensorflow software compatibility: https://www.tensorflow.org/install/source#gpu
More details here: https://stackoverflow.com/a/50622526
I've encountered this issue while using
- python==3.10
- tensorflow==2.8.0
- cuda==11.0
- cudnn==8.0
Solved it by downgrading python and tensorflow to 3.6 and 2.4.0, respectively. Thus, satisfying the tensorflow compatibility.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | David Serrano |
Solution 2 | niconiconiconi |