infoPLC ++ / Mercado / Tribuna / La tormenta tecnológica perfecta

La tormenta tecnológica perfecta


Vender procesadores gráficos, para “no procesar gráficos”.  La GPU ya constituye un interesante caso de estudio de cómo un producto es diseñado para una cosa y luego utilizado para otra.

La tormenta tecnológica perfecta

Recuerdo que hace unos años, vistando una feria internacional, caminaba por los pasillos sin detectar grandes alegrías entre los expositores; los efectos de la crisis ya se palpaban. En el área reservada para ordenadores y estaciones de trabajo, también estaban los proveedores de periféricos, entre ellos los de tarjetas gráficas y GPUs (Unidades de Proceso Gráfico), utilizadas principalmente en aplicaciones de diseño y juegos, por aquel entonces. En el stand de Nvidea, uno de los líderes de este particular mercado, hablé con un par de empleados de la firma americana y me sorprendió la dosis de optimismo que exhibían, a diferencia de sus vecinos. Me dijeron que estaban comenzando a vender procesadores gráficos, para “no procesar gráficos”.

Ahora, esto es normal. La presencia de GPUs en aplicaciones que gestionan volúmenes masivos de datos ha proliferado exponencialmente: modelos de predicción para fenómenos atmosféricos, instrumentos financieros sofisticados, análisis de flujo de datos en redes sociales, coches autónomos o reconocimiento de objetos, son algunos ejemplos representativos.

Aplicación de aprendizaje profundo, con un algoritmo basado en red neuronal, ejecutándose en plataforma Drive PX 2 (Nvidea)

En esas aplicaciones, las CPUs tradicionales se han topado con un escollo inquietante: el final de la Ley de Moore. Hasta hace poco, el número de transistores en un procesador se doblaba cada dos años, y eso garantizaba un aumento sensible de potencia de proceso con el tiempo.

Ahora, las aplicaciones analíticas avanzadas para gestión de big data, aprendizaje automático (machine learning) y aprendizaje profundo (deep learning), por citar algunas, requieren soluciones altamente escalables, con tal de poder hacer billones de operaciones en el menor tiempo posible.

Así que por aquel entonces, se estaba fraguando la tormenta perfecta para las CPUs tradicionales y esto ha beneficiado en sobremanera a los fabricantes de GPUs. Según Jen-Hsun Huang, CEO de Nvidea, el modelo de procesador para estas aplicaciones está cambiando radicalmente: antes era uno intensivo en procesar instrucciones y ahora es otro intensivo en procesar un volumen masivo de datos. Originalmente, la arquitectura GPU deriva de la RISC; fue concebida para ejecutar cálculos complejos con grandes cantidades de datos. En ese ámbito, la ejecución en paralelo deviene un factor clave. Basta decir que las últimas versiones de GPU integran más de 2.500 núcleos frente a las pocas decenas de una potente CPU.

Con los algoritmos de análisis predictivo, como actores principales en los entornos de inteligencia artificial (AI), el paradigma ha cambiado radicalmente. Antes se codificaban los algoritmos y había que cambiar esos programas de forma frecuente, para responder a las necesidades que iban apareciendo; ahora, esos algoritmos se entrenan, para después seguir aprendiendo solos, alimentados por cuantos más datos mejor. Eso resulta esencial para los coches autónomos, robots o el reconocimiento facial. Por si fuera poco, la sinergia de utilización de una GPU aumenta si en esos dominios también se requiere la gestión de gráficos.

Plataforma abierta de conducción autónoma Drive PX 2 (Nvidea)

Pero cuando estuve en aquella feria, las GPUs no eran tan fáciles de programar, a pesar de que podían procesar múltiples hilos en paralelo (threats), para ejecutar tareas independientes con diferentes niveles de granularidad. En aquel entonces, coincidió que Nvidea presentaba CUDA (Computer Unified Device Architecture), un recurso software que se convirtió de facto en la pieza clave para el posterior lanzamiento de su plataforma AI. Esto facilitó enormemente la implementación de GPUs en nuevas y variadas aplicaciones. CUDA está compuesto básicamente por un compilador y un conjunto de herramientas de desarrollo, con librerías orientadas para ser utilizadas con lenguaje C; pero también están disponibles adaptadores para Python, Java y otros lenguajes populares. Dentro de este ecosistema de desarrollo, la denominada cuDNN ofrece potentes subrutinas para aplicación directa en Deep Neural Networks; de un plumazo, se puede ejecutar una convolución directa o inversa; segmentar, seleccionar y normalizar datos de una hipermuestra; o activar distintas capas de la red.  Una vez el programador ha implementado los algoritmos apropiados, CUDA le ayuda a entrenarlos. Pero aún falta algo importante: optimizar cada sistema de cálculo masivo. Esto puede convertirse en una tarea ardua y que requiera mucho tiempo para llevarla a cabo, dada la magnitud de los datos involucrados. Un recurso interesante, dentro de CUDA, es el motor de inferencia TensorRT, que identifica y desecha datos de escasa contribución al resultado final o reduce la precisión en determinados cálculos poco sustanciales. Algo vital para que sean operativos estos sistemas.

Las GPUs ya han sido adoptadas gradualmente por compañías como Google, Facebook, Microsoft, Alibaba o Amazon; están omnipresentes en la infraestructura informática, como en servidores y la nube, o en sistemas embebidos sofisticados. En definitiva, ya son una pieza clave en el desarrollo de plataformas (“La eclosión de las plataformas”).

Como consecuencia de lo descrito líneas arriba, el estado financiero de la compañía ha cambiado radicalmente. Basta decir que incrementó un 55% sus ingresos en el último trimestre de 2016 (respecto al año anterior) y que el valor de sus acciones se ha quintuplicado desde mediados de 2015. En el gráfico se muestra la evolución en bolsa de Nvidea, comparado con dos referencias objetivas: Intel, la compañía con más peso en el mercado de CPUs y el índice tecnológico Nasdaq Composite. En vista de estos resultados, Nvidea incluso podría ser una presa atractiva para ser adquirida por uno de los gigantes tecnológicos. Parece una buena oportunidad para el inversor.

 

Evolución en bolsa de Nvidea (naranja) comparado con Intel (azul) y el índice tecnológico Nasdaq Composite (rosa). Fuente: Bloomberg

Pero no todo el pastel de proceso AI se lo lleva Nvidea. Su competidor inmediato es AMD, otro fabricante que también proporciona GPUs. Intel, por su parte, también está moviendo ficha en este ámbito; comercializará un nuevo procesador gráfico, denominado internamente Knights Mill. Además, Intel está trabajando en una solución alternativa a la GPU, apodada Knight Crest, con tecnología mixta Nirvana y Xeon. Además, intentará beneficiarse de su adquisición de la compañía Altera, fabricante de FPGAs, para ofrecer soluciones híbridas más optimizadas en este tipo de aplicaciones.

En esta línea, Microsoft ya está utilizando FPGAs en los servidores que ejecutan los algoritmos de búsqueda de Bing. También Google ha diseñado un ASIC especial denominado Tensor Processing Unit para estos cometidos.

En definitiva, el mercado de proceso para AI está en plena expansión y requiere aceleradores con soluciones muy innovadoras, específicas y variadas. Como los retos son complejos y multidisciplinares, es previsible que haya una evolución simultánea con distintas alternativas tecnológicas, en busca de soluciones efectivas. De cualquier forma, la GPU ya constituye un interesante caso de estudio de cómo un producto es diseñado para una cosa y luego utilizado para otra.

 Tarjetas gráficas Quadro (Nvidea)