Este artículo es un resumen de una discusión de tres horas en la Universidad de Stanford en septiembre de 2019 entre los autores. Ha sido escrito con experiencias combinadas en y con organizaciones como Zilog, Altera, Xilinx, Achronix, Intel, IBM, Stanford, MIT, Berkeley, Universidad de Wisconsin, el Technion, Fairchild, Bell Labs, Bigstream, Google, DIGITAL (DEC), SUN, Nokia, SRI, Hitachi, Silicom, Maxeler Technologies, VMware, Xerox PARC, Cisco, y muchos otros. Estas organizaciones no son responsables del contenido, pero pueden haber inspirado a los autores de alguna manera, para llegar al colorido paseo a través del espacio FPGA descrito aquí.
Las matrices de puertas programables (FPGAs) han estado golpeando un nervio en la comunidad ASIC desde su creación. A mediados de los 80, Ross Freeman y sus colegas compraron la tecnología de Zilog y crearon Xilinx, apuntando a los mercados de emulación y educación de la ASIC. (Zilog salió de Exxon, ya que en la década de 1970 la gente ya temía que el petróleo se agotara en 30 años, lo que sigue siendo cierto hoy en día). Paralelamente, Altera fue fundada con una tecnología similar en su núcleo.
Un FPGA es un chip que se programa por un circuito. Se dice que «emula» ese circuito. Esta emulación es más lenta de lo que el circuito real funcionaría si se implementara en un ASIC, tiene una frecuencia de reloj más lenta y utiliza más energía, pero puede ser reprogramado cada pocos cientos de milisegundos.
La gente que fabrica ASIC comenzó a usar FPGAs para emular sus ASIC antes de comprometerlos con una máscara y enviarlos a la fábrica para ser fabricados. Intel, AMD y muchas otras compañías usan FPGAs para emular sus chips antes de fabricarlos.
La industria de las telecomunicaciones ha sido una gran usuaria de las FPGAs. Las normas de telecomunicaciones siguen cambiando y la construcción de equipos de telecomunicaciones es difícil, por lo que la empresa que envía las soluciones de telecomunicaciones primero tiende a capturar la mayor parte del mercado. Dado que los ASIC tardan mucho tiempo en hacerse, las FPGAs ofrecen la oportunidad de un atajo. Las FPGAs comenzaron a adoptarse para las primeras versiones de equipos de telecomunicaciones, lo que inició el conflicto de precios de las FPGAs. Mientras que el precio de la FPGA no importa para el mercado de emulación de ASIC, el precio de un chip para telecomunicaciones es importante. Hace muchos años, AT&T y Lucent fabricaron sus propias FPGAs, llamadas ORCAs (conjuntos celulares reconfigurables optimizados), pero no eran competitivas con Xilinx o Altera en cuanto a velocidad o tamaño del silicio.
Hoy en día, Huawei es el mayor cliente de FPGAs. Es posible que la reciente tensión entre los EE.UU. y China comenzara con las FPGAs de los EE.UU. dando a Huawei una ventaja en la entrega de equipos de telecomunicaciones 5G dos años antes de que cualquier otro vendedor alrededor del mundo se preparara para jugar.
El precio de la FPGA golpea un nervio. Al principio, los FPGAs se utilizaban para radios definidas por software (SDR), construyendo radios para la comunicación en muchos estándares diferentes al mismo tiempo, en esencia teniendo un solo teléfono que habla muchos idiomas. Esta vez, los FPGAs golpearon un gran nervio. Hubo una división en la forma en que se implementó la tecnología SDR. Los vendedores comerciales desarrollaron soluciones rentables, y hoy en día cada estación base del planeta tiene tecnología SDR. En la comunidad de defensa, por otro lado, las SDR fueron construidas por grandes contratistas de defensa con rentables líneas de productos heredados para proteger. El resultado fue que el precio de los productos de radio basados en FPGA era tan alto que una parte del mercado de defensa de EE.UU. tuvo una reacción alérgica persistente a su uso.
A continuación, las FPGAs trataron de crecer en los mercados de DSP (procesador de señal digital) y de embebidos. Comenzaron a aparecer FPGAs con pequeños microprocesadores duros en la esquina. La presión para vender estas nuevas FPGAs era tan alta que si los clientes rechazaban la nueva familia de chips, se les ponía en una lista negra, y a veces incluso rechazaban el servicio durante unos meses. La presión para hacer crecer el mercado de las FPGA era y sigue siendo inmensa, así como la magnitud de los fracasos de las empresas de FPGA para conquistar nuevos mercados, dada la imposibilidad de reducir el precio de los productos de FPGA debido a su enorme superficie y capas de propiedad intelectual.
Golpeando un nervio en el HPC y en los centros de datos. Durante los últimos años, los FPGAs han tratado de crecer en los mercados de la computación de alto rendimiento (HPC) y de los centros de datos. En 2017, Microsoft anunció su uso de Altera FPGAs en el centro de datos, e Intel compró Altera. En 2018, Xilinx anunció su estrategia «Datacenter First», con el CEO de Xilinx declarando ante una audiencia de analistas que Xilinx no es una empresa de FPGAs más. Esto puede haber sido una ligera dramatización, pero históricamente hay relevancia.
En el uso de HPC y del centro de datos de las FPGAs, el principal obstáculo hoy en día es lugar y ruta-el tiempo que lleva ejecutar el software propietario del proveedor de FPGA que mapea el circuito en los elementos de la FPGA. En las grandes FPGAs y en un servidor de CPU rápido, el lugar y la ruta tardan hasta tres días, y muchas veces incluso después de tres días el software no encuentra un mapeo.
Golpeando un nervio en el petróleo y el gas. Sin embargo, en las implementaciones de petróleo y gas, alrededor de 2007 se abrió un nicho. El tiempo que le tomó a las computadoras clásicas simular la perforación de agujeros en la tierra para encontrar petróleo fue más largo que la construcción real de un sitio de perforación y la perforación misma. El uso de aceleradores FPGA cambió dramáticamente este tiempo al revés. Los primeros FPGAs en el centro de datos de una compañía petrolera, computando imágenes sísmicas, fueron construidos por Maxeler Technologies y entregados a Chevron.3
El uso de FPGAs en el petróleo y el gas se expandió durante algunos años, hasta que la presión de la industria de la ASIC llevó a un retorno a la tecnología estándar de la CPU. Hoy en día la predicción y las simulaciones en el petróleo y el gas siguen siendo importantes, y las imágenes sísmicas se realizan principalmente en las CPU y las GPU, pero la oportunidad de las FPGAs todavía existe. Se nos recuerda que «las cosas nuevas de hoy son el legado de mañana», y, por supuesto, las cosas nuevas de hoy son la IA y el enfoque en los datos.
A pesar de todo ello, las FPGAs siguen siendo un medio rápido de comercialización, una forma sencilla de obtener una ventaja competitiva y una tecnología indispensable para muchas situaciones de misión crítica, aunque sean caras en comparación con las ASIC. Sin embargo, en el HPC y en el centro de datos, las FPGAs tienen costos operativos significativamente menores en comparación con el software que se ejecuta en las CPU o las GPU. Se necesitan menos FPGAs, que requieren mucho menos enfriamiento que las CPU y las GPU. Las FPGAs hacen que los centros de datos sean más pequeños, lo que pone en aprietos a los operadores que temen que sus centros de datos se reduzcan.
ASIC vs. FPGA. Otra forma de usar los FPGAs es complementar los ASIC. Los ASIC están construidos para mantener una funcionalidad fija mientras se agregan FPGAs para proporcionar cierta flexibilidad para los cambios de último minuto o la adaptabilidad de los productos a los diferentes mercados.
Las FPGAs modernas están integrando más funcionalidad y se están pareciendo cada vez más a los ASIC, mientras que los ASIC a veces añaden un poco de tejido de FPGA en su diseño para depuración, pruebas, correcciones en el campo y flexibilidad para añadir pequeños trozos de funcionalidad según sea necesario.
Sin embargo, los equipos del ASIC siempre luchan contra el concepto de FPGA. Los diseñadores del ASIC preguntan, «¿Qué funcionalidad quieres?» y se impacientan si la respuesta es, «No lo sé todavía».
Uno de estos nuevos campos de batalla es la industria automovilística autónoma. Dado que los algoritmos cambian constantemente, y las leyes podrían cambiar cuando los coches están en el campo, requiriendo actualizaciones de los conductores, la solución tiene que ser flexible. Los FPGAs tienen una frecuencia de reloj más baja, y por lo tanto, menores disipadores de calor, lo que resulta en un tamaño físico más pequeño que las CPU y las GPU. El menor consumo de energía y el menor tamaño hacen que las FPGAs sean la elección obvia. Sin embargo, las GPU son más fáciles de programar y no requieren un lugar y una ruta de tres días.
Además, es fundamental poder ejecutar el mismo código en el coche y en la nube (principalmente para la simulación y las pruebas), por lo que los FPGAs tendrían que estar disponibles en la nube antes de poder ser utilizados en el coche. Por estas razones, muchos desarrolladores prefieren las GPU.
Volver al principio
Evolución del FPGAS
Los FPGAs están evolucionando. Las interfaces modernas están tratando de hacer que las FPGAs sean más fáciles de programar, más modulares y más cooperativas con otras tecnologías. Las FPGAs soportan buses de Interfaz Extensible Avanzada (AXI), que las hacen más fáciles de programar pero también introducen enormes ineficiencias y hacen que las FPGAs sean menos per-formantes y, en última instancia, mucho menos competitivas. Trabajos académicos, como el de Eric Chung sobre redes dinámicas para FPGAs,1 ayuda con el problema de las rutas, pero esas ideas avanzadas aún no han sido recogidas por la industria.
Los equipos del ASIC siempre luchan contra el concepto de la FPGA. Los diseñadores del ASIC preguntan, «¿Qué funcionalidad quieres?» y se impacientan si la respuesta es, «No lo sé todavía».
¿Cómo se conectan los FPGAs? Para cargas de trabajo de HPC con grandes flujos de datos, se puede utilizar PCI Express y desplegar técnicas de ocultación de comunicaciones. Pero, ¿qué hay de las pequeñas cargas de trabajo, como las que se encuentran en la virtualización de funciones de red (NFV), que sirven a un gran número de usuarios al mismo tiempo? Para la NFV y la aceleración de máquinas virtuales en general, la FPGA debe conectarse directamente a la CPU, posiblemente utilizando la coherencia de la caché como mecanismo de comunicación, como se investiga en estos días por VMware. Por supuesto, una característica clave es la capacidad de bloquear la FPGA sin bloquear la CPU, y viceversa. Las empresas de tecnología hiperescalar están redescubriendo los requisitos de los días de los mainframes de IBM, conduciendo cada vez más complejidad hacia plataformas estandarizadas.
También hay oportunidades para las masas. Al ofrecer plataformas FPGA, las organizaciones sin los presupuestos para el desarrollo del ASIC y sin el conocimiento de los últimos desafíos y soluciones de fabricación de silicio pueden desarrollar circuitos y construir ventajas competitivas en sus productos, como las nuevas oportunidades de computación en el borde de la red de la Internet de las Cosas (IoT), cerca de los sensores, las pantallas o simplemente en línea en el cable, a medida que los datos fluyen.
Mientras tanto, las compañías de FPGA están empujando verticalmente hacia arriba la pila y hacia el zócalo de la CPU, donde Intel está dominando el mercado, incluyendo, por ejemplo, instrucciones especiales para NFV. Las principales barreras para la entrada de nuevas CPU y FPGAs en el centro de datos no son sólo la velocidad y el coste, sino también la disponibilidad de software y controladores para todos los dispositivos de E/S posibles.
La clave para que las FPGAs funcionen en el centro de datos es facilitar su uso, por ejemplo, con herramientas automáticas que impulsen el uso de las FPGAs sin dificultades de lugar y ruta. Microsoft fue pionera en el uso de FPGAs en un centro de datos hiperescalar para acelerar los algoritmos Bing, NFV y AI. Microsoft también construyó abstracciones, lenguajes específicos para cada dominio e infraestructuras de hardware flexibles. Comercialmente, el principal problema de los FPGAs es la estrategia de comercialización.
Construyendo nuevos chips y entonces empezar a pensar en el software es demasiado tarde. ¿Cómo se extrae valor del software existente adaptando el hardware para que sirva al software? Esto también trae una oportunidad para repensar la arquitectura FPGA. Sin embargo, una advertencia: La industria del silicio devora el dinero. La construcción de ASICs es un juego de póquer con apuestas mínimas que aumentan a lo largo de los años. Es un juego en el que el ganador se lleva todo, y cualquier amenaza como las FPGAs son eliminadas al principio de la carrera.
Los FPGAs están creando riesgos adicionales e indeseables para los proyectos de silicio.
Volver al principio
Tecnología de nicho
Mientras que un diseñador de software siempre dirá, «Si puede se haga en el software, se será en el software», el diseñador del ASIC dirá, «Si puede se haga en un ASIC, se será se haga en un ASIC». Lo más interesante es que, «Si se puede hacer en un software, no tienes que lidiar con el tipo que piensa como un FPGA». Las FPGAs tienen una pequeña comunidad de muchos programadores, a veces excéntricos, comparada con los ejércitos necesarios para hacer ASIC y con la población mundial de programadores de software. Las compañías de FPGA son pequeñas. La comunidad de FPGAs es pequeña.
Intel está conduciendo FPGAs para la flexibilidad. Es la compañía más exitosa siguiendo el principio de construir el hardware para ejecutar el software existente.
Las FPGAs pueden ser más rápidas que las CPU y las GPU, pero la dura lección de la industria y de la comunidad inversora es que la mayor parte del tiempo durante la existencia de un ordenador, la velocidad no importa, y el tiempo real no importa. Por lo tanto, comprar una computadora sólo por la velocidad es raro. Sucede, pero es más un evento aleatorio que un mercado en el que construir un negocio. Además, las FPGAs no tienen un modelo de programación estándar, de código abierto y agradable, y por lo tanto no hay un mercado estándar para programas FPGA que funcionen en todos los chips de FPGA o que puedan ser fácilmente compilados de forma cruzada. Maxeler Technologies tiene una solución de alto nivel para proporcionar tal interfaz, pero la amplia adopción de la industria requiere confianza. Para pasar de ser los primeros en adoptarla a beneficiar a todo el mundo, la confianza requiere la alineación y el apoyo de los proveedores establecidos en el espacio del centro de datos.
Las aplicaciones que la gente en el mundo real dice, «No me importa lo que es, sólo dame una manera de hacer lo que quiero hacer». ¿Cuáles son las posibles áreas de aplicación para las FPGAs que aún no han sido ampliamente exploradas? Para la computación en tiempo real, está la fabricación. Para la visión por computador de los drones, es la ventaja de peso y potencia de los FPGAs. En un satélite es muy caro hacer actualizaciones de hardware, por lo que las FPGAs proporcionan una flexibilidad a largo plazo que puede ser crítica. Los FPGA necesitan encontrar un producto que resuene, y deben ser fáciles de programar. No es sólo el hardware o el software, es el ecosistema. Es la solución completa.
Una forma de expandirse más allá de los confines del mercado actual es la compilación en tiempo real y la generación automática de programas FPGA. Esto es más fácil de decir que de hacer, pero la oportunidad está creciendo con la IA que está destrozando el espacio de aplicaciones. Hoy en día, todo se hace con la IA; incluso los algoritmos tradicionales como las imágenes sísmicas para petróleo y gas están incorporando la IA. Se necesita una solución científica y de ingeniería para lidiar con los bloques de IA. Las FPGAs podrían ser un buen punto de partida, tal vez inicialmente para conectar los bloques de IA y luego incorporarlos al tejido de la FPGA, como los chips de próxima generación de Xilinx, con tejido de IA, CPUs, interfaces de 100G y celdas FPGA, todo en el mismo chip de 7 nm.
Desde otra perspectiva, con los chips de IA produciendo y consumiendo grandes cantidades de datos, se necesitarán FPGAs para alimentar a la bestia y alejar las salidas rápidamente. Con todos los nuevos ASIC para el procesamiento de la IA que están saliendo, los FPGAs podrían proporcionar una diferenciación a las compañías de chips de IA.
Volver al principio
Predicciones
¿Podrían haberse previsto los siguientes acontecimientos hace 10 o 25 años?2 Mientras que el mundo cambia, las predicciones parecen seguir siendo las mismas.
- Habrá chips de servidor CPU+FPGA exitosos, o FPGAs con acceso directo a la jerarquía de caché del CPU. Algunos dicen que sí, y otros que no.
- Sistema en un chip (SoC) Los chips FPGA crecerán y se expandirán, impulsando las industrias médica, de telecomunicaciones de última generación y automotriz, entre otras.
- Los desarrolladores usarán las FPGAs para hacer cosas asombrosas y hacer del mundo un lugar mejor, pero tendrán que ocultar el hecho de que hay una FPGA en su interior.
- El nombre FPGA permanecerá, y se construirán chips llamados FPGAs, pero todo en el interior será completamente diferente.
- Al renunciar a la optimización (de flujo de datos) para facilitar la programación de las FPGAs, el rendimiento de las FPGAs se reducirá, por lo que ya no serán competitivas con las CPU, que siempre serán más fáciles de programar.
- Habrá FPGAs con enrutamiento dinámico, interconexión evolutiva y movimiento de datos flexible en tiempo de ejecución.
- El software de lugar y ruta, así como la pila completa de software encima de las FPGAs, será de código abierto. Ya hay esfuerzos iniciales con Yosys y Lattice FPGAs.
- Todas las arquitecturas de semiconductores se combinarán en un solo chip con combinaciones de TPU, GPU, CPU, ASIC y FPGAs. Algunas pueden ser combinaciones del conjunto de cada una. Otras serán combinaciones de partes de cada una.
- Más chips se centrarán en espacios de aplicación limitados, y menos en chips de uso general. En cierto modo, todo se está convirtiendo en un SoC.
Volver al principio
Comentario final
¿Cuántos conflictos se resuelven con este artículo y cuántos nuevos se crean? En este sentido, un conflicto es un desafío a una forma de hacer las cosas existente. Tal forma existente de hacer las cosas puede tener implicaciones para la forma de pensar de la gente y, por lo tanto, para la forma de actuar. Pero quizás más importante, habrá implicaciones en cómo nos ganamos la vida los desarrolladores.
Artículos relacionados
en queue.acm.org
Programación de la FPGA para las masas
David F. Bacon, Rodric Rabbah, Sunil Shukla
https://queue.acm.org/detail.cfm?id=2443836
FPGAs en centros de datos
Gustavo Alonso
https://queue.acm.org/detail.cfm?id=3231573
Futuro reconfigurable
Mark Horowitz
https://queue.acm.org/detail.cfm?id=1388771
Volver al principio
Referencias
1. Chung, E. CoRAM: Una arquitectura de memoria en la tela para la computación basada en FPGA. Tesis doctoral, 2011. Universidad Carnegie Mellon, Pittsburgh, PA, USA.
2. Máquinas de computación personalizadas programables en el campo. Predicciones del FCCM, 2012; https://www.fccm.org/past/2012/Previous.html.
3. Nemeth, T., Stefani, J., Liu, W., Dimond, R., Pell, O., Ergas, R. Una implementación de la ecuación de la onda acústica. En Las actas del 78th Reunión de la Sociedad de Geofísicos de Exploración(Las Vegas, NV, 2008).
Volver al principio
Los derechos de autor pertenecen a los autores/propietarios. Derechos de publicación licenciados a ACM.
Solicite permiso para publicar en permissions@acm.org
La Biblioteca Digital es publicada por la Asociación de Maquinaria de Computación. Derechos de autor © 2020 ACM, Inc.
No se han encontrado entradas