0

I have encountered a problem when I tried to install tensorflow-gpu in my anaconda environment.

When I tested the availability of GPU after import of tensorflow, it seems that a .dll library (cusolver64_10.dll, provided normally with CUDA package) is missing and the test failed.

From Google, I saw that a solution is to copy the file from previous version of CUDA. Is it the right thing to do?

CUDA and CUDA DNN were installed following Nvidia documentation and tests were OK (regarding samples from CUDA folders).

My system info:

OS : Windows 10
Visual Studio Community 2019
Cuda toolkit : Cuda compilation tools, release 11.1, V11.1.105 (from nvcc --version)
GPU : Geforce RTX 3070, driver version : 460.79, CUDA 11.2 (from nvidia-smi)
Cuda DNN : version 8.05.39
CPU : Ryzen 9 3900 XT
Framework: Anaconda (conda 4.9.2), virtual environment created with python 3.8, installation of tensorflow from pip tf-nightly-gpu (tf-nightly-gpu==2.5.0.dev20201213).

I tried with pip install tensorflow-gpu but doesnt't work.

What I obtained :

(deeplearning) C:\Users\Utilisateur>python
Python 3.8.0 (default, Nov  6 2019, 16:00:02) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
2020-12-14 10:13:14.134389: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudart64_110.dll
>>> print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
2020-12-14 10:13:20.542276: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library nvcuda.dll
2020-12-14 10:13:20.573713: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1727] Found device 0 with properties:
pciBusID: 0000:2b:00.0 name: GeForce RTX 3070 computeCapability: 8.6
coreClock: 1.815GHz coreCount: 46 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 417.29GiB/s
2020-12-14 10:13:20.573798: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudart64_110.dll
2020-12-14 10:13:20.580384: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cublas64_11.dll
2020-12-14 10:13:20.580485: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cublasLt64_11.dll
2020-12-14 10:13:20.584557: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cufft64_10.dll
2020-12-14 10:13:20.585655: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library curand64_10.dll
2020-12-14 10:13:20.586334: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'cusolver64_10.dll'; dlerror: cusolver64_10.dll not found
2020-12-14 10:13:20.589176: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cusparse64_11.dll
2020-12-14 10:13:20.589742: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library cudnn64_8.dll
2020-12-14 10:13:20.589814: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1764] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
Num GPUs Available:  0
namgold
  • 1,009
  • 1
  • 11
  • 32
EricP
  • 1
  • 1
  • 1
  • Try: `conda create -n deeplearning tensorflow-gpu` then `conda activate deeplearning` and then try. It will automatically download correct versions of cuda, cudnn etc for you. – Ahmad Anis Dec 14 '20 at 09:32
  • Copying doesn't necessarily always work. There might be compatibility issues, or in worst case you breaking it up. – Souyama Dec 14 '20 at 09:33
  • Use lower version CUDA. 11.0/10.2 – Souyama Dec 14 '20 at 09:37
  • Thank you for your answers. @Souyama Debnath : Do you think that working with an older CUDA version is OK regarding performance as RTX 3070 has Ampere architecture ? Indeed only CUDA 11.1 support RTX 30xx cards. Thanks – EricP Dec 14 '20 at 09:46
  • Revert to 11.0 then at least until suport for 11.1 officially comes out. Not sure might have a bit of a performance dip but you are better off with that than no support (or worse broken support). – Souyama Dec 14 '20 at 09:56
  • @ Souyama Debnath. It's true. I will try asap and let you know. Thank you – EricP Dec 14 '20 at 10:11
  • 1
    I installed Cuda11.0 beside Cuda11.1 and cuDNN 8.0.4. Tensorflow was installed as follow : pip tf-nightly-gpu numpy==1.19.3. GPU is now available. Thank you again for your help! – EricP Dec 15 '20 at 10:12
  • When I do "conda create -n deeplearning tensorflow-gpu then conda activate deeplearning", the tensorflow program pauses for a very long time (> 2 min). Think something is broken there. @EricP "pip install tf-nightly-gpu numpy==1.19.3" worked for me!! Thank you! – Josiah Coad Dec 16 '20 at 08:17

2 Answers2

1

rename cusolver64_10.dll to cusolver64_11.dll

Albert Myšák
  • 194
  • 1
  • 1
  • 13
  • For anybody looking at this in future, I had to also limit the gpu memory usage as shown here afterwards to get it to work: https://stackoverflow.com/questions/45040145/unpredictable-cudnn-status-not-initialized-on-windows – MacMixer13 Feb 21 '21 at 17:43
0

From comments

Installed Cuda11.0 and cuDNN 8.0.4. Tensorflow was installed as follow : pip install tf-nightly-gpu numpy==1.19.3. GPU is now available (paraphrased from EricP)