[en] Nowadays, new computing platforms are becoming increasingly heterogeneous and parallel, made up of different types of devices that combine and interconnect to form ever larger and more complex systems. This trend can be seen in the TOP500 list of the 500 most powerful supercomputers in the world. Therefore, it is very relevant to provide programmers with programming tools that can leverage highly specialised computing units in heterogeneous systems, with the flexibility to adapt to the scale level of the application and platform. The integration of these devices in a parallel computing environment presents complex challenges in terms of portability and performance. Different proposals for programming and compilation models for heterogeneous systems are being formalised and implemented. For example, Kokkos, HPX, Raja or the SYCL standard with its practical implementations. However, these solutions still have shortcomings in achieving efficient implementations of programs that simultaneously use different types of devices. Controllers is a heterogeneous programming model developed by the Trasgo Research Group of the Computer Science Department of the University of Valladolid that allows portability between different devices (FPGAs, GPUs, CPUs and Xeon Phi accelerators). The current system supports AMD graphics cards through OpenCL (Open Computing Language), a general purpose API, designed to be used in a variety of devices, which implies an added level of abstraction that could prevent exploiting the specific potential of the devices. This project proposes to perform preventive and perfective maintenance of the Controllers system to support AMD graphics cards by integrating HIP/ROCm technology. ROCm is currently maintained by AMD and is therefore expected to be optimised for their devices, offering improved performance and better compatibility. In addition, an experimental study is proposed to measure its efficiency.

[es] Actualmente, las nuevas plataformas computacionales son cada vez más heterogéneas y paralelas, formadas a partir de diferentes tipos de dispositivos que se combinan e interconectan para formar sistemas cada vez más grandes y complejos. Esta tendencia la podemos observar en la lista TOP500, que recoge los 500 supercomputadores más potentes del mundo. Por tanto, es muy relevante proveer a los programadores de herramientas de programación que puedan aprovechar unidades de cómputo altamente especializadas en sistemas heterogéneos, con flexibilidad para adaptarse al nivel de escala de la aplicación y la plataforma. La integración de estos dispositivos en un entorno de cómputo paralelo plantea desafíos complejos en términos de portabilidad y rendimiento. Diferentes propuestas de modelos de programación y compilación para sistemas heterogéneos se están formalizando y llevando a la práctica. Por ejemplo, Kokkos, HPX, Raja o el estándar SYCL con sus implementaciones prácticas. Sin embargo, estas soluciones tienen a día de hoy carencias para conseguir implementaciones eficientes de programas que utilicen simultáneamente diferentes tipos de dispositivos. Controllers es un modelo de programación heterogéneo desarrollado por el Grupo de Investigación Trasgo del Departamento de Informática de la Universidad de Valladolid que permite la portabilidad entre diferentes dispositivos (FPGAs, GPUs, CPUs y aceleradores Xeon Phi). El sistema actual da soporte a las tarjetas gráficas AMD mediante OpenCL (Open Computing Language), API de propósito general, diseñada para poder ser utilizada en una variedad de dispositivos, lo que implica un nivel de abstracción añadido que podría impedir explotar el potencial específico de los dispositivos. Este proyecto propone realizar un mantenimiento preventivo y perfectivo del sistema Controllers para dar soporte a las tarjetas gráficas AMD mediante la integración de la tecnología HIP/ROCm. ROCm está mantenido actualmente por AMD, por lo que se prevé que esté optimizada para sus dispositivos, ofrezca un mejor rendimiento y una mayor compatibilidad. Adenás se propone la realización de un estudio experimental para medir su eficacia.