HOWTO · TensorFlow
Comprobar si TensorFlow está usando GPU
Comprueba si TensorFlow detecta una GPU, interpreta la lista de dispositivos y descubre qué revisar cuando no aparece ninguna.
En esta página
Para comprobar si TensorFlow detecta una GPU, consulta sus dispositivos físicos desde el mismo proceso de Python, intérprete, entorno y configuración de inicio que usa tu aplicación. Una terminal o un cuaderno independiente podría usar otra instalación de TensorFlow, por lo que su resultado quizá no describa lo que ocurre en tu aplicación.
Comprobar si TensorFlow está usando una GPU
Ejecuta este ejemplo en el entorno de Python de la aplicación:
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
import importlib.util
if importlib.util.find_spec("tensorflow") is None:
print("TensorFlow is not installed in this Python environment.")
else:
import tensorflow as tf
devices = tf.config.list_physical_devices("GPU")
print("TensorFlow GPU devices:", devices)
TensorFlow is not installed in this Python environment.
Cuando TensorFlow está instalado, una lista con elementos significa que este proceso detectó uno o más dispositivos GPU; una lista vacía significa que no detectó ninguno. La lista no indica por qué falta un dispositivo, y su visibilidad por sí sola no demuestra que un modelo o una operación concretos se hayan ejecutado en la GPU. El mensaje que aparece arriba indica que el entorno activo de Python no tiene instalado el paquete TensorFlow; instala o selecciona el entorno que usa tu aplicación y vuelve a ejecutar la comprobación. El texto de ese mensaje permanece en inglés en el ejemplo.
Ejecuta la comprobación desde el mismo punto de entrada que usa tu aplicación. En un cuaderno, confirma qué kernel está seleccionado; en un servicio o contenedor, ejecútala con el entorno y la configuración de ese proceso. Así podrás distinguir un problema al detectar dispositivos de las diferencias entre entornos de Python.
Si TensorFlow muestra una GPU y necesitas comprobar dónde se ejecuta una operación concreta, ejecuta una operación representativa en el mismo entorno de la aplicación e inspecciona tanto los mensajes de ubicación como result.device. Este ejemplo solicita /GPU:0 para una multiplicación de matrices; adapta la operación y sus entradas a tu carga de trabajo.
import importlib.util
if importlib.util.find_spec("tensorflow") is None:
print("TensorFlow is not installed in this Python environment.")
else:
import tensorflow as tf
tf.debugging.set_log_device_placement(True)
with tf.device("/GPU:0"):
result = tf.matmul(tf.ones((2, 2)), tf.ones((2, 2)))
print("Result device:", result.device)
El entorno de ejecución proporcionado no tiene TensorFlow instalado, por lo que no puede mostrar la salida de ubicación de este ejemplo, que depende de TensorFlow. En una máquina configurada, los mensajes de ubicación y result.device indican qué ocurrió con esta operación; los nombres exactos de los dispositivos varían según la compilación y el hardware. Solicitar un dispositivo por sí solo no demuestra que la operación, ni todas las operaciones de un modelo, se hayan ejecutado en la GPU.
La compatibilidad con GPU depende de la distribución de TensorFlow, el sistema operativo, el hardware, el controlador y las dependencias instaladas. No hay un único comando de configuración válido para todas las máquinas. Consulta la guía oficial de instalación de TensorFlow para conocer la ruta de instalación compatible con tu plataforma y distribución. El nombre de un backend, como DirectML, no demuestra por sí solo que este proceso haya detectado una GPU; antes de cambiar versiones o controladores, consulta la documentación actual del backend y el paquete que elegiste. Esta guía no afirma compatibilidad para ninguna combinación concreta de backend y hardware.
Si la lista de dispositivos está vacía, comprueba estos puntos en orden:
- Confirma que el intérprete activo, el entorno virtual o el kernel del cuaderno sea el que usa la aplicación.
- Confirma qué distribución de TensorFlow está instalada allí y sigue sus instrucciones oficiales para habilitar la compatibilidad con GPU en tu plataforma. Una distribución sin compatibilidad con GPU no expondrá ningún dispositivo GPU.
- Comprueba que el sistema operativo y, si corresponde, el contenedor puedan ver la GPU. El contenedor también necesita acceso a la GPU del host y compatibilidad con el controlador.
- Comprueba el controlador del fabricante y las dependencias que requiere la distribución de TensorFlow o el backend seleccionado. Después de cambiar el entorno, reinicia el proceso de Python y vuelve a consultar los dispositivos.
Si TensorFlow detecta una GPU, pero tu operación usa la CPU, activa el registro de ubicación alrededor de esa operación e inspecciona su dispositivo. Esto permite distinguir la visibilidad del dispositivo de la ubicación de la operación y señala qué investigar a continuación.