Comparación del uso de lenguajes de alto nivel (High Level Synthesis, e.g. OpenCL) y lenguajes de bajo nivel (Hardware Description Languages, e.g. VHDL y Verilog) para sintetizar kernels en las FPGAs modernas. Caso de estudio: operaciones destacadas de álgebra densa y dispersa (gemm y spmv).
La masificación de los procesadores multi-core, menos de dos décadas atrás, y la posterior adopción de las tarjetas gráficas (GPUs) como procesadores de propósito general implicaron una revolución en el campo del hardware para grandes volúmenes de cómputo. Más recientemente, esta revolución alcanzó a los Field–Programmable Gate Arrays (FPGAs). El creciente interés por plataformas de hardware energéticamente eficientes transforma a las FPGAs en una opción altamente atractiva en comparación con otros dispositivos multi-core. Esto ha motivado, entre otras cosas, la incursión en el terreno de las FPGAs de grandes fabricantes de hardware como Intel, que recientemente se fusionó con el fabricante de FPGAs Altera.
En este proyecto se espera estudiar en profundidad las herramientas de alto nivel para desarrollar kernels para FPGAs, en especial OpenCL. Entender, identificar y caracterizar las brechas en desempeños entre el uso de HDLs y HLSs, tanto desde el punto de vista de tiempo de cómputo como de consumo energético. Las comparaciones se centrarán en kernels paradigmáticos del álgebra lineal, como son la multiplicación de matrices densas (gemm) y la multiplicación de una matriz dispersa por un vector denso (spmv).
Más info