tensorflow-gpu无法调用GPU; No se pueden abrir algunas bibliotecas de GPU. No se pudo cargar la biblioteca dinámica 'libcusolver

En Linux Ubuntu:

1. tensorflow-gpu no puede llamar a GPU

examinar

Por favor verifique con la siguiente declaración:

import tensorflow as tf
tf.test.is_gpu_available()
tf.config.list_physical_devices('GPU')

Informar un error y devolver False no tiene éxito:
Insertar descripción de la imagen aquí

Esto es exitoso y devuelve Verdadero:
Insertar descripción de la imagen aquí

2. Verificación de versión

1. Verifique la correspondencia entre la versión tensorflow-gpu y la versión CUDA

Verifique la correspondencia entre la versión tensorflow-gpu y la versión CUDA en el sitio web oficial para ver si son consistentes:
https://www.tensorflow.org/install/source#gpu

La relación correspondiente entre las diferentes versiones de tensorflow-gpu y CUDA se muestra en la siguiente tabla (la imagen es un poco antigua, las versiones de Python son 2.7 y 3.3-3.8):
Insertar descripción de la imagen aquí
Para la versión 1.x de tensorflow-gpu con una versión Para números mayores a 1.13, como 1.14 y 1.15, se recomienda instalar CUDA10.0 en lugar de CUDA10.1. Después de la instalación, se le indicará que faltan muchos archivos de la biblioteca, lo que inutilizará la versión GPU de tensorflow, ya que se muestra en la siguiente figura:
Insertar descripción de la imagen aquí

Si es tensorflow 2.0 o superior, instálelo de acuerdo con la siguiente lista (actualizada en mayo de 2023, ahora la compatibilidad entre las versiones TF2.X y CUDA es cada vez mejor. Diferentes versiones de TF2.X pueden coincidir con múltiples versiones de CUDA, como se muestra en la siguiente tabla La indicación es verificada por mí y no es la única solución coincidente)
Insertar descripción de la imagen aquí

2.Linux comprueba las versiones de cuda y cudnn

Consulta la versión de cuda:

nvcc -V

Insertar descripción de la imagen aquí
Ver versión cudnn

cat /usr/local/cuda-11.6/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

Insertar descripción de la imagen aquí
Si el archivo que no se puede encontrar se muestra aquí, significa que cudnn no está instalado y debe instalarse nuevamente.

3. Cambiar versión

Después de confirmar que se trata de un problema correspondiente a la versión, desinstale la versión actual y vuelva a instalarla:

pip uninstall tensorflow tensorflow-gpu
pip install tensorflow-gpu==x.x.x

三、解决报错:No se pudo cargar la biblioteca dinámica 'libcudnn.so.8'; dlerror: libcudnn.so.8: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio

Después de confirmar que no hay ningún problema con la versión, todavía se informa el error:

W tensorflow/stream_executor/platform/default/dso_loader.cc:64] No se pudo cargar la biblioteca dinámica 'libcudnn.so.8'; dlerror: libcudnn.so.8: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio
2023-05-11 15:10:35.942107: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1850] No se pueden abrir algunas bibliotecas de GPU . Asegúrese de que las bibliotecas faltantes mencionadas anteriormente estén instaladas correctamente si desea utilizar GPU. Siga la guía en https://www.tensorflow.org/install/gpu para saber cómo descargar y configurar las bibliotecas necesarias para su plataforma.
Saltando el registro de dispositivos GPU...

Insertar descripción de la imagen aquí
Significa que solo está instalado CUDA, pero libcudnn o incluso CUDNN correspondiente a CUDA no está instalado.

1. Instale CUDNN (si no está instalado)

Descargue la versión cuDNN correspondiente a la versión CUDA:
https://developer.nvidia.com/rdp/cudnn-archive#a-collapse805-111
Insertar descripción de la imagen aquí

Consulte la documentación oficial para la instalación:

https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#installlinux-tar
Insertar descripción de la imagen aquí
verificación:

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

Aparece la siguiente información, lo que indica que la instalación se realizó correctamente: dado que la versión de cuDNN instalada es 8.5.0, MAJOR, MINOR y PATCHLEVEL son 8, 5 y 0 en orden.
Insertar descripción de la imagen aquí

2. Instale libcudnn correspondiente a CUDA

Vaya al sitio web oficial para encontrar la
URL de la versión de libcudnn correspondiente: https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/
La versión correspondiente que
Insertar descripción de la imagen aquídescargué se muestra en la figura:

wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/libcudnn8_8.4.0.27-1+cuda11.6_amd64.deb

También se debe instalar el dev correspondiente:

wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/libcudnn8-dev_8.4.0.27-1+cuda11.6_amd64.deb

Finalmente instálalo:

sudo dpkg -i libcudnn8_8.4.0.27-1+cuda11.6_amd64.deb
sudo dpkg -i libcudnn8-dev_8.4.0.27-1+cuda11.6_amd64.deb

Después de realizar la prueba nuevamente, mostrará Verdadero. Ahora puede llamar a la GPU ejecutando el programa.
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_39589455/article/details/130624556
Recomendado
Clasificación