Ir al contenido

Aceleración hardware

La aceleración hardware de códigos de computación de alto rendimiento (HPC) se ha convertido en una práctica habitual en centros de datos e instalaciones de supercomputación, donde los procesadores gráficos (GPU) y el hardware reconfigurable (FPGA) pueden permitir incrementos muy significativos de rendimiento. Sin embargo, su impacto real en el rendimiento depende en gran medida de cada aplicación concreta y de las posibilidades que ofrece para paralelizar en estos dispositivos.

Las arquitecturas regulares de las GPU y de las FPGA configuradas con muchos núcleos idénticos se adaptan bien a cálculos sobre conjuntos de datos estructurados (p. ej., matrices multidimensionales) donde los patrones de acceso son predecibles, y el desarrollo de software paralelo para estas aplicaciones está bien soportado mediante lenguajes como CUDA (GPU) u OpenCL (GPU y FPGA).

Sin embargo, cuando se procesan conjuntos de datos no estructurados (p. ej., grafos), la naturaleza irregular de los cálculos y de los patrones de acceso a memoria plantea serias dificultades que, en algunos casos, se abordan mejor con diseños FPGA personalizados. En estos casos, el desarrollo de herramientas y lenguajes específicos de dominio es objeto de investigación en curso. En particular, el LSI tiene una larga experiencia en el desarrollo de métodos y herramientas de diseño FPGA para la simulación de códigos de dinámica de fluidos computacional (CFD) sobre mallas no estructuradas utilizadas por la industria aeronáutica.

Aceleración hardware

Actualmente, la investigación del LSI en aceleración basada en GPU y FPGA también explora los posibles beneficios al ejecutar códigos científicos que procesan imágenes espectrales obtenidas de radiotelescopios. Esta investigación se lleva a cabo dentro de la serie de proyectos AMIGA (AMIGA-5, AMIGA-6, AMIGA-7).