Ahora que se acerca el Black Friday, es un buen momento para plantearse comprar una GPU nueva o mejorarla, pero… ¿Cúal comprar? ¿Cuáles son las mejores GPU para inteligencia artificial?
El deep learning conlleva una gran carga computacional y dependiendo del hardware que tengamos, la experiencia cambia con creces, de ahí que sea tan importante contar con una buena GPU para entrenar redes neuronales y poder crear mejores modelos.
Sin embargo, no siempre es fácil saber cuál elegir, ya que la mejor elección puede variar mucho dependiendo de nuestras necesidades. En este artículo ofrecemos algunas claves.
¿Qué es una GPU?
Una GPU (Graphics Processing Unit) es un coprocesador dedicado al procesamiento de imágenes y operaciones de coma flotante.
Básicamente, al ser otro procesador añadido, su función es la de liberar de carga a la CPU, aumentando el rendimiento de nuestro ordenador.
En realidad, los procesadores principales ya tienen una GPU integrada, pero de potencia reducida. Son las tarjetas gráficas las que tienen unas GPU potentes.
Las GPU en el Deep Learning
Tener una buena GPU es fundamental para poder entrenar modelos. Y es que, sin una GPU instalada, entrenar una red neuronal puede llevarnos horas, días e incluso meses.
Con una GPU potente, en cambio, el tiempo de entrenamiento disminuye considerablemente, pudiendo ser de minutos en vez de horas o días en vez de meses.
De este modo, podemos experimentar con diferentes diseños de modelos y parámetros en menos tiempo.
Principales marcas de GPU en el mercado
Las dos grandes marcas en este mercado son NVIDIA y AMD, aunque cada vez es más popular la computación en la nube, gracias a la aparición de Amazon Web Services (AWS) y de las TPU (Tensor Processing Unit) de Google Cloud Platform.
NVIDIA
NVIDIA es el líder absoluto en la venta de GPU. Por una parte, sus librerías estándar te permiten trabajar con CUDA, una plataforma de computación paralela mucho más potente que OpenCL (la que utiliza AMD).
Por otra, entre sus librerías hay una especializada en deep learning: NVIDIA CUDA Deep Neural Network library (cuDNN) .
Esta gran ventaja inicial viene acompañada, además, de un buen soporte. Y es que CUDA cuenta con una comunidad muy extensa, gracias a la cual podremos encontrar información sobre prácticamente cualquier problema que tengamos.
AMD
Sus GPU son potentes y de calidad, pero no son compatibles con CUDA y eso es una gran desventaja. En su lugar, AMD trabaja con OpenCL y la plataforma ROCm.
ROCm utiliza HIP para poder unificar las GPU de cada tipo en un mismo lenguaje. Sin embargo, aunque la idea es buena, resulta muy tedioso parsear el codigo escrito en TensorFlow y Pytorch al lenguaje que propone AMD.
Hace poco tiempo que TensorFlow es compatible con las GPU de AMD y, si bien ya es posible ejecutar la mayoría de los modelos, crear uno nuevo todavía puede dar muchos problemas.
Además, la comunidad de ROCm no es tan extensa y, por lo tanto, no hay tanta información a la hora de resolver problemas.
En qué fijarse antes de comprar una GPU
Antes, para saber si una GPU iba a rendir mejor que otra, bastaba con fijarse en su ancho de banda o bandwith (cantidad de datos a los que la tarjeta puede acceder en cada ciclo).
Ahora eso ha cambiado, siendo necesario combinar el ancho de banda, con los FLOPS (acrónimo de Floating Point Operations Per Second o cantidad de operaciones que pueden realizar por segundo) y los TensorCores.
Dependiendo del tipo de modelo que queramos entrenar, tendremos que dar más importancia a una característica u otra.
En arquitecturas recurrentes y LSTM, el ancho de banda de memoria es la característica más importante, mientras que en arquitecturas convolucionales tiene más importancia la cantidad de FLOPS.
Qué son los TensorCores
Los TensorCores son tecnologías novedosas pensadas para el deep learning. Están especializados en aumentar el rendimiento de unidades de computación, acelerando las grandes operaciones matriciales y realizando complejos cálculos en una simple operación.
De ahí que las arquitecturas convolucionales sean más rápidas con esta tecnología.
Otra de sus ventajas es que permiten la computación con precisión de 16-bits. Esto supone un gran avance para el rendimiento de la multiplicación de matrices, ya que los números de 16-bits se transfieren más rápido que los de 32-bits (formato más usado).
Gracias a esto, los TensorCores pueden transferir el doble de datos en un mismo ancho de banda, aumentando así el rendimiento en arquitecturas LSTM.
Comparativas de las principales GPU
Los resultados de las pruebas con diferentes GPU son los siguientes:
Cuál elegir
Como se puede ver en la gráfica anterior, la RTX 2070 es la GPU con mejor calidad/precio (gracias a la posibilidad de la computación con 16-bits).
No obstante, dependiendo de cuál sea nuestro objetivo al utilizar deep learning, esto puede cambiar:
- Si estamos empezando en el campo del deep learning y solo queremos hacer algunas pruebas, la gráfica que necesitamos es una 1050 Ti de 4GB o 2GB de memoria.
- Para dedicarnos al procesamiento del lenguaje natural (NLP), una RTX 2070 usando 16-bits.
- Si queremos utilizar visión computerizada, la mejor es la RTX 2080 por su memoria. Una GTX 1080 Ti tampoco sería mala opción, pero es muy cara.
- Para uso general, a un precio asequible y con un buen rendimiento están la GTX 1060 (6GB) y la GTX 1050 Ti (4GB).
Si empezamos con una gráfica de este tipo y, en algún momento necesitamos entrenar un modelo más costoso computacionalmente, siempre podemos recurrir a AWS o a las TPU de GCP.
Breve análisis de cada una de ellas
Después de ver las principales características de las GPU y las gráficas comparativas entre ellas, incluimos un breve análisis de cada una:
GTX 1050 Ti (4GB)
Esta GPU es ideal para aquellas personas que están interesadas en el deep learning pero no quieren gastarse mucho dinero en hardware. El bajo precio de esta GPU la hace muy atractiva a la hora de crear modelos sencillos.
Ver GTX 1050Ti en PcComponentes
GTX 1060 (6GB)
Es la mejor posicionada respecto rendimiento/precio. Con 6GB de memoria no esperéis hacer grandes proyectos, pero es un buen punto de inicio. Respecto a la 1050 Ti, la 1060 ofrece un salto de potencia por un poco más de dinero.
Ver GTX 1060 (6GB) en Amazón y PcComponentes
GTX 1080 Ti
Aunque tiene un precio alto, su alta capacidad de memoria la convierte en una opción muy interesante. Sobretodo para aquellas personas que se quieran centrar en la visión por computador.
Ver GTX 1080Ti en Amazon
RTX 2070
La RTX 2070 ofrece muy buen rendimiento por su precio. Además, se comporta muy bien con 16-bits, por lo que la convierte en una opción muy buena para la investigación de modelos recurrentes.
Ver RTX 2070 en PcComponentes
RTX 2080 Ti
Por último, la GPU con mejor rendimiento de todas. Debido a su alto precio, esta GPU es recomendable para aquellas personas que van a dedicar mucho tiempo a investigar nuevos modelos de redes neuronales. Gracias a su gran cantidad de memoria, es ideal para redes neuronales convolucionales.
Ver RTX 20180 Ti en Amazon.
Fuentes:
Seguir leyendo:
Valiosísima aportación!
Una pregunta, respecto al resto del hardware, qué deberíamos tener en cuenta?
Es decir, si tengo X placa madre, o CPU… O si debo ampliar RAM para poder aprovechar o no tener incompatibilidades…
Por ejemplo, mi equipo tiene unos años y no me importaría invertir un dinero en mejorar. Pero claro, teniendo la nube y tal, supongo que el pc sale mejor usarlo para hacer los test y como bien dices entrenar en la nube. Es por esto que Tampoco creo que lo más óptimo fuese construir una super máquina.
Muchas gracias!
Gracias por esta aportación
Yo recomiendo la RTX 2060 de 12gb, va bien por los Cuda y por la gran cantidad de vram, ademas no esta tan inflada como otras, yo la uso para entrenamiento de la IA de Stable difffusion y funciona bien