Inevitabilidad de la penetración de FPGA en centros de datos

imagen

No necesita ser un desarrollador de chips para programar para FPGA, no necesita ser un programador de C ++ para escribir código Java. Sin embargo, en ambos casos, probablemente, no será superfluo.

El objetivo de comercializar ambas tecnologías, Java y FPGA, es refutar la última declaración. La buena noticia para los FPGA es que con el uso de niveles adecuados de abstracción y herramientas en los últimos 35 años, desde la invención del dispositivo lógico programable, creando algoritmos y flujos de datos para FPGA en lugar de CPU, DSP, GPU o cualquier otra forma de ASIC especial más fácil.

La sorprendente oportunidad de su creación se manifiesta en el hecho de que justo cuando la CPU ya no podía seguir siendo el único módulo informático de los centros de datos para realizar muchas tareas, por diversas razones, los FPGA lograron su eficiencia al ofrecer velocidad, baja latencia, capacidades de red y memoria, heterogénea Capacidades informáticas de los SoC FPGA modernos, que son sistemas informáticos casi completos. Sin embargo, los FPGA se combinan con éxito con otros dispositivos en sistemas híbridos y, en nuestra opinión, apenas comienzan a encontrar el lugar que les corresponde en la jerarquía informática.

Así que organizamos The Next FPGA Platform en San José el 22 de enero. Naturalmente, uno de los principales proveedores de FPGA en el mundo y pionero en esta área es Xilinx. Ivo Bolsens, Vicepresidente Senior y CTO de Xilinx, hizo una presentación en la conferencia y nos contó sobre sus pensamientos hoy sobre cómo Xilinx ayuda a crear sistemas informáticos mutables para centros de datos.

Los arquitectos y programadores de sistemas tomaron el tiempo suficiente para llegar a un centro de datos heterogéneo, que presentará varios tipos de capacidades informáticas que resuelven problemas de computación, almacenamiento y redes. Esto parece necesario debido al hecho de que seguir la ley de Moore usando varios CMOS se está volviendo cada vez más difícil. Si bien nuestro lenguaje todavía está vinculado a la CPU, y todavía estamos hablando de "aceleración de la aplicación", en referencia a la mejora de los programas en comparación con lo que se puede hacer solo en la CPU. Después de un tiempo, los centros de datos se convertirán en conjuntos de potencia informática, almacenamiento de datos y protocolos que conectan todo, y volveremos a términos como "informática" y "aplicaciones". La informática híbrida será la misma que la de los servicios en la nube actuales,trabajando sobre la base de máquinas convencionales o virtuales, y en algún momento usaremos la palabra "computación" para describir su trabajo. En algún momento, y probablemente el advenimiento de esta era será facilitado activamente por el FPGA, lo llamaremos nuevamente procesamiento de datos.

Para implementar FPGA en los centros de datos, debe cambiar su mentalidad. "Al pensar en formas de acelerar las aplicaciones de hoy en día, hay que llegar al fondo de cómo se ejecutan, qué recursos se utilizan, qué lleva tiempo", explica Bolsens. - Necesita estudiar el problema general que está tratando de resolver. Muchas aplicaciones que se ejecutan hoy en centros de datos son escalables y capturan una gran cantidad de recursos. Tome el aprendizaje automático, por ejemplo, utilizando una gran cantidad de nodos informáticos. Pero hablando de aceleración, necesitamos pensar no solo en acelerar la informática, sino también en acelerar la infraestructura ”.

Por ejemplo, en aquellas operaciones de aprendizaje automático que Bolsens estudió en la práctica, aproximadamente el 50% del tiempo se gasta transfiriendo datos de un lado a otro entre la potencia informática dispersa, y solo la mitad del tiempo restante se desperdicia en los cálculos.

“Es aquí, me parece, que FPGA podrá ayudar, ya que podemos proporcionar una optimización tanto de los aspectos computacionales como de los aspectos de transferencia de datos para la aplicación. Y podemos hacer esto a nivel de infraestructura general y a nivel de chip. Esta es una de las grandes ventajas de los FPGA que le permiten crear redes de comunicación para las necesidades específicas de la aplicación. Al observar los patrones típicos de movimiento de datos en tareas relacionadas con el trabajo de la inteligencia artificial, 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. Con FPGA, puede escalar y ajustar protocolos de transferencia de datos y topología de circuitos para una aplicación específica.Y en el caso del aprendizaje automático, también está claro que no necesitamos números de coma flotante de doble precisión, y también podemos ajustar esto ".

La diferencia entre FPGA y CPU o ASIC especializado es que estos últimos se programan durante la producción, y después de eso ya no puede cambiar de opinión sobre los tipos de datos calculados o elementos calculados, o sobre la naturaleza del flujo de datos que pasa a través del dispositivo. Los FPGA le permiten cambiar de opinión si cambian las condiciones de trabajo.

En el pasado, esta ventaja era costosa cuando la programación para FPGA no estaba destinada a los débiles de corazón. Debe abrir compiladores para FPGA para que se integren mejor con las herramientas utilizadas por los programadores para crear aplicaciones de computación paralelas para CPU en C, C ++ o Python, y dar parte del trabajo a bibliotecas que aceleran los procedimientos en FPGA. Esto es lo que la pila de aprendizaje automático de Vitis, que es la base de plataformas para MOs como Caffe y TensorFlow, y que tiene bibliotecas para lanzar modelos AI comunes o agregar capacidades FPGA a tareas como transcodificación de video, reconocimiento de objetos en video, análisis de datos. , gestión de riesgos financieros y cualquier biblioteca de terceros.

Este concepto no es muy diferente del proyecto CUDA de Nvidia, lanzado hace diez años, y el cambio de la computación paralela a los aceleradores de GPU, o del kit de herramientas ROCm de AMD, o de las promesas del proyecto Intel, OneAPI, que debería ejecutarse en diferentes CPU, GPU y FPGA

La única pregunta es cómo se conectarán todas estas herramientas para que cualquiera pueda programar un conjunto de potencia informática 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. Están hechos con los procesos tecnológicos más avanzados y con la ayuda de las tecnologías de envasado de chips más modernas. Y encontrarán su nicho, porque ya no podemos perder tiempo, dinero, energía e inteligencia; todos estos son recursos demasiado caros.

"FPGA ofrece ventajas tecnológicas", dice Bolsens. - Y esto no es solo publicidad ordinaria sobre adaptabilidad y reajuste. En todas las aplicaciones importantes: aprendizaje automático, análisis de gráficos, comercio de alta velocidad, etc. - tienen la oportunidad de adaptarse a una tarea específica no solo la ruta de distribución de datos, sino también la arquitectura de la memoria, la forma en que los datos se mueven dentro del chip. Y FPGA tiene mucha más memoria integrada que otros dispositivos. También debe tenerse en cuenta que si la tarea no cabe en un FPGA, puede escalarla a varios chips sin encontrar las desventajas que le esperan al escalar tareas a varias CPU o GPU ".

Source: https://habr.com/ru/post/undefined/


All Articles