Video: "Buenos tiempos para las FPGA o porqué los ingenieros deberían aprender a programar FPGA". (Noviembre 2024)
Una de las tendencias más interesantes que he visto en la informática de servidor es el alejamiento de las CPU estándar y hacia un mayor procesamiento en chips gráficos (GPU) y procesadores reconfigurables conocidos como matrices de puertas programables en campo (FPGA). Este fenómeno a menudo se conoce como computación heterogénea.
El concepto aquí no es nuevo: las GPU y otros aceleradores han sido cada vez más comunes en la informática de alto rendimiento (HPC) o las supercomputadoras durante años. Pero últimamente, hemos escuchado más acerca de cómo Intel ha personalizado algunos paquetes de chips de servidor para incluir FPGA además de la CPU tradicional, dirigida principalmente a grandes proveedores de computación en la nube de hiperescala que tienen algoritmos específicos que pueden ejecutar como instrucciones de hardware en los FPGA. Esto debería ser mucho más rápido que ejecutarlos como software en las instrucciones más generales de la CPU.
Este fue un factor clave del reciente plan de Intel para adquirir el fabricante de FPGA Altera. El CEO de Intel, Brian Krzanich, dijo que espera que hasta el 30 por ciento de las cargas de trabajo en la nube tengan algún tipo de aceleración de FPGA para el final de la década. Microsoft ya está utilizando Altera FPGA para impulsar muchos de sus servicios en la nube, como la búsqueda de Bing.
Ha habido un gran obstáculo para la mayoría de las empresas que utilizan FPGA, o GPU, en los casos más comunes de informática corporativa: hacer que el software funcione simultáneamente en estos chips junto con la CPU es simplemente difícil. (Para cargas de trabajo corporativas e incluso HPC, siempre necesitará algunas CPU; en otros tipos de aplicaciones, como redes, las compañías de hardware pueden usar un FPGA). Para la computación con GPU, hemos visto cosas como CUDA de Nvidia y Khronos El estándar OpenCL del grupo, que facilita las cosas, y ciertamente hemos visto que muchos algoritmos de HPC y de aprendizaje automático usan GPU. Ahora los fabricantes de FPGA como Altera también admiten OpenCL, pero en el caso de la informática corporativa más general, se ha demostrado que es demasiado difícil.
Últimamente, he hablado con un par de compañías que esperan hacer esto más fácil.
Bitfusion es una startup que vi por primera vez en TechCrunch Disrupt; Su tecnología tiene como objetivo permitirle mover una aplicación desde la CPU a una GPU o FPGA sin tener que reescribirla para cada plataforma. Como explicó el CEO Subbu Rama, el paquete ahora funciona buscando bibliotecas de código abierto comunes utilizadas por los desarrolladores de software y reemplazando las funciones dentro de ellas con funciones que pueden aprovechar la GPU o FPGA. Como explicó, las grandes empresas podrían reescribir su código, pero las empresas medianas no pueden hacerlo. Las aplicaciones incluyen computación científica, aplicaciones financieras como análisis de riesgos y comercio de alta frecuencia, y análisis de datos como trabajar con datos de sensores de petróleo y gas.
Finalmente, dijo que esto podría funcionar con cualquier lenguaje que llame a tales bibliotecas. Señaló que reemplazar las bibliotecas puede no ser tan eficiente como escribir código personalizado para FPGA o GPU, pero es mucho más fácil.
Bitfusion planea ofrecer sus productos en tres modelos diferentes, como software puro para empresas que ya tienen sus propios aceleradores; preinstalado en electrodomésticos; o para aplicaciones implementadas en la nube, a través de una asociación con Rackspace. Inicialmente, esto usará Altera FPGA, aunque la compañía dice que también podría funcionar con otros procesadores. Rama dice que los clientes iniciales están usando esto ahora, con disponibilidad pública planificada en los próximos dos meses.
SRC está adoptando un enfoque algo diferente. Ha estado creando "servidores reconfigurables" para agencias gubernamentales desde 1999, y ahora está haciendo una solución dirigida a centros de datos de hiperescala y operaciones web. Llamado el servidor Saturn 1, es un cartucho que se conecta al chasis Moonshot de HP, y SRC afirma que puede proporcionar un rendimiento de la computadora que es típicamente 100 veces más rápido que el de los diseños tradicionales de microprocesadores. (La compañía también vende sistemas más grandes montados en bastidor y de tamaño completo, generalmente para sus clientes más grandes).
Lo que lo hace diferente es un compilador especial conocido como Carte, que convierte el código en un diseño de silicio que puede ejecutarse en la arquitectura FPGA, según el CEO Jon Huppenthal. Me dijo que SRC ha pasado años creando el compilador, inicialmente para clientes comerciales, desde que la firma fue fundada por el pionero de la supercomputadora Seymour Cray y Jim Guzy en los años 90. Dijo que una diferencia en el enfoque de SRC es que Carte no está destinado a sistemas genéricos, sino que está vinculado específicamente a la arquitectura de SRC, lo que le da más rendimiento y consistencia. El Saturno 1 usa dos FPGA de Altera, uno que ejecuta el código de usuario; el otro que mantiene el sistema funcionando rápidamente, junto con un procesador Intel. Actualmente, agregó, la compañía está en su 12ª generación de procesadores reconfigurables.
Esta es una solución más costosa, dirigida principalmente a centros de computación bastante grandes, pero aún es más accesible que los enfoques anteriores.
La idea de utilizar FPGA o procesadores reconfigurables para tareas más convencionales no es nueva. Sin embargo, ha tomado mucho tiempo para que esto se convierta incluso en una posibilidad para clientes más tradicionales fuera de los diseñadores de hardware o aplicaciones militares. Estos nuevos enfoques pueden presagiar el comienzo de esta tecnología cada vez más utilizada, pero solo si las mejoras de precio / rendimiento realmente coinciden con las afirmaciones de los proveedores y la tecnología se vuelve más fácil de usar. Los nuevos enfoques son un paso en esa dirección.