En menos de un mes, y en medio de la pandemia global, un pequeño equipo ensambló la séptima computadora más rápida del mundo.
Hoy en día, ese megasistema, llamado Selene, se comunica con sus operadores en Slack, tiene su propio robot asistente e impulsa la IA en la industria automotriz, el sector de atención de la salud y el procesamiento de idiomas naturales.
Si bien muchas supercomputadoras utilizan diseños exóticos y patentados que tardan meses en encargarse, Selene se basa en una arquitectura abierta que NVIDIA comparte con sus clientes.
El Laboratorio Nacional Argonne, en las afueras de Chicago, está utilizando un sistema basado en el diseño DGX SuperPOD de Selene para investigar formas de detener el coronavirus. La Universidad de Florida utilizará el diseño para construir la computadora de inteligencia artificial más rápida del mundo académico.
Los sistemas DGP SuperPOD están generando resultados comerciales para empresas como Continental en la industria automotriz, Lockheed Martin en el sector aeroespacial y Microsoft en los servicios de computación en la nube.
El Nacimiento de un Sistema de Inteligencia Artificial
La historia de cómo y por qué NVIDIA construyó Selene comienza en 2015.
Los ingenieros de NVIDIA comenzaron su primer diseño relacionado con el sistema con dos motivaciones. Querían construir algo lo suficientemente poderoso que permitiera entrenar los modelos de inteligencia artificial que sus colegas estaban construyendo para vehículos autónomos y que sea lo suficientemente general como para satisfacer las necesidades de cualquier investigador de deep learning.
El resultado fue el clúster SATURNV, nacido en 2016 y que se basa en la GPU NVIDIA Pascal. Cuando la GPU NVIDIA Volta más potente debutó un año después, la motivación del grupo de sistemas en crecimiento y sus diseños se expandieron rápidamente.
Los Trabajos de IA Crecen Más Allá del Acelerador
“Estamos tratando de anticiparnos a lo que vendrá basándonos en lo que escuchamos de los investigadores, construyendo máquinas que sirven para múltiples usos y tienen una vida útil prolongada y combinando la mayor cantidad de procesamiento, memoria y almacenamiento posible”, dijo Michael Houston, arquitecto en jefe que dirige el equipo de sistemas.
Ya en 2017, “estábamos comenzando a ver que nuevas aplicaciones impulsaban la necesidad de entrenamiento de múltiples nodos, lo que exigía comunicaciones de muy alta velocidad entre sistemas y el acceso al almacenamiento de alta velocidad”, dijo.
Los modelos de IA estaban creciendo rápidamente y requerían múltiples GPU para manejarlos. Las cargas de trabajo exigían nuevos estilos de computación, como los modelos en paralelo, para mantener el ritmo.
Entonces, en rápida sucesión, el equipo creó grupos cada vez más grandes de sistemas NVIDIA DGX-2 basados en V100, llamados DGX POD. Utilizaron 32 y luego 64 nodos DGX-2, que llegaron a formar en una arquitectura de 96 nodos denominada DGX SuperPOD.
La bautizaron Circe por la irresistible diosa griega. Debutó en junio de 2019 y llegó al puesto n.º 22 de la lista TOP500 de las supercomputadoras más rápidas del mundo. Actualmente ocupa el puesto 23.
Cortando Cables en una Jungla de Computación
En el camino, el equipo aprendió lecciones sobre redes, almacenamiento, energía y térmicas. Esos aprendizajes se integraron en los últimos sistemas NVIDIA DGX, arquitecturas de referencia y en la versión de Selene con 280 nodos de la actualidad.
En la carrera de los clústeres cada vez más grandes para llegar a Circe, aprendieron algunas lecciones difíciles.
“En dos ocasiones, desarmamos todo; literalmente cortamos los cables. Era la forma más rápida de avanzar, pero aún así generaba mucho tiempo de inactividad y costos. Así que prometimos no volver a hacer eso nunca más y establecimos la facilidad de expansión y la implementación incremental como un principio de diseño fundamental”, dijo Houston.
El equipo rediseñó la red general para simplificar el montaje del sistema.
Definieron módulos de 20 nodos conectados por “switches delgados” relativamente simples. Cada una de estas llamadas unidades escalables podría instalarse, al estilo de un cortador de galletas, encenderse y probarse antes de agregar la siguiente.
El diseño permitió a los ingenieros especificar las longitudes de los cables que se podrían unir con velcro en la fábrica. Los racks podían etiquetarse y mapearse, lo que simplificaba radicalmente el proceso de llenado con docenas de sistemas.
Duplicación de InfiniBand
Desde el principio, el equipo aprendió a dividir las estructuras de administración, almacenamiento y computación en planos independientes, ya que las distribuyeron en más tarjetas de interfaz de red más rápidas.
La proporción de NIC a GPU se duplicó a 1:1. También lo hicieron sus velocidades, que pasaron de InfiniBand de 100 Gbit por segundo en Circe a InfiniBand HDR de 200 G en Selene. El resultado fue un aumento de 4 veces en el ancho de banda real de los nodos.
Asimismo, los vínculos de memoria y de almacenamiento aumentaron en capacidad y tasa de transferencia para manejar trabajos con necesidades de almacenamiento en actividad, semiactividad y sin actividad. Cuatro niveles de almacenamiento abarcaban vínculos de memoria de 100 terabytes/segundo a grupos de almacenamiento de 100 Gbytes/s.
La potencia y las térmicas se mantuvieron dentro de los límites de enfriamiento por aire. Los diseños predeterminados usaban racks de 35 kW típicos en los data centers alquilados, pero pueden extenderse más allá de los 50 kW para los centros de supercomputadoras más agresivos y reducirse para los racks de 7 kW que usan algunas empresas de telecomunicaciones.
Buscando el Sistema Grande y Equilibrado
El resultado neto es un diseño más equilibrado que puede manejar las diferentes cargas de trabajo actuales. Esa flexibilidad también les da a los investigadores la libertad de explorar nuevas direcciones en IA y computación de alto rendimiento.
«Hasta cierto punto, HPC e IA requieren el máximo rendimiento, pero hay que analizar detenidamente cómo ofrece ese rendimiento en términos de energía, almacenamiento y redes, así como procesamiento sin procesar», dijo Julie Bernauer, quien lidera un equipo de desarrollo avanzado que trabajó en todos los sistemas a gran escala de NVIDIA.
Personal Reducido en Protocolos Estrictos
Las ganancias dieron sus frutos a principios de 2020.
A los pocos días de la pandemia, llegaron las primeras GPU de arquitectura NVIDIA Ampere, y los ingenieros se enfrentaron al trabajo de ensamblar el Selene de 280 nodos.
En el mejor de los casos, decenas de ingenieros pueden tardar unos meses en ensamblar, probar y poner en marcha un sistema de clase supercomputadora. NVIDIA tuvo que poner a Selene en funcionamiento en unas pocas semanas para participar en los puntos de referencia de la industria y cumplir con las obligaciones con clientes como Argonne.
Y los ingenieros tuvieron que mantenerse dentro de las pautas de salud pública de la pandemia.
“Teníamos personal reducido con protocolos estrictos para mantener al personal saludable”, dijo Bernauer.
“Para los sistemas de desempaquetado y rack, utilizamos equipos de dos personas que no se mezclaban con los demás; incluso se tomaban vacaciones al mismo tiempo. E hicimos cableado con distancias de dos metros entre personas. Eso realmente cambia la forma en que se construyen los sistemas”, dijo.
Incluso con las restricciones de COVID, los ingenieros acumularon hasta 60 sistemas en un día, lo máximo que podía soportar su muelle de carga. Los inicios de sesión virtuales permiten a los administradores validar el cableado de forma remota, probando los módulos de 20 nodos a medida que se implementan.
El equipo de Bernauer implementó varias capas de automatización. Eso eliminó la necesidad de personas en la instalación de uso compartido donde se construyó Selene, a una cuadra de la sede de NVIDIA en Silicon Valley.
Slacking con una Supercomputadora
Selene habla con el personal a través de un canal de Slack como si fuera un compañero de trabajo, informa sobre los cables sueltos y aísla el hardware que funciona mal para que el sistema pueda seguir funcionando.
«No queremos despertarnos por la noche porque el grupo tiene un problema», dijo Bernauer.
Es parte de la automatización a la que los clientes pueden acceder si siguen las instrucciones de las arquitecturas DGX POD y SuperPOD.
Gracias a este enfoque, se espera que la Universidad de Florida, por ejemplo, acumule y encienda una extensión de 140 nodos para su sistema HiPerGator, encendiendo la supercomputadora de IA más poderosa del mundo académico en tan solo 10 días después de recibirla.
Como toque adicional, el equipo de NVIDIA compró un robot de telepresencia de Double Robotics para que los diseñadores no esenciales que se refugien en casa pudieran mantener un contacto diario con Selene. Con lengua en mejilla, lo llamaron Trip debido a las preocupaciones iniciales de que los técnicos esenciales en el sitio pudieran toparse con él.
El hecho de que Trip funciona con un módulo NVIDIA Jetson TX2 fue un atractivo adicional para los miembros del equipo que imaginaron que algún día podrían jugar con su programación.
Desde finales de julio, Trip se ha utilizado con regularidad para permitirles conducir virtualmente por los pasillos de Selene, observando el sistema a través de la cámara y el micrófono del robot.
«Trip no reemplaza a un operador humano, pero si está preocupado por algo a las 2 a.m., puede verificarlo sin tener que conducir hasta el data center», dijo.
Entrega de Resultados de IA y HPC a Escala
Al final, se trata de los resultados, y llegaron rápido.
En junio, Selene alcanzó el número 7 en la lista TOP500 y el número 2 en la lista Green500 de los sistemas más eficientes en energía. En julio, batió récords en las ocho pruebas de sistemas para el rendimiento del entrenamiento de IA en los últimos puntos de referencia de MLPerf.
“La gran sorpresa para mí fue lo bien que salió todo, dado que estábamos usando nuevos procesadores y placas, y le doy crédito a todas las pruebas a lo largo del camino”, dijo Houston. “Poner esta máquina en marcha y hacer un montón de pruebas de referencia consecutivas le dio al equipo un gran impulso”, agregó.
El trabajo de prueba previa de los contenedores NGC y el software HPC para Argonne fue aún más gratificante. El laboratorio ya está trabajando en problemas difíciles en el acoplamiento de proteínas y la química cuántica para arrojar luz sobre el coronavirus.
Por separado, Circe dona muchos de sus ciclos gratuitos a la iniciativa Folding@Home que lucha contra el COVID.
Al mismo tiempo, los propios investigadores de NVIDIA están utilizando Selene para entrenar vehículos autónomos y refinar la inteligencia artificial conversacional, acercándose a los avances que se espera que informen pronto. Se encuentran entre los más de mil trabajos ejecutados, a menudo simultáneamente, en el sistema hasta el momento.
Mientras tanto, el equipo ya tiene en la pizarra ideas para lo que sigue. «Proporcione a los ingenieros obsesionados con el rendimiento suficiente potencia y cables y descubrirán cosas asombrosas», dijo Bernauer.
Arriba: la interpretación de un artista de una parte de Selene.