La inevitabilidad de la penetración de FPGA en los centros de datos

La inevitabilidad de la penetración de FPGA en los centros de datos
No es necesario ser un diseñador de chips para programar FPGA, del mismo modo que no es necesario ser un programador de C++ para escribir código en Java. Sin embargo, en ambos casos probablemente será útil.

El objetivo de comercializar tecnologías Java y FPGA es refutar esta última afirmación. Buenas noticias para los FPGA: utilizando las capas de abstracción y el conjunto de herramientas adecuados, en los últimos 35 años desde la invención del dispositivo lógico programable, la creación de algoritmos y flujos de datos para los FPGA en lugar de CPU, DSP, GPU o cualquier otra forma de ASIC personalizados se ha vuelto Cada vez más común y más fácil.

La asombrosa oportunidad de su creación es evidente en el hecho de que justo cuando las CPU ya no podían seguir siendo el único módulo informático de los centros de datos para realizar muchas tareas, por diversas razones, las FPGA alcanzaron su efectividad, ofreciendo velocidad, baja latencia y capacidades de conexión en red. y memoria: capacidades informáticas heterogéneas de los SoC FPGA modernos, que son sistemas informáticos casi completos. Sin embargo, los FPGA también se combinan con éxito con otros dispositivos en sistemas híbridos y, en nuestra opinión, apenas están comenzando a encontrar el lugar que les corresponde en la jerarquía informática.

Es por eso que organizamos la conferencia The Next FPGA Platform en San José el 22 de enero. Naturalmente, uno de los principales proveedores de FPGA del mundo y pionero en este ámbito es Xilinx. Ivo Bolsens, vicepresidente senior y director de tecnología de Xilinx, habló en la conferencia y hoy nos dio su opinión sobre cómo Xilinx está ayudando a crear sistemas informáticos modificables para centros de datos.

A los arquitectos y programadores de sistemas les llevó mucho tiempo crear un centro de datos heterogéneo, que contará con varios tipos de potencia informática que resuelvan problemas de informática, almacenamiento y redes. Esto parece necesario debido al hecho de que cada vez es más difícil seguir la ley de Moore utilizando varios dispositivos CMOS. Por ahora, nuestro lenguaje todavía está centrado en la CPU y todavía hablamos de "aceleración de aplicaciones", es decir, hacer que los programas se ejecuten mejor de lo que se puede hacer solo con las CPU. Con el tiempo, los centros de datos se convertirán en conjuntos de potencia informática, almacenamiento de datos y protocolos que unen todo, y volveremos a términos como “informática” y “aplicaciones”. La computación híbrida se volverá tan normal como los servicios en la nube actuales que se ejecutan en computadoras de escritorio o máquinas virtuales, y en algún momento simplemente usaremos la palabra "computación" para describir cómo funcionan. En algún momento, y es probable que los FPGA ayuden a marcar el comienzo de esta era, lo llamaremos procesamiento de datos nuevamente.

La adopción de FPGA en los centros de datos requerirá un cambio de mentalidad. "Cuando se piensa en formas de acelerar las aplicaciones actuales, hay que llegar a los conceptos básicos de cómo se ejecutan, qué recursos se utilizan y dónde se invierte el tiempo", explica Bolsens. – Necesitas estudiar el problema general que estás intentando resolver. Muchas aplicaciones que se ejecutan en los centros de datos hoy en día escalan para consumir grandes cantidades de recursos. Tomemos como ejemplo el aprendizaje automático, que utiliza una gran cantidad de nodos informáticos. Pero cuando hablamos de aceleración, debemos pensar no sólo en acelerar la informática, sino también en acelerar la infraestructura”.

Por ejemplo, en el tipo de operaciones de aprendizaje automático que Bolsens estudió en la práctica, aproximadamente el 50% del tiempo se dedica a transferir datos de un lado a otro entre potencias informáticas dispersas, y solo la mitad restante del tiempo se dedica a los cálculos en sí.

“Aquí es donde creo que la FPGA puede ayudar, porque podemos garantizar que tanto los aspectos computacionales como de comunicación de la aplicación estén optimizados. Y podemos hacer esto a nivel de infraestructura general y a nivel de chip. Esta es una de las grandes ventajas de los FPGA, ya que permite crear redes de comunicación para necesidades de aplicaciones específicas. Según los patrones típicos de movimiento de datos en cargas de trabajo de IA, no veo la necesidad de una arquitectura compleja basada en conmutadores. Puede construir una red con un gran flujo de datos. Lo mismo se aplica a las tareas de entrenamiento de redes neuronales: puede construir una red de malla con tamaños de paquetes que se adapten a una tarea específica. Al utilizar una FPGA, los protocolos de transferencia de datos y las topologías de circuitos se pueden escalar y adaptar con mucha precisión a una aplicación específica. Y en el caso del aprendizaje automático, también está claro que no necesitamos números de punto flotante de doble precisión, y también podemos ajustarlos”.

La diferencia entre una FPGA y una CPU o ASIC personalizado es que estos últimos están programados en fábrica, y después de eso ya no puedes cambiar de opinión sobre los tipos de datos que se calculan o los elementos que se calculan, o sobre la naturaleza de los datos. fluye a través del dispositivo. Los FPGA le permiten cambiar de opinión si cambian las condiciones de funcionamiento.

En el pasado, esta ventaja tenía un costo, cuando la programación FPGA no era para los débiles de corazón. La necesidad es abrir los compiladores FPGA para integrarse mejor con las herramientas que los programadores usan para escribir aplicaciones paralelas a la CPU en C, C++ o Python, y subcontratar parte del trabajo a bibliotecas que aceleran los procedimientos en FPGA. Esto es lo que hace la pila de aprendizaje automático de Vitis, impulsando plataformas de aprendizaje automático como Caffe y TensorFlow, con bibliotecas para ejecutar modelos de IA convencionales o agregar capacidades FPGA a tareas como transcodificación de video, reconocimiento de objetos de video y análisis de datos, gestión de riesgos financieros y cualquier tercero. -Bibliotecas de fiestas.

Este concepto no es muy diferente del proyecto CUDA de Nvidia, lanzado hace una década, que descarga la computación paralela a los aceleradores de GPU, o del kit de herramientas ROCm de AMD, o de la promesa del proyecto OneAPI de Intel, que debería ejecutarse en diferentes CPU, GPU y FPGA.

La única pregunta es cómo se conectarán todas estas herramientas para que cualquier persona pueda programar un conjunto de poderes informáticos a su discreción. Esto es importante porque los FPGA se han vuelto más complejos, mucho más complejos que cualquiera de las CPU disponibles. Se fabrican utilizando los procesos de fabricación más avanzados y las tecnologías de envasado de chips más modernas. Y encontrarán su nicho, ya que ya no podemos perder tiempo, dinero, energía e inteligencia; todos estos son recursos demasiado caros.

"Los FPGA ofrecen ventajas tecnológicas", afirma Bolsens. – Y esto no es sólo la publicidad habitual sobre adaptabilidad y reconfigurabilidad. En todas las aplicaciones importantes: aprendizaje automático, análisis de gráficos, comercio de alta velocidad, etc. - tienen la capacidad de adaptarse a una tarea específica no sólo la ruta de distribución de datos, sino también la arquitectura de la memoria - cómo se mueven los datos dentro del chip. Los FPGA también tienen mucha más memoria integrada que otros dispositivos. También se debe tener en cuenta que si una tarea no cabe en una FPGA, se puede escalar en varios chips sin encontrar las desventajas que le esperan al escalar tareas en varias CPU o GPU”.

Fuente: habr.com

Añadir un comentario