¿Por qué parece haber tan poca investigación en informática reconfigurable?

La informática reconfigurable está lejos de ser una “etapa inicial” … ha estado con nosotros desde mediados de la década de 1980, poco después de que los FPGA obtuvieran aceptación comercial. También es bastante viable y existen, hoy en día, miles de sistemas reconfigurables basados ​​en FPGA, principalmente en finanzas, análisis de big data y defensa.

Esa es también la razón por la cual hay una investigación publicada algo limitada: esas categorías: finanzas, análisis de big data y defensa también son dominios donde el trabajo es altamente propietario o clasificado. Las personas que realmente realizan el proyecto no pueden publicar.

La informática reconfigurable también depende extraordinariamente de la aplicación. La realidad es que para cada nueva aplicación, el equipo de desarrollo está creando un nuevo “chip personalizado” … esto NO es fácil ni rápido. Si bien lo que uno aprende desarrollando “Aplicación-A” es útil al hacer “Aplicación-B”, la mayor parte del código no es portátil, el equipo continuamente “reinventa la rueda”. Esto significa que las aplicaciones son muy caras y, por lo tanto, deben ofrecer una recuperación de riesgo-recompensa muy alta.

La mayoría de las aplicaciones nuevas son fallidas, lo que hace que la administración sea “tímida”, las razones principales son:
a) Falta de experiencia en el equipo de desarrollo que conduce a muchos comienzos falsos, callejones sin salida y fallas tempranas.
b) El proyecto se vendió de manera oculta a la gerencia, lo que resultó en abandono y desagrado futuro, porque:
1) Los resultados esperados fueron exagerados.
2) El nivel de esfuerzo fue muy subestimado.
3) El tiempo del calendario necesario fue muy subestimado.
4) El costo de las herramientas y los recursos humanos experimentados fue subestimado.

Todo dicho: la Computación reconfigurable se utiliza con gran éxito cuando: a) se aplica al dominio del problema correcto, b) no se vende en exceso, c) se dedica tiempo y recursos adecuados al proyecto, d) admite una solución de procesador heterogénea y no se espera que esté solo.

Salud !!

Hemos investigado la informática reconfigurable y todavía lo estamos haciendo, pero no de la forma en que la mayoría de la gente piensa.

Es importante tener en cuenta que “reconfigurable” es un término muy flexible: un procesador programable es, en cierto sentido, un dispositivo reconfigurable . (Si lees la historia de Intel y cómo dejaron caer recuerdos para los microprocesadores, apreciarás la gran idea que tenían los procesadores programables de silicio en ese momento). Cuando las personas hablan de computación reconfigurable, generalmente piensan en FPGA, aunque nosotros puede soñar con los demás. La comparación es útil porque la configuración lógica de un dispositivo similar a FPGA es la misma que una instrucción de muchas maneras importantes:

  • Se necesita espacio de silicio y poder para soportar.
  • Ocupa ancho de banda de memoria e incurre en penalizaciones de latencia para cargarlo en el dispositivo.
  • Si puede construir un dispositivo no programable o menos programable, puede ser mucho más eficiente en términos de energía y espacio. Simplemente configure los datos y presione el botón Ir.

¿Mi punto? La lógica reconfigurable sufre los mismos problemas que afectan a otras formas de computación . Muchos investigadores lo tocan por un tiempo y se rinden. Jugué con FPGA e ideas similares durante aproximadamente un año en 2004–05 y me di cuenta de que los problemas de primer orden eran exactamente los mismos que en otras plataformas informáticas. Perdí suficiente tiempo en Itanium para querer evitar otro callejón sin salida de investigación.

Aquí hay algunos problemas específicos que recuerdo haber encontrado:

  1. Uno de los mayores problemas con la informática en general es la latencia de memoria y el ancho de banda. Incluso con un FPGA con memorias integradas, necesita una herramienta de partición / mapeo realmente buena o un equipo de ingenieros, y una aplicación que sea capaz de mapear en primer lugar.
  2. Las configuraciones lógicas eran de gran volumen de datos y tratar de cargarlas durante el tiempo de ejecución eliminó la mayor parte o la totalidad de la ganancia potencial de rendimiento. Necesita una situación de carga única.
  3. No podemos tener la mayoría de los transistores en un chip activo al mismo tiempo, porque consumen demasiada energía. La lógica reconfigurable quema energía. Tener transistores es barato, usarlos no lo es. Este hecho se estaba volviendo muy obvio para los procesadores de escritorio y servidor hace 15 años, y los procesadores de teléfonos inteligentes lo han hecho más evidente y restrictivo.
  4. Si el mercado es lo suficientemente grande o si tiene suficientes transistores de repuesto en su chip, usted fabrica un ASIC personalizado para esa clase de aplicaciones: mejor rendimiento y menor potencia sobre los FPGA. Las GPU son un ejemplo. Ahora que tenemos ambos, si algo se puede mapear bien con una combinación de procesadores superescalares y GPU, puede tener más sentido desde el punto de vista financiero y de rendimiento que los FPGA o ASIC personalizados.

La conclusión de que mi asesor de doctorado Wen-mei Hwu y yo llegamos hace 13 años es que, en lugar de hacer una lógica reconfigurable genérica, tienen dos o más tipos diferentes de estructuras informáticas (por ejemplo, CPU superescalares, GPU, etc.) conectadas a una red, y encienda el tipo y la cantidad de componentes apropiados que necesita cuando los necesita . Eso es lo que hacen los teléfonos inteligentes hoy. Si usa mucho la GPU en un iPhone, lo sabría: el teléfono se calienta rápidamente y la batería restante cae como una roca. Pero si estás viendo un video, no lo hace, porque hay un motor específico para eso. El último chip de Apple incluso tiene múltiples tipos de procesadores “normales”, uno para bajo consumo de energía.

Dicho todo esto, hay otro tipo de paradigma de computación reconfigurable que actualmente está siendo explorado por una startup en modo sigiloso. Actualizaré esta respuesta cuando se me permita.

More Interesting

¿Es necesario investigar durante la licenciatura para ingresar a un programa de maestría en Ciencias de la Computación?

¿Cómo debo seleccionar un tema de trabajo de investigación único y excelente en informática?

¿Cómo los estudiantes de posgrado mejoran su código, ya que no existe un proceso formal?

¿Cuál es la forma más eficiente de transferir datos entre MATLAB y Python?

Informática teórica: ¿Cómo es hacer una investigación en privacidad diferencial?

¿Qué se necesita para obtener un trabajo académico con tenencia en las 20 mejores universidades de los Estados Unidos? ¿Haber trabajado en la industria cuenta contra un candidato?

¿Quiénes son algunos grandes científicos informáticos con una sólida formación en física?

¿En qué medida la reciente gran donación de Brendan Iribe, CEO de Oculus VR, al departamento de informática de la Universidad de Maryland (UMD) ayudará al departamento? Si se usa correctamente, ¿puede UMD convertirse en uno de los 5 mejores lugares para la informática?

¿Cuál es el mejor lugar para la investigación a tiempo completo en arquitectura de computadoras en Bangalore que no sea IISC? Estar en el campo de la enseñanza, ¿cuál es la mejor opción?

¿Cuál es el panorama actual del lenguaje de programación?

¿Hay algún buen tema de investigación en arquitectura de computadoras que involucre programación para mostrar resultados finales?

¿Cuáles son las diversas aplicaciones de las computadoras en el campo del entretenimiento?

¿Sabemos si la factorización es más difícil que el isomorfismo gráfico?

Computational Science (Scientific Computing): ¿Cuál es el alcance de un estudiante de física BS interesado en CS y programación?

¿Dónde debería comenzar investigando las recomendaciones sociales?