Michael Reiser es, como él dice, "fanático del tiempo". Neurocientífico en el Campus de Investigación Janelia del Instituto Médico Howard Hughes en Ashburn, Virginia, Reiser estudia visión de vuelo. Algunos de sus experimentos involucran colocar moscas en una arena virtual inmersiva - Reality Arena y redibujar sin problemas la escena mientras rastrean cómo responden los insectos. Los PC modernos, con sus complejos sistemas operativos y unidades de procesamiento central multitarea (CPU), no pueden garantizar la precisión temporal requerida. Así que Reiser, junto con ingenieros de Sciotex, una empresa tecnológica en Newtown Square, Pennsylvania, encontró una pieza de hardware informático que podría: una FPGA.
Una FPGA, o campo - matriz de puertas programables, es básicamente "mud electrónico", dice Bruno Levy, un científico informático y director del centro de investigación Inria Nancy Grand - est en Villers - l è s - Nancy, Francia. Es una colección de cientos o incluso millones de elementos lógicos no configurados en un chip de silicio que, como la arcilla, puede ser 'moldeado' - e incluso re-moldeado - para acelerar aplicaciones que van desde la alineación genómica hasta el procesamiento de imágenes hasta el aprendizaje profundo.
Supongamos que un investigador necesita procesar rápidamente los datos que fluyen de una cámara en trozos de 1.000 bits. La mayoría de las CPU modernas tienen procesadores de 64 - bits y tendrían que romper el problema en piezas más pequeñas. Pero es posible configurar una FPGA para hacer ese cálculo en un solo paso, dice la científica informática de Inria Nancy Sylvain Lefebvre. Incluso si cada paso de la FPGA es más lento que su contraparte de la CPU, "en realidad es una victoria, vas más rápido", dice, porque el problema no está roto. Las FPGAs sobresalen en aplicaciones que requieren tiempo preciso, velocidad - algoritmos críticos o bajo consumo de energía, añade.
Supercarga tus datos discutiendo con una tarjeta gráfica
Javier Serrano, gerente de diseño electrónico y software de bajo nivel en el CERN, el laboratorio de física de Europa cerca de Ginebra, Suiza, y sus colegas utilizaron FPGAs, además de White Rabbit -una extensión a medida del protocolo de red Ethernet- para crear un sistema que pueda capturar inestabilidades en el haz de partículas del Gran Colisionador de Hadrones con precisión en nanosegundos.
En Queens University Belfast, Reino Unido, el especialista en hardware informático Roger Woods está construyendo un sistema de cámara de fibra óptica que utiliza FPGAs para procesar imágenes multiespectrales de arterias coronarias lo suficientemente rápido como para su uso durante la cirugía. Y en Janelia, el científico senior Chuntao Dan ha creado un sistema de imágenes de bucle cerrado que puede interpretar y responder al posicionamiento de las alas voladoras a medida que vencen cada 5 milisegundos. El sistema operativo Windows de Microsoft introduce un agitador de tiempo de hasta 30 milisegundos, dice Dan. Pero usando una FPGA, "logramos todo el análisis en 145 microsegundos", lo que significa que la resolución temporal nunca es un problema a pesar de las limitaciones de una computadora convencional.
Las FPGAs se configuran utilizando un lenguaje hardware - descripción (HDL), como VHDL o Verilog, con el que los investigadores pueden implementar cualquier cosa desde LEDs parpadeantes hasta una CPU completa. Otra opción es Silice, un lenguaje con C - como sintaxis que Lefebvre, que la desarrolló, se ha atorado a Verilog. Cualquiera que sea el HDL que se utilice, una herramienta de síntesis lo traduce en una lista de elementos lógicos, y una herramienta de ruta lugar - y - coincide con los del chip físico. El flujo de bits resultante se muestra a continuación en la FPGA.
Hub de NatureTech
El código de configuración, o gateware, como lo llama Serrano, no es necesariamente difícil de escribir. Pero requiere una mentalidad diferente a la programación tradicional, dice Olof Kindgren, director y cofundador del Reino Unido, con sede en Free and Open Source Silicon Foundation. Mientras que el código de software es de procedimiento, el gateware es descriptivo. "Usted describe cómo los datos se mueven entre los registros en su diseño cada ciclo de reloj, que no es como piensan la mayoría de los desarrolladores de software", dice Kindgren. Como resultado, incluso investigadores conocedores computacionalmente podrían querer consultar a un especialista para exprimir la mayor velocidad de sus diseños.
La tecnología FPGA data de mediados de los años 80, pero las mejoras en el software de diseño lo han hecho cada vez más accesible. Xilinx (propiedad del fabricante de chips AMD) y Altera (propiedad de Chipmaker Intel) dominan el mercado, y ambos ofrecen herramientas de desarrollo y chips de diversa complejidad y costo. También existen un puñado de herramientas de código abierto, entre ellas Yosys (una herramienta de síntesis) y Nextpnr (lugar - y - Route), ambas desarrolladas por la científica en informática Claire Wolf, que es la directora de tecnología de la empresa de software YosysHQ, con sede en Viena. Lefebvre aconseja empezar con un tablero de FPGA listo - para - que incluye memoria y periféricos, como puertos USB y HDMI. El PYNQ Xilinx, que se puede programar usando Python, y el rompehielos Open - Hardware y ULX3S, son buenas opciones.
Los colaboradores de Reiser en Sciotex utilizaron una FPGA de National Instruments, con sede en Austin, Texas, que programaron utilizando el entorno gráfico de codificación LabVIEW de la compañía. El hardware, incluyendo componentes para la adquisición de datos, cuesta alrededor de US$5,000, dice Reiser. Pero con ella, obtuvo su respuesta: las moscas pueden reaccionar a mover objetos en su campo de visión aproximadamente el doble de rápido que la gente puede, encontró. Probar ese límite requirió una demostración de que su equipo podía refrescarse diez veces más rápido que las reacciones que estaban sondeando. "Nos gusta la precisión temporal", dice Reiser. "Hace nuestras vidas mucho más fáciles."