Manuel Ujaldón, cuatro años después de convertirse en el primer científico español en conseguir el título de CUDA Fellow que otorga Nvidia, nos vuelve a recibir para hablar del estado actual del mundo de las GPU, los avances que se han realizado estos años y la importancia de la GPGPU en el futuro más próximo, con realidad virtual, Big Data, AI, el mundo de los eSports o los SoC desarrollándose a un ritmo imparable.
Xataka Hace ya más de cuatro años que Nvidia te otorgó el título Cuda Fellow. Y sigues como catedrático en la Universidad de Málaga dentro del área de Arquitectura de Computadores. ¿en qué has estado trabajando más recientemente?
Manuel Ujaldón. Aquello me llevó a vincularme bastante a Nvidia. Para mí fue un lujo formar parte de los CUDA Fellow, y después de estos 5 años juntos, puedes imaginarte todo lo que he aprendido rodeado de esos portentos. Y haber vivido la evolución de las GPUs desde dentro, sentirte partícipe de sus diseños, y canalizar todo ese conocimiento hacia los cursos y tutoriales que he impartido en Universidades y congresos. En total, más de 100 actividades en 20 países durante este período, en las mejores universidades, con los mejores estudiantes e investigadores, … una aventura impagable. Esto es como una llamada del seleccionador de fútbol: Los partidos de Liga pueden esperar Con todo esto, he tenido menos tiempo para la investigación en mis actividades dentro de la UMA. Sigo trabajando en la aceleración en GPUs de aplicaciones biomédicas, aunque mi último proyecto tiene más que ver con la física: estudia los efectos que se producen en los materiales debido a la irradiación con láseres e iones, donde me encargo de dirigir la paralelización en GPU de las simulaciones más exigentes.
XTK. Llevamos años hablando (y disfrutando) de las ventajas de las GPGPU para tareas en el ámbito de la salud o la ciencia donde hay tareas de gran carga computacional y volumen de datos a procesar. ¿Sería posible el futuro del Deep Learning o la AI al nivel actual sin el desarrollo de las GPU y las APIs como CUDA?
Con la ayuda de las GPUs es mucho más fácil hacer Deep Learning (DL), puesto que sus algoritmos se basan en la fuerza bruta (tremendo coste computacional) y en el Big Data (ingente volumen de datos). DL se fundamenta en heurísticos (reglas que funcionan sin demostrarse) que son más efectivos a mayor cómputo (capas de la red neuronal) y datos de entrenamiento del modelo, dos cualidades que aprovechan de forma primorosa las GPUs. Sin ellas, los resultados del DL serían mucho menos convincentes, quedando como una técnica más del montón. En el futuro, creo que DL dependerá más de la GPU, pues es su socio natural en la vertiente hardware. Nvidia ya ha estrenado en el mercado una línea de productos específicos para estas aplicaciones. Googlea DGX-1 y ya verás... Respecto a la Inteligencia Artificial, es un campo más amplio donde muchas aplicaciones se ejecutan igual o mejor en CPU y se programan más fácilmente que en CUDA. La inteligencia artificial es más selectiva, digamos más cualitativa que cuantitativa, y la fuerza bruta no es tan efectiva. Ahí veo más un frente común CPU-GPU donde Intel tendrá también mucho que decir.
XTK. Dos de las próximas revoluciones en el ámbito de consumo ya están ocurriendo. Hablo del 4K y la realidad virtual. ¿Qué papel juega la GPU y el procesamiento paralelo? ¿Podemos pensar en un futuro en estos campos exclusivamente con soluciones CPU + GPU integrada?
La resolución en pantalla no supone un desafío para el futuro de las GPUs, puesto que no es escalable, es decir, el ojo no necesita mucha más de la que ya disfruta. Además, se reparte fácilmente entre miles de cores desde el modelo de paralelismo de datos que soporta la GPU, que sí es escalable. Cuando la velocidad del motor crece más rápidamente que la distancia del viaje, el tiempo de transporte no es un problema. Con la realidad virtual sucede justo lo contrario. Cuesta más paralelizarla en GPU y tiene multitud de frentes abiertos que desbordan la complejidad computacional de forma casi inmediata. En este campo, una solución CPU+GPU integrada no sirve ahora, y menos más adelante, porque la tendencia es opuesta al caso anterior: la distancia crece y crece, mientras tú viajas en bicicleta, donde multitud de factores que no están en manos de la tecnología acotan la velocidad.
XTK. Una tendencia en claro crecimiento desde hace años es la inclusión de GPUs en las soluciones CPU de Intel, por ejemplo. ¿Sigue teniendo sentido invertir y realizar sacrificios en portátiles a nivel de autonomía o diseño por contar con una GPU dedicada? ¿Dónde está el límite de las soluciones GPU integradas actualmente?
Esa tendencia viene marcada por el perfil de usuario, que en tiempos modernos valora más la autonomía que la velocidad. Las soluciones integradas están pensadas para ellos, y seguirán creciendo porque el mercado se mueve en esa dirección. Pero siempre habrá amantes de los videojuegos en el mercado de consumo y científicos con aplicaciones complejas que no tienen otra opción que una GPU dedicada. Una vez resuelta la pregunta fácil, vamos con la difícil. El límite de las soluciones GPU integradas no está claro, ya que el tiempo y la tecnología juegan a su favor. Los nuevos transistores 3D (fin-FET, que “arrugan” la anchura de puerta para contraerla) y las nuevas memorias 3D (stacked o “apilada”) permitirán reunir en un solo chip a una CPU potente, una GPU de gama alta y generosas dosis de memoria de gran capacidad y velocidad. Es lo que se conoce como SoC (System-on-Chip). Nvidia ya tiene un producto de ese tipo, que estará a la venta a finales de 2017: Xavier. Un chip de siete mil millones de transistores que integra 8 cores de CPU y 512 cores de GPU para procesar 20 Tera-operaciones por segundo consumiendo únicamente 20 vatios. Esas 20 Tera-ops coinciden con el techo de rendimiento de la GPU más potente a la venta en Noviembre de 2016: La Pascal Titan X. Lanzando un corolario arriesgado con todo esto: “Compra una GPU dedicada ahora o espera un año para encontrar el mismo rendimiento en su versión integrada”. Quizá a más de uno se le acabe la prisa cuando vea que la Pascal Titan X cuesta ahora más de 1000 euros, y se le encienda una sonrisa cuando vea el precio de Xavier dentro de un año (aunque conviene aclarar que no se trata de una plataforma para jugar). Pero al margen de todo esto, la distancia entre una solución integrada y otra dedicada se va a acortar mucho a partir de 2017, en que Nvidia pondrá a la venta sus primeras tarjetas gráficas con memoria 3D (HBM2 – High Bandwidth Memory de segunda generación). Ahí pasaremos del ladrillo actual que es la Titan X a un espacio similar al de un smartphone para la GPU dedicada. Este formato se inaugurará con el procesador con “codename” GP100, casi inminente puesto que ya se ha recorrido el camino con memoria GDDR5X: GP108, GP106, GP104 (GTX 1080 – Jun’16) y GP102 (Titan X – Nov’16). Y la distancia dedicada-integrada no sólo se acortará porque la solución dedicada será 4 veces más compacta, sino porque la integrada será mucho más potente, dando anchos de banda de 1 TByte/s. con HBM2 o rendimientos pico de varios TFLOPS con transistores fin-FET.
XTK. A nivel de capacidad de innovación, ¿sigue Intel con ventaja frente a Nvidia, por ejemplo? ¿Y las CPU respecto a las GPU?
La ventaja de Intel ha crecido en estos últimos 4 años si la medimos en distancia de integración, que es el pilar de la frecuencia, el consumo y la funcionalidad de los chips. Ya comentamos en 2012 que mientras que Nvidia siguiera delegando a otros la fabricación de sus transistores, tendría un déficit tecnológico importante. Y esa situación no ha cambiado. Más bien se ha agravado porque TSMC ha estado desde 2012 hasta 2016 anclada en los 28 nanómetros, mientras que Intel se ha situado ya en 14 nm. Este año, Nvidia ha reaccionado gracias a los transistores fin-FET de 16 nm, y parece que TSMC se ha puesto las pilas y seguirá bajando, pero Intel sigue muy por delante. A partir de ahí, esa ventaja puede acortarse al nivel de diseño del procesador, y sobre todo, del API, porque no es lo mismo compilar un código para un conjunto de instrucciones de hace 40 años como el x86 de Intel, que hacerlo para un código CUDA que todavía no ha cumplido 10 años. Por mucho que algunos compiladores de Intel hayan sido obras maestras, “aunque la mona se vista de seda, …”.
XTK. ¿Qué tiene que aprender una CPU a nivel tecnológico en los últimos años de las GPUs?
Más que virtudes propias, las GPUs nos han enseñado las miserias de la CPUs, que si bien se sabían, Intel ha sabido disimular largo tiempo. ¿Por qué una GPU Pascal supera los 3500 cores y un i7 no llega a 20 dentro de un chip con mayor densidad de integración al llevar transistores más pequeños? Porque hay mucha circuitería en las CPUs que es prescindible si se construye para un conjunto de instrucciones 30 años más joven. Imagínate un reproductor de música condenado a pinchar discos de vinilo, CDs y mp3. No le queda otra que ser gigantesco por mucha tecnología de 2016 que uses. Falla el soporte porque el usuario no quiere prescindir de sus viejos LPs, y nos damos cuenta cuando llega el iPod (que por cierto tiene la misma edad que la GPU). Aparte de este enorme adelgazamiento de los cores que procesan CUDA, la principal aportación de la GPU ha sido el modelo de paralelismo de datos (SIMD), que permite acelerar tanto los motores de renderización de los videojuegos (repartiendo millones de píxeles entre miles de procesadores) como las aplicaciones científicas de millones de datos, ya sean matrices, imágenes, big-data, ... Ese reparto no puede hacerlo una CPU, que eligió descomponer el código en tareas o hilos, una partición que se agota enseguida (en muchos casos, antes de llegar a diez). Finalmente, para procesar un programa SIMD, la arquitectura de la GPU inventa el concepto de multiprocesador, una plantilla que se fotocopia tantas veces como número de cores puedas pagar. De esa manera, se pueden satisfacer a todos los perfiles de usuario. Por ejemplo, el multiprocesador de Pascal tiene 64 cores. Si eres un usuario de gama baja o das prioridad a la autonomía de la batería, puedo venderte un modelo con un par de multiprocesadores (128 cores). Si eres un usuario medio, te vendo una docena de multiprocesadores, y si tienes dinero y quieres comprar la Titan X, te vendo 3584/64 = 56 multiprocesadores. De un solo diseño salen todas las GPUs, ya sean GeForce para jugones, Quadro para profesionales, Tesla para científicos o Tegra para móviles, y con un número muy variado de cores para que todos los usuarios, pobres y ricos, encuentren su modelo. Esta idea de “un mismo diseño para todos los perfiles de cliente” ya la usaba Intel en los años 90 para sus CPUs, pero jugando con el tamaño de las memorias caché integradas: El modelo Celeron llevaba poca caché y costaba menos de 100 euros (ahora es un i3), el modelo Pentium era el término medio (100-300 euros, ahora es un i5-i7), y el Xeon, tanto hace 20 años como ahora, es para quien paga hasta 5000 euros para tener una caché entre 10 y 30 veces más grande. Pero la arquitectura de la GPU no es tan sensible a la caché, de ahí que los modelos que montan GP108, GP106, GP104, GP102 y G100 tengan la misma caché L1 dentro de cada multiprocesador y jueguen más con el número de cores porque la arquitectura sí es escalable.
XTK. Los eSports y el mundo del gaming que está creciendo de manera explosiva en los últimos años, ¿ayudarán al mundo de las GPU?
Claro, la industria del ocio siempre ha sido el gran negocio de los fabricantes de GPUs. Esos nichos de mercado son el foco principal de empresas como Nvidia, lo demás son productos satélite. Los usuarios CUDA somos como la división de balonmano del F.C. Barcelona, los video-juegos son el fútbol.
XTK. Este año la gran revolución a nivel de GPUs domésticas ha sido la arquitectura Pascal de Nvidia, con las GeForce GTX 10 Series a la cabeza. ¿Tan diferente es una GPU como la 1080 de la 1050 para costar la primera cinco veces más?
El multiprocesador es el mismo, ya lo hemos dicho. Pero la GeForce GTX 1080 incluye 40 multiprocesadores (40x64 = 2560 cores), mientras que la GTX 1050 sólo trae 10 (640 cores), y a una frecuencia en torno a un 20% inferior. Además, la 1080 lleva 8 GB de memoria de vídeo a 10 GHz, y la 1050 sólo 2 GB a 7 GHz. En general, “al peso”, sí se justifica pagar 5x. Otra cosa es el rendimiento: Un benchmark de video-juegos no sacará tanta diferencia en muchos casos, pero un programa CUDA sí: los bloques de CUDA se reparten entre 4 veces más cores, por lo que tardan 4 veces menos en ejecutarse, y si añadimos el 20% adicional de la frecuencia, alcanzamos el factor 5x deseado. A partir de ahí, los 8 GB de memoria (frente a 2) y la memoria de 10 GHz (frente a 7) te salen “gratis”. Sí parece una inversión rentable, pero insisto, más para un programador CUDA. Un motor de renderización presenta otras limitaciones que impiden que la GTX 1080 pueda lucir tanto, por lo que en más de un videojuego puedes llevarte un chasco.
XTK. Con el historial previo de Apple en el entorno laboral de edición multimedia o creativos, ¿te sorprende la dejadez de Apple con sus equipos más profesionales o la configuración base del nuevo Macbook Pro con las Iris 550 en vez de las gráficas Nvidia más actuales que podrían sacar mayor rendimiento con software de edición de vídeo, imágenes o juegos?
No entiendo nada de lo que está haciendo Apple últimamente con las tarjetas gráficas de sus equipos. Para mí, es un cúmulo de despropósitos. Yo soy usuario de MacBook Pro desde 2009, en que el producto era excelente. En 2013 renové con ellos a pesar de que ya no me gustaban algunos cambios. En adelante, mucho tienen cambiar las cosas para que vuelva a comprarles (y eso que el entorno y algunas de sus aplicaciones me siguen convenciendo).
XTK. Volviendo sobre las GTX 10 Series, ¿en qué punto la diferencia de precio no compensa la variación de rendimiento a un consumidor? O dicho de otra forma, ¿algún truco o consejo para optimizar la compra de una tarjeta gráfica para jugar y decantarse por un modelo que no sea el más alto de la gama?
Me pides traicionar a Nvidia, ya que la mejor compra es la peor venta . En primer lugar, el modelo de gama más alta no tiene una relación prestaciones/precio favorable, ya que siempre cuenta con una legión de seguidores, y eso sube artificialmente el precio. Así que mi primer descarte son las Titan X, y mi segundo descarte, las Titanium. Del resto, pongamos la gama 1050, 1060, 1070 y 1080, mi primera opción de compra sería la 1060 si vas gastar menos de 200 euros, y mi segunda opción, la 1080 si vas gastar más. Y esta receta vale para cualquier generación. Por ejemplo, en la anterior (Maxwell), la GTX 960 y la GTX 980 tenían la mejor relación prestaciones/precio en la gama baja y media, respectivamente. Mi segundo consejo también vale para cualquier generación, e incluso te diría que para cualquier chip (no sólo GPUs): nunca compres antes de los tres primeros meses en que está a la venta el producto. Primero, porque esas primeras versiones de los chips son menos fiables (ahí tienes lo que ha pasado con el Samsung Galaxy Note 7), y segundo, porque el hardware se devalúa más rápidamente en ese período, una vez decrece la presión de los pedidos. A partir de tres meses, ya se han depurado la mayoría de errores iniciales, los precios no bajan tanto, y ya no merece la pena esperar. Es decir: los que se ponen la noche de antes en la puerta de la tienda para llevarse las primeras unidades son los que salen más feos en la foto. Mi primer consejo lo esgrimirías tú mismo si supieras cuántas 1080 tiene que vender Nvidia para igualar el beneficio de una sola Titan X (y no digamos ya, cuántas 1060). El segundo consejo, si conocieras el porcentaje de beneficio de un producto que pierde Nvidia por cada semana que se retrasa su lanzamiento. ¿Crees que podría permitirse el lujo de esperar a que todo esté 100% depurado en un chip que ya supera los 15000 millones de transistores?
XTK. Mirando el mercado y la repercusión con la salida de las nuevas generaciones de gráficas AMD y Nvidia, no parece que haya precisamente igualdad. CUDA seguro que ha tenido mucho que ver. ¿Cómo está actualmente la lucha entre Nvidia y AMD en las GPGPU?
Entre 2000 y 2006, en la era pre-CUDA, las fuerzas estaban muy igualadas. Entre 2007 y 2013, la diferencia en ventas era 2-1 a favor de Nvidia, que pasó a ser 3-1 en 2014, 4-1 en la primera mitad de 2015, y 5-1 hace tan sólo un año. En 2016, AMD está recuperando terreno favorecido por la adopción de Apple y por la presencia en sus productos de la memoria 3D (HBM1) ya desde Agosto de 2015. Así, en el primer trimestre de 2016, la cuota de mercado ha sido de 77.2% para Nvidia y 22.8% para AMD. Y en el segundo trimestre, 70.0% para Nvidia y 29.9% para AMD, siempre según cifras de la consultora Jon Peddie Research, que realiza estudios de mercado independientes. Es decir, el marcador está ahora 7 a 3 para Nvidia.
XTK. ¿CUDA , OpenCL o ambas APIs? ¿Tiene más posibilidades en el futuro de las GPU la solución OpenCL por su apertura a nivel hardware y no depender de un solo fabricante como Nvidia?
Es la pregunta que más me han hecho estos últimos años, y lo creas o no, cada año ha merecido una respuesta diferente. Hace 5 años, OpenCL parecía el caballo ganador, ya que todos, incluido Nvidia, empujaban en la misma dirección. Ahora, tras el abandono de Apple, que fue su líder y mentor, OpenCL deambula como pollo sin cabeza y Nvidia mira más hacia otro sitio. Cuando el éxito o fracaso depende de decisiones políticas, véte a saber cómo estará la cosa dentro de 3 ó 4 años.
XTK. A nivel del mercado de consumo, están los sistemas operativos actuales (Windows 10 y MacOS Sierra aprovechando el potencial del procesamiento paralelo de CUDA y OpenCL? ¿Y Linux? ¿Qué sistema operativo lo está haciendo mejor?
El sistema operativo no es un aspecto decisivo en este caso. El soporte nativo lo incluyó MacOS por primera vez, pero cuando entras en una instancia EC2 de Amazon en la nube que te proporciona una GPU con todo el software más actual ya configurado, encuentras un Linux. Y en todos los tutoriales de CUDA que yo he impartido, las sesiones prácticas también se han desarrollado en Linux. Trabajar de forma remota en Windows o MacOS es más complejo y depende mucho más de un buen ancho de banda en la conexión que difícilmente se sostiene para un gran número de usuarios como los que yo suelo tener en mis cursos. Si tomamos como referencia la experiencia de mis alumnos en lugar de la mía, en la Web de Nvidia hay una guía de instalación de CUDA para cada uno de los tres sistemas operativos y sus variantes más populares que ellos han encontrado igualmente fáciles de seguir, así que atendiendo a ese indicador tendríamos un empate técnico.
Imagen portada | Universidad Técnica Federico Santa María
Ver todos los comentarios en https://www.xataka.com
VER 43 Comentarios