Comprobar si TensorFlow está usando GPU
En el dominio del aprendizaje automático, a menudo se requiere realizar cálculos más altos. En este sentido, la CPU predeterminada no puede brindar el nivel de respaldo que puede brindar una GPU.
Cuando un sistema no tiene GPU, existen plataformas como Google Colab, Kaggle, etc.
Generalmente, TensorFlow usa una CPU, pero la velocidad de cálculo es casi 20 veces más lenta que la GPU. Por lo tanto, necesitamos que nuestro trabajo ahorre tiempo y se desempeñe con determinación.
Independientemente del sistema informático que utilice, debe asegurarse de tener un sistema de GPU habilitado para CUDA. Específicamente, necesitará una GPU en su sistema para fusionar TensorFlow con él.
Hay muchas soluciones, y la más aceptable es el método docker container
que requiere instalaciones para CUDA Toolkit, cudNN, controladores de GPU, etc. Principalmente, Nvidia suministra GPU especializadas para aprendizaje automático; por lo tanto, la mayoría de los tutoriales están orientados a Nvidia.
Sin embargo, nos centraremos en una nueva incorporación en este campo que funciona sucesivamente para los proveedores de GPU más comunes, como AMD, Nvidia, Intel y Qualcomm. Es una API de aprendizaje automático de bajo nivel llamada DirectML.
La API proporciona operadores primitivos de aprendizaje automático acelerados por hardware. En las siguientes secciones, examinaremos cómo instalarlo en el entorno local de Anaconda y cómo vincula TensorFlow con GPU.
Use DirectML para permitir que TensorFlow use GPU
La tarea es simple y solo necesita unas pocas líneas de comandos para operar. Pero por mencionar específicamente, para el caso de DirectML, solo funcionan algunas versiones específicas de TensorFlow y python.
Se recomienda usar TensorFlow de la versión 1.15.5 y Python 3.6-3.7.
Inicialmente, puede abrir el indicador de Anaconda para escribir los comandos o abrir la aplicación de indicador CMD.exe desde el navegador de Anaconda. A continuación, crearemos un entorno para realizar nuestra tarea e instalaremos los paquetes necesarios.
Verifiquemos los siguientes comandos.
conda create -n tfdml python=3.6
conda activate tfdml
pip install tensorflow-directml
Después de crear el entorno tfdml
, habrá un mensaje de procedimiento y la entrada y
allí. Y luego active e instale el DirecML.
Posteriormente, desactivaremos el entorno y seguiremos los siguientes comandos en el entorno base
.
conda deactivate
conda install -c conda-forge jupyterlab
conda install -c conda-forge nb_conda_kernels
Poco después de instalar estos, activaremos nuevamente el entorno tfdml
y escribiremos los comandos de la siguiente manera.
conda activate tfdml
conda install ipykernel
ipython
Entonces, cuando ejecutamos ipython
, ingresamos al shell de python, y aquí verificaremos si el dispositivo DirectML se crea sobre nuestra GPU preconstruida. Cuando obtenemos un True
, nuestro TensorFlow ahora está usando la GPU.
import tensorflow as tf
tf.test.is_gpu_available()
Producción:
Como puede verse, la GPU AMD Radeon(TM) tiene un dispositivo DirectML encima y, por lo tanto, TensorFlow puede usar la GPU. Y cuando verifique el nombre del dispositivo GPU, volverá como DML
.