Aumento de las perspectivas de procesamiento reconfigurables - Calendae | Informática, Electrónica, CMS, Ciberseguridad

Aumento de las perspectivas de procesamiento reconfigurables

Hola y mil gracias por leerme. Yo soy Simón Sánchez y en el día de hoy hablaremos sobre Aumento de las perspectivas de procesamiento reconfigurables

Con todo el ajetreo reciente acerca de la HPC acelerada por GPU, el procesamiento reconfigurable con Field Programmable Gate Array (FPGA) ha recibido proporcionalmente menos atención. Si bien NVIDIA ha encabezado el impulso de la GPU hacia HPC, no hay un solo proveedor en el espacio de computación reconfigurable que haya saltado al asiento del conductor. Eso no ha impedido que muchos jugadores más pequeños lo intenten.

A diferencia de las GPU, o las CPU para el caso, las FPGA requieren un modelo de programación poco convencional. Esto se debe al hecho de que los elementos lógicos del chip deben configurarse de forma personalizada antes de que las aplicaciones puedan ejecutarse en ellos. Este proceso se realiza mediante software, que en este caso se utiliza para implementar el diseño de hardware más adecuado para el código de la aplicación. Esto no es algo en lo que esté capacitado el programador promedio. Algunos lo han comparado con escribir código ensamblador, pero en realidad es peor. Es más como diseñar el lenguaje ensamblador en sí.

El atractivo de los FPGA es que se pueden configurar individualmente para ejecutar de manera eficiente cargas de trabajo de aplicaciones específicas. Si necesita ejecutar una carga de trabajo diferente, la FPGA se puede reconfigurar en consecuencia. El cambio de configuración toma solo milisegundos.

Al igual que las GPU, las FPGA pueden ofrecer una ganancia de rendimiento de hasta uno o dos órdenes de magnitud para ciertas aplicaciones y pueden hacerlo con una fracción del consumo de energía de una implementación de solo CPU. Aunque existe la percepción de que existe una batalla entre FPGA y GPU por la aceleración HPC genérica, en realidad hay mucha luz natural entre las dos arquitecturas, lo que sugiere que diferentes clases de aplicaciones gravitarían hacia una u otra. Por ejemplo, la mayoría de las aplicaciones bioinformáticas, que se basan en números enteros y son de naturaleza muy paralela, son ideales para el silicio FPGA, pero no serían particularmente aplicables a las GPU. El reconocimiento de imágenes (pero no el renderizado), el cifrado / descifrado y los códigos basados ​​en FFT también son adecuados para FPGA.

El hecho de que los FPGA sean dispositivos estándar en equipos de alto rendimiento, como fuentes de datos de mercado, enrutadores de red, sistemas militares y dispositivos de imágenes médicas, indica su aplicabilidad para la transmisión de cargas de trabajo de HPC. Pero debido a que los FPGA están destinados principalmente a plataformas integradas para reemplazar o aumentar los procesadores de señales digitales (DSP) u otros ASIC personalizados, su entrada en el mundo de los servidores y estaciones de trabajo, donde se realiza la mayor parte de HPC, ha sido relativamente reciente. Afortunadamente, los desarrollos en el campo de las computadoras reconfigurables se han unido en los últimos años para hacer la vida más hospitalaria para la aceleración HPC basada en FPGA.

Desde 2006, la apertura de la interfaz HyperTransport de AMD, a través de TENZA, y la subsiguiente licencia Front Side Bus (FSB) de Intel han hecho del coprocesamiento FPGA un esfuerzo mucho más práctico. Empresas como XtremeData, DRC Computer y Nallatech han adoptado esto y han desarrollado módulos de expansión FPGA para plataformas basadas en x86. Antes de esto, solo eran posibles las soluciones personalizadas, como la tecnología de Computación Específica de Aplicación Reconfigurable (RASC) de SGI y el sistema XD1 de Cray. Esto ha relegado las computadoras reconfigurables a proyectos de investigación y compradores gubernamentales con mucho dinero. La capacidad de conectar un FPGA a un bus de sistema x86 expande enormemente el mercado.

Hacer que las FPGA sean compatibles con los sockets también les da a los dispositivos una ventaja interesante sobre las GPU. Mientras que los dispositivos Tesla de NVIDIA y los dispositivos FireStream de AMD se comunican con el host a través de un enlace PCIe, los FPGA enchufados pueden comunicarse directamente con la CPU, utilizando el bus del procesador nativo. Esto proporciona latencias del orden de 250 ns, menos de la mitad de lo que se puede lograr con PCIe. Estar en el bus también significa que una FPGA tiene acceso de pares a la memoria del procesador y puede funcionar sin la intervención del host.

Con FPGA funcionando bien con hardware x86, los fabricantes de herramientas de cómputo reconfigurables como Mitrionics, Celoxica e Impulse Accelerated Technologies se han conectado con fabricantes de FPGA y OEM (como HP) para ofrecer soluciones de aceleración más integradas. . Los fabricantes de herramientas ofrecen entornos de programación que permiten a los desarrolladores escribir código C (o similar a C) que se puede compilar en un proyecto de lógica FPGA, que luego se puede cargar en el chip. Si bien esto alivia a los desarrolladores de la tarea más difícil de hacer un diseño de hardware de bajo nivel usando VHDL o Verilog, incluso en este nivel, la programación FPGA sigue siendo el paso más sutil en el procesamiento reconfigurable.

El problema fundamental es que las herramientas que se ofrecen no protegen por completo al programador de los problemas de diseño del hardware, ni utilizan un entorno de programación estándar. En el caso de Celoxica, Handel C se utiliza como lenguaje de diseño de hardware para definir la implementación de FPGA. De manera similar, Mitrionics inventó Mitrion C, que usa el procesador virtual Mitrion como una representación intermedia del diseño de hardware final. De cualquier manera, estos lenguajes no son de ninguna manera C estándar, por lo que se basan en tecnologías personalizadas de compilación, tiempo de ejecución y depuración y obligan al cliente a mantener el código fuente específico del proveedor.

Impulse Accelerated Technologies creó Impulse C, que es compatible con el estándar C, pero amplía las capacidades del lenguaje con algunos tipos de datos adicionales y funciones de biblioteca para el procesamiento FPGA. Esto tiene la ventaja de permitir al desarrollador mantener una base de código fuente C y utilizar herramientas de depuración estándar para el desarrollo. Una vez que se completa la depuración, el compilador Impulse se utiliza para generar la imagen de mapa de bits FPGA correspondiente al código C destinado a la aceleración. Impulse C está diseñado para aplicaciones de transmisión, pero también se puede adaptar para un modelo de memoria compartida.

La solución informática reconfigurable más integrada y más ambiciosa de la actualidad es la plataforma de “núcleo híbrido” de Convey Computer, recientemente anunciada, que envuelve múltiples FPGA Xilinx en un coprocesador reconfigurable junto con una CPU x86. El uso de «personalidades» de la carga de trabajo de la aplicación (esencialmente mapas de bits FPGA preestablecidos) protege al desarrollador de problemas de diseño de hardware o incluso de programación paralela explícita al permitir que el compilador y el sistema de tiempo de ejecución solucionen las asignaciones de código de la CPU y FPGA. Todo el sistema se puede programar con los estándares ANSI C / C ++ y Fortran, eliminando uno de los mayores obstáculos para la productividad del programador en arquitecturas basadas en aceleradores.

Debido a su compatibilidad con lenguajes de programación estándar, la oferta de Convey tiene el potencial de hacer que la aceleración del coprocesador, basada en FPGA o no, sea mucho más accesible para los usuarios de HPC. Esto no significa necesariamente que otras soluciones de TI reconfigurables se queden atrás. Debería haber espacio en el mercado para módulos de expansión FPGA que se puedan aplicar en una amplia gama de plataformas de servidor, y la primera generación de fabricantes de herramientas informáticas reconfigurables puede desarrollar componentes de software para un ecosistema en crecimiento.

De hecho, David Pellerin, cofundador y CEO de Impulse Accelerated Technologies no considera a Convey como un competidor. Por el contrario, cree que el flujo de trabajo de C y Fortran es un buen modelo para que los FPGA lo promuevan, y cree que las ofertas de Impulse podrían tener un lugar en ese entorno. «Creo que nuestras herramientas podrían desempeñar un papel para permitir que los desarrolladores de ‘personalidad’ de Convey, como integradores de sistemas y especialistas en dominios de algoritmos, creen estos elementos de biblioteca basados ​​en FPGA más rápidamente», dice Pellerin.

Si bien hay pocas razones para esperar una gran avalancha de aplicaciones HPC hacia sistemas basados ​​en FPGA, los avances constantes en hardware y software reconfigurables deberían animar el mercado durante los próximos dos años (los estándares de software ciertamente no vendrían mal). A medida que los últimos dispositivos de silicio FPGA de 65 nm, Xilinx Virtex-5 y Altera Stratix III, comiencen a abrirse camino en las plataformas HPC, habrá más espacio de silicio disponible para problemas aún mayores, especialmente aquellos que involucran mucho paralelismo de coma flotante. Con la llegada de HyperTransport 3.0 y el bus de interconexión QuickPath de Intel para la familia de procesadores Nehalem, pronto estarán disponibles enlaces de coprocesador x86 de mayor rendimiento. Finalmente, como demuestra la introducción de la arquitectura Convey, el procesamiento reconfigurable se puede encapsular completamente, entregando el poder de los FPGA con una cara amigable.

Recuerda compartir en una historia de tu Instagram para que tus amigos lo flipen

??? ? ? ???

Comparte