¿Aceleración de hardware para el dictado de Python?

0

Me pregunté si sería posible acelerar en el hardware que dictaba Python. Los dictados son asignaciones entre una clave y un valor que forman una gran parte de la columna vertebral de cómo funciona Python. Todo es un objeto; los objetos se construyen con dictados.

He oído hablar de CAM (memorias direccionables de contenido), pero aparte de una similitud en el nombre, no sé si podrían ayudar en algún experimento mental para crear una computadora optimizada para ejecutar Python. (Un equivalente a las máquinas optimizadas Forth, Java y Lisp).

Cualquier idea y referencia apreciada.

    
pregunta Paddy3118

1 respuesta

4

La respuesta es un "Sí" vigilado: es posible, pero probablemente no valga la pena comercialmente. La aceleración de hardware para los idiomas OO fue una vez un tema candente, pero se extinguió hace unos 25 años.

Un proyecto fue el Linn Rekursiv . Coincidió con el rápido aumento del hardware RISC y no duró lo suficiente como para ver su caída desde el borde de ataque. Probablemente el mejor artículo publicado fue artículo de Dick Pountain's Byte . Imagen de la placa Rekursiv aquí ...

Entonces, si bien el proyecto Rekursiv demostró la viabilidad de sus ideas, su complejidad agregada (aproximadamente 70000 compuertas en lugar de 20000 para un RISC, ¡y todas esas puntas adicionales!) lo hizo económicamente poco atractivo en los pequeños ASIC de la época. Ahora, con presupuestos de millones de empleados, podría permitirse esa lógica adicional y apenas notar el costo, pero la industria está tan arraigada en la práctica actual que tendría que demostrar una gran ventaja, e incluso entonces, (como muchos otros). tecnologías disponibles) apenas se notaría, luego (en el mejor de los casos) se ignoraría cortésmente. (Divulgación de interés: si esta cuenta parece amarga y distorsionada; yo era uno del equipo de Rekursiv)

Ahora, si necesita un enlace dinámico en un programa C ++, puede ver cómo su CPU avanza con dificultad a través de la tabla de métodos después de la tabla de métodos buscando la función correcta a la que llamar, en lugar de un hash de método acelerado por hardware en 6 ciclos (con el más común " primitivos "no solo se envían sino que se completan más rápido que eso).

Un FPGA en una placa con una interfaz PCIe se puede utilizar como un coprocesador para una CPU normal, y puede descargar material pesado computacionalmente al FPGA. Sin embargo, la interfaz PCIe es bastante lenta, por lo que el costo de la operación descargada debe ser bastante alto antes de que valga la pena.

Algunos FPGA incorporan una CPU cercana al tejido FPGA y pueden servir como una forma de crear un prototipo de sus ideas con menos sobrecarga que las Bus PCIe (pero con una CPU de menor rendimiento): ¡Ojalá hubiera existido en los días Rekursiv!

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas