He instalado tensorflow en mi ubuntu 16.04 usando la segunda respuesta aquí con la instalación de cuda apt incorporada de ubuntu.
Ahora mi pregunta es ¿cómo puedo probar si tensorflow realmente está usando gpu? Tengo una gtx gtx 960m. Cuando yo import tensorflow
este es el resultado
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
¿Es esta salida suficiente para verificar si tensorflow está usando gpu?
python
tensorflow
ubuntu
gpu
Tamim Addari
fuente
fuente
log_device_placement
enfoque en la respuesta. La forma más confiable es mirar la línea de tiempo como se especifica en este comentario: github.com/tensorflow/tensorflow/issues/…Respuestas:
No, no creo que "abrir la biblioteca CUDA" sea suficiente, porque diferentes nodos del gráfico pueden estar en diferentes dispositivos.
Para saber qué dispositivo se utiliza, puede habilitar la ubicación del dispositivo de registro de esta manera:
Verifique su consola para este tipo de salida.
fuente
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Además de utilizar lo
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
que se describe en otras respuestas, así como en la documentación oficial de TensorFlow , puede intentar asignar un cálculo a la GPU y ver si tiene un error.aquí
Si tiene una GPU y puede usarla, verá el resultado. De lo contrario, verá un error con un largo stacktrace. Al final tendrás algo como esto:
Recientemente aparecieron algunas funciones útiles en TF:
También puede verificar los dispositivos disponibles en la sesión:
devices
te devolveré algo comofuente
Found device 0 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582 pciBusID: 0000:02:00.0 totalMemory: 10.92GiB freeMemory: 10.76GiB
El siguiente fragmento de código debería proporcionarle todos los dispositivos disponibles para tensorflow.
fuente
Creo que hay una manera más fácil de lograr esto.
Por lo general, se imprime como
Esto me parece más fácil que esos registros detallados.
fuente
Tensorflow 2.0
Las sesiones ya no se usan en 2.0. En cambio, uno puede usar
tf.test.is_gpu_available
:Si obtiene un error, debe verificar su instalación.
fuente
tf.config.list_physical_devices('GPU')
¿Esto confirmará que tensorflow usa GPU durante el entrenamiento también?
Código
Salida
fuente
log_device_placement
y cómo ver CPU frente a GPU en la salida?). ¡Eso mejorará la calidad de su respuesta!Además de otras respuestas, lo siguiente debería ayudarlo a asegurarse de que su versión de tensorflow incluya soporte para GPU.
fuente
Ok, primero inicie un
ipython shell
desde la terminal yimport
TensorFlow:Ahora, podemos ver el uso de memoria de la GPU en una consola usando el siguiente comando:
Como solo hemos
import
editado TensorFlow pero aún no hemos usado ninguna GPU, las estadísticas de uso serán:Observe cómo el uso de la memoria de la GPU es muy inferior (~ 700 MB); A veces, el uso de memoria de la GPU puede ser tan bajo como 0 MB.
Ahora, carguemos la GPU en nuestro código. Como se indica en
tf documentation
, hacer:Ahora el reloj estadísticas deberían mostrar una memoria de uso de GPU actualizada como se muestra a continuación:
Observe ahora cómo nuestro proceso Python desde el shell ipython está utilizando ~ 7 GB de la memoria de la GPU.
PD: puede seguir viendo estas estadísticas mientras se ejecuta el código para ver qué tan intenso es el uso de la GPU con el tiempo.
fuente
Esto debería proporcionar la lista de dispositivos disponibles para Tensorflow (en Py-3.6):
fuente
Prefiero usar nvidia-smi para monitorear el uso de GPU. Si aumenta significativamente cuando inicia su programa, es una buena señal de que su tensorflow está utilizando GPU.
fuente
Con las actualizaciones recientes de Tensorflow, puede verificarlo de la siguiente manera:
Esto regresará
True
si GPU está siendo utilizado porTensorflow
, y regresará de loFalse
contrario.Si desea que el dispositivo
device_name
se puede escribir:tf.test.gpu_device_name()
. Obtenga más detalles desde aquífuente
Ejecute lo siguiente en Jupyter,
Si ha configurado su entorno correctamente, obtendrá el siguiente resultado en el terminal donde ejecutó "jupyter notebook" ,
Puedes ver aquí que estoy usando TensorFlow con un Nvidia Quodro K620.
fuente
Encuentro que consultar el gpu desde la línea de comandos es más fácil:
si su aprendizaje es un proceso en segundo plano, el pid
jobs -p
debería coincidir con el pid denvidia-smi
fuente
Puede verificar si actualmente está utilizando la GPU ejecutando el siguiente código:
Si la salida es
''
, significa queCPU
solo está usando ;Si el resultado es algo así
/device:GPU:0
, significa queGPU
funciona.Y use el siguiente código para verificar cuál
GPU
está usando:fuente
' '
, entonces, ¿qué debemos hacer?Pon esto cerca de la parte superior de tu cuaderno jupyter. Comenta lo que no necesitas.
NOTA: Con el lanzamiento de TensorFlow 2.0, Keras ahora se incluye como parte de la API TF.
Originalmente respondido aquí .
fuente
Para Tensorflow 2.0
fuente aquí
otra opción es:
fuente
is_gpu_available
(de tensorflow.python.framework.test_util) está en desuso y se eliminará en una versión futura.ACTUALIZACIÓN PARA FLUJO TENSOR> = 2.1.
La forma recomendada para verificar si TensorFlow está usando GPU es la siguiente:
A partir de TensorFlow 2.1,
tf.test.gpu_device_name()
ha quedado en desuso a favor de lo anterior.fuente
Esta es la línea que estoy usando para enumerar los dispositivos disponibles
tf.session
directamente desde bash:Imprimirá los dispositivos disponibles y la versión de tensorflow, por ejemplo:
fuente
Encontré que el fragmento a continuación es muy útil para probar el gpu.
Prueba Tensorflow 2.0
Prueba de Tensorflow 1
fuente
Lo siguiente también devolverá el nombre de sus dispositivos GPU.
fuente
Con tensotflow 2.0> =
fuente
Según lo sugerido por @AmitaiIrron:
Esta sección indica que se encontró una GPU
Y aquí que se agregó como un dispositivo físico disponible
fuente
Tiene algunas opciones para probar si su instalación de TensorFlow está utilizando la aceleración de GPU.
Puede escribir los siguientes comandos en tres plataformas diferentes.
Spyder: escriba el siguiente comando en la consola.
import tensorflow as tf tf.test.is_gpu_available()
fuente
Tensorflow 2.1
Un cálculo simple que se puede verificar con nvidia-smi para el uso de memoria en la GPU.
fuente
Si está utilizando TensorFlow 2.0, puede usar esto para loop para mostrar los dispositivos:
fuente
si está utilizando tensorflow 2.x use:
fuente
Ejecute este comando en Jupyter o su IDE para verificar si Tensorflow está usando una GPU o no:
tf.config.list_physical_devices('GPU')
fuente