Acabo de instalar la última versión de Tensorflow a través de pip install tensorflow
y cada vez que ejecuto un programa, recibo el mensaje de registro:
W tensorflow/stream_executor/platform/default/dso_loader.cc:55] No se pudo cargar la biblioteca dinámica 'cudart64_101.dll'; error: cudart64_101.dll no encontrado
¿Es esto malo? ¿Cómo soluciono el error?
Con la nueva versión de Tensorflow 2.1 , el paquete pip de tensorflow
predeterminado contiene versiones de TF para CPU y GPU. En versiones anteriores de TF, no encontrar las bibliotecas de CUDA emitía un error y generaba una excepción, mientras que ahora la biblioteca busca dinámicamente la versión correcta de CUDA y, si no la encuentra, emite la advertencia (La W al principio se destaca para advertencias, los errores tienen una E (o F para errores fatales) y regresan al modo solo CPU. De hecho, esto también se escribe en el registro como un mensaje de información justo después de la advertencia (tenga en cuenta que si tiene una nivel de registro mínimo que el predeterminado, es posible que no vea mensajes de información). El registro completo es (énfasis mío):
2020-01-20 12:27:44.554767: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] No se pudo cargar la biblioteca dinámica 'cudart64_101.dll'; error: cudart64_101.dll no encontrado
2020-01-20 12:27:44.554964: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore el error anterior de cudart si no tiene una GPU configurada en su máquina.
Si no tiene una GPU habilitada para CUDA en su máquina, o si no le importa no tener aceleración de GPU, no se preocupe. Si, por otro lado, instaló tensorflow y quería aceleración de GPU, verifique su instalación de CUDA (TF 2.1 requiere CUDA 10.1 , no 10.2 o 10.0).
Si solo desea deshacerse de la advertencia, puede adaptar el nivel de registro de TF para suprimir las advertencias, pero eso podría ser excesivo, ya que silenciará todas las advertencias.
Su configuración de CUDA está rota, asegúrese de tener instalada la versión correcta.
Para instalar los requisitos previos para la compatibilidad con GPU en TensorFlow 2.1:
pip install tensorflow
.Resolví esto de otra manera. En primer lugar, instalé el kit de herramientas cuda 10.1 desde este enlace
Donde seleccioné el tipo de instalador (exe (local)) e instalé 10.1 en modo personalizado significa (sin integración de Visual Studio, NVIDIA PhysX porque anteriormente instalé CUDA 10.2, por lo que las dependencias requeridas se instalaron automáticamente)
Después de la instalación, desde la siguiente ruta (C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin), en mi caso, copié el archivo 'cudart64_101.dll' y lo pegué (C:\Program Files\ NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin).
Luego, la importación de Tensorflow funcionó sin problemas.
NB Perdón por mal inglés
Esta solución funcionó para mí:
Preinstalé el entorno con anaconda (aquí está el código)
conda create -n YOURENVNAME python=3.6 // 3.6> incompatible with keras conda activate YOURENVNAME conda install tensorflow-gpu conda install -c anaconda keras conda install -c anaconda scikit-learn conda install matplotlib
pero después de que todavía tenía estas advertencias
2020-02-23 13:31:44.910213: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found 2020-02-23 13:31:44.925815: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll 2020-02-23 13:31:44.941384: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll 2020-02-23 13:31:44.947427: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll 2020-02-23 13:31:44.965893: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll 2020-02-23 13:31:44.982990: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll 2020-02-23 13:31:44.990036: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudnn64_7.dll'; dlerror: cudnn64_7.dll not found
Cómo resolví la primera advertencia: simplemente descargué un archivo zip que contenía todos los archivos cudnn (dll, etc.) aquí: https://developer.nvidia.com/cudnn
Cómo resolví la segunda advertencia: busqué el último archivo faltante (cudart64_101.dll) en mi entorno virtual creado por conda y simplemente lo copié/pegué en la misma carpeta lib que para el .dll cudnn
Una forma más sencilla sería crear un enlace llamado cudart64_101.dll
para apuntar a cudart64_102.dll
. Esto no es muy ortodoxo, pero dado que TensorFlow está buscando símbolos exportados cudart64_101.dll
y la gente de nvidia no son aficionados, lo más probable es que no eliminen los símbolos del 101 al 102. Funciona, según esta suposición (el kilometraje puede variar).
En un entorno conda
, esto es lo que resolvió mi problema (me faltaba cudart64-100.dll
:
Lo descargué de dll-files.com/CUDART64_100.DLL
Póngalo en mi entorno conda en C:\Users\<user>\Anaconda3\envs\<env name>\Library\bin
¡Eso es todo lo que tomó! Puedes verificar dos veces si está funcionando:
import tensorflow as tf tf.config.experimental.list_physical_devices('GPU')
(junto con CUDA Toolkit 11.0 RC)
Para resolver el mismo problema que OP, solo tenía que encontrar cudart64_101.dll en mi disco (en mi caso, C:\Program Files\NVIDIA Corporation\NvStreamSrv ) y agregarlo como entorno variable (es decir, agregar valor C:\Program Files \NVIDIA\Corporation\NvStreamSrv)cudart64_101.dll a la ruta de la variable de entorno del usuario).
Pude solucionar el problema actualizando los controladores de dispositivos NVIDIA a la versión más reciente (v446.14). Enlace de descarga de controladores NVIDIA aquí .
TensorFlow 2.3.0 funciona bien con CUDA 11. Pero debe instalar tf-nightly-gpu (después de instalar tensorflow y CUDA 11): https://pypi.org/project/tf-nightly-gpu/
Tratar:
pip install tf-nightly-gpu
Luego obtendrá el mensaje en su consola:
I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_110.dll
Esta respuesta puede ser útil si ve el error anterior, pero en realidad tiene instalado CUDA 10:
pip install tensorflow-gpu==2.0.0
producción:
I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll
que fue la solución para mí.
En mi caso, la instalación de tensorflow buscaba cudart64_101.dll
La parte 101 de cudart64_101 es la versión Cuda - aquí 101 = 10.1
Había descargado 11.x, por lo que la versión de cudart64 en mi sistema era cudart64_110.dll
¡¡Este es el archivo equivocado!! cudart64_101.dll ≠ cudart64_110.dll
Descarga Cuda 10.1 desde https://developer.nvidia.com/
Instalar (el mío falla con NSight Visual Studio Integration, así que lo apagué)
Cuando la instalación haya terminado, debería tener una carpeta Cuda 10.1, y en el contenedor, el dll del sistema se quejaba de que faltaba.
Verifique que la ruta a la carpeta bin 10.1 esté registrada como una variable ambiental del sistema, por lo que se verificará al cargar la biblioteca
Es posible que necesite reiniciar si el sistema no selecciona la ruta de inmediato
Instalé cudatoolkit 11 y copié dll C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin
a C:\Windows\System32
. Se arregló para PyCharm pero no para Anaconda jupyter:
[nombre: "/dispositivo:CPU:0" tipo_dispositivo: "CPU" límite_memoria: 268435456 localidad { } encarnación: 6812190123916921346 , nombre: "/dispositivo:GPU:0" tipo_dispositivo: "GPU" límite_memoria: 13429637120 localidad { bus_id: 1
enlaces { } } encarnación: 18025633343883307728 dispositivo_físico_desc: "dispositivo: 0, nombre: Quadro P5000, id de bus pci: 0000:02:00.0, capacidad de cómputo: 6.1" ]
descargar CUDA Toolkit 11.0 RC
Para resolver el problema, solo busco cudart64_101.dll en mi disco (C:\Program Files\NVIDIA Corporation\NvStreamSrv) y lo agrego como entorno variable que agrega valor (C:\Program Files\NVIDIA\Corporation\NvStreamSrv)cudart64_101 .dll a la ruta de la variable de entorno del usuario).
Me encontré con este problema al mezclar pip y conda para instalar tensorflow 2.3. (Usé pip para instalar tensorflow 2.3 b/c en el momento en que se rompió la instalación de tensorflow 2.3 de conda).
Terminé con las versiones incorrectas de cudatoolkit y cudnn instaladas.
Para resolver el problema, simplemente hice conda install
con versiones específicas de cudatoolkit y cuda especificado.
Mire https://www.tensorflow.org/install/source_windows?force_isolation=true#tested_build_configurations para obtener información sobre las versiones de tensorflow, cudatoolkit y cuda que deberían funcionar juntas.