Resumen:
|
[EN] The exponential growth of hardware resources in recent decades has led to substantial software bloat, fostering the development of high-level programming languages that prioritize development efficiency over execution ...[+]
[EN] The exponential growth of hardware resources in recent decades has led to substantial software bloat, fostering the development of high-level programming languages that prioritize development efficiency over execution time and resource optimization. However, as the physical limits of transistor miniaturization are reached, this growth is slowing.
This presents a challenge for the software industry. Writing efficient, resource-conscious code is complex and time-consuming, while modern development paradigms focus on speeding up the process.
This thesis explores the use of reprogrammable hardware to bridge the gap between high-level abstractions and hardware. To this end, we developed LWVCG (Light-Weight Verilog Compiler Generator), a Python framework for specifying and generating hardware interpreters in Verilog. Using this framework, we implemented a hardware-based Just-In-Time (JIT) compiler for the SIMPLER language, a modification of SIMPL. Tested on two low-cost FPGAs (2x Lattice ICE40UP5K), this solution achieved 2x compilation speedup compared to the JavaScript V8 JIT compiler while operating at 1/250th of the clock frequency and consuming 1/16th of the power of an Intel i5-13400 CPU core.
[-]
[ES] El crecimiento exponencial de los recursos de hardware en las últimas décadas ha provocado un considerable hinchamiento del software, lo que ha fomentado el desarrollo de lenguajes de programación de alto nivel que ...[+]
[ES] El crecimiento exponencial de los recursos de hardware en las últimas décadas ha provocado un considerable hinchamiento del software, lo que ha fomentado el desarrollo de lenguajes de programación de alto nivel que priorizan la eficiencia del desarrollo sobre el tiempo de ejecución y la optimización de recursos. Sin embargo, a medida que se alcanzan los límites físicos de la miniaturización de los transistores, este crecimiento se ralentiza.
Esto supone un reto para la industria del software: escribir código eficiente y consciente de los recursos es complejo y requiere mucho tiempo, mientras que los paradigmas de desarrollo modernos se centran en acelerar el proceso.
Esta tesis explora el uso de hardware reprogramable para salvar la distancia entre las abstracciones de alto nivel y el hardware. Para ello, desarrollamos LWVCG (Light-Weight Verilog Compiler Generator), un marco de trabajo en Python para especificar y generar intérpretes de hardware en Verilog. Utilizando este marco, implementamos un compilador Just-In-Time (JIT) basado en hardware para el lenguaje SIMPLER, una modificación de SIMPL. Probada en dos FPGAs de bajo coste (2x Lattice ICE40UP5K), esta solución consiguió una velocidad de compilación 2 veces superior a la del compilador JIT JavaScript V8, a la vez que funcionaba a 1/250 de la frecuencia de reloj y consumía 1/16 de la potencia de un núcleo de CPU Intel i5-13400
[-]
[CA] El creixement exponencial dels recursos de maquinari en les darreres dècades ha
provocat un inflament considerable del programari, cosa que ha fomentat el desenvolupament de llenguatges de programació d’alt nivell ...[+]
[CA] El creixement exponencial dels recursos de maquinari en les darreres dècades ha
provocat un inflament considerable del programari, cosa que ha fomentat el desenvolupament de llenguatges de programació d’alt nivell que prioritzen l’eficiència del desenvolupament sobre el temps d’execució i l’optimització de recursos. No obstant això,
a mesura que s’assoleixen els límits físics de la miniaturització dels transistors, aquest
creixement s’alenteix.
Això suposa un repte per a la indústria del programari: escriure codi eficient i conscient dels recursos és complex i requereix molt de temps, mentre que els paradigmes de
desenvolupament moderns se centren a accelerar el procés.
Aquesta tesi explora lús de maquinari reprogramable per salvar la distància entre les
abstraccions dalt nivell i el maquinari. Per això, desenvolupem LWVCG (Light-Weight
Verilog Compiler Generator), un marc de treball a Python per especificar i generar intèrprets de maquinari a Verilog. Utilitzant aquest marc, implementem un compilador JustIn-Time (JIT) basat en maquinari per al llenguatge SIMPLER, una modificació de SIMPL.
Provada en dues FPGAs de baix cost (2x Lattice ICE40UP5K), aquesta solució va aconseguir una velocitat de compilació 2 vegades superior a la del compilador JIT JavaScript
V8, alhora que funcionava a 1/250 de la freqüència de rellotge i consumia 1/16 de la
potència dun nucli de CPU Intel i5-13400.
[-]
|