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:
Esto es exitoso y devuelve Verdadero:
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):
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:
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)
2.Linux comprueba las versiones de cuda y cudnn
Consulta la versión de cuda:
nvcc -V
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
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...
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
Consulte la documentación oficial para la instalación:
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#installlinux-tar
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.
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
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.