[en] In this Final Degree Project, carried out in collaboration with the Barcelona Supercomputing Center and the Universitat Politècnica de Catalunya, I tackled the challenge of instrumenting AMD's HIP programming environment to generate execution traces in applications using AMD GPUs. This approach is significant due to the increasing adoption of HIP as an alternative to NVIDIA's CUDA, particularly in systems that solely incorporate AMD hardware. The main objective of the project was to enhance the functionality of the Extrae tool, which is used for application instrumentation and execution data collection, to include support for the HIP runtime. This extension also involved integration with the Paraver tool, enabling the visualization and analysis of the generated traces. Special emphasis was placed on supporting multiple runtimes and execution environments, specifically HIP, OpenMP, and OpenMPI, and their interoperability; this is essential for performance analysis in high-performance computing environments at the accelerator, node, and cluster levels. Secondary objectives included the evaluation of existing performance analysis tools, the development of a customized profiler for HIP, and the assessment of various interposition methods to capture specific events and operations in HIP. To manage the project effectively, I adopted an Agile methodology organized into sprints, which allowed for flexible and adaptive planning. I utilized project management tools such as Trello and planning techniques like Gantt charts to monitor progress and ensure systematic execution. The scope also included conducting a detailed study on the economic sustainability of the project, which was important to understand if resources were used efficiently and if the costs were viable at a business level. The project concluded with the validation of the developed tool, providing a comprehensive analysis of its functionality and effectiveness. Tests were conducted on systems with available graphics accelerators, validating its proper functioning with both AMD Instinct hardware in the CTE-AMD cluster of Marenostrum 4 and NVIDIA HOPPER hardware in the ACC cluster of the newly inaugurated Marenostrum 5. Lessons learned and recommendations for future research in this vital field also formed part of my conclusions, offering a clear path for the continued development of the tools in the BSC's tool department.

[es] En este Trabajo de Fin de Grado, realizado en colaboración con el Barcelona Supercomputing Center y la Universitat Politècnica de Catalunya, abordé el desafío de instrumentar el entorno de programación HIP de AMD para generar trazas de ejecución en aplicaciones que utilizan GPUs de AMD. Este enfoque es importante debido al aumento en la adopción de HIP como alternativa a CUDA de NVIDIA, especialmente en sistemas que solo incorporan hardware de AMD. El objetivo principal del proyecto ha sido ampliar la funcionalidad de la herramienta Extrae, que se utiliza para la instrumentación de aplicaciones y la recopilación de datos de ejecución, para incluir soporte de instrumentación al runtime HIP. Esta ampliación implicó además tener en cuenta la integración con la herramienta Paraver, permitiendo la visualización y análisis de las trazas generadas. Se hizo especial énfasis en soportar múltiples runtimes y entornos de ejecución, específicamente HIP, OpenMP y OpenMPI, y su interoperabilidad; lo cual es esencial para el análisis de rendimiento en entornos de computación de alto rendimiento a nivel de acelerador, nodo y clúster. Los objetivos secundarios incluyeron la evaluación de herramientas existentes de análisis de rendimiento, el desarrollo de un profiler personalizado para HIP, y la evaluación de diversos métodos de interposición para capturar eventos y operaciones específicas en HIP. Para gestionar eficazmente el proyecto, adopté una metodología Agile organizada en sprints que permitieron una planificación flexible y adaptativa. Utilicé herramientas de gestión de proyectos como Trello y técnicas de planificación como diagramas de Gantt para supervisar el progreso y asegurar una ejecución sistemática. Tambien se incluye en el alcance la relacición de un estudio detallado sobre la sostenibilidad económica del proyecto, lo cual fue importante para entender si se ha realizado un uso eficiente de los recursos y la viabilidad de los costos a nivel empresarial. El proyecto ha concluido con la validación de la herramienta desarrollada, proporcionando un análisis exhaustivo de su funcionalidad y eficacia. Para ello, se han realizado pruebas en los sistemas con aceleradores gráficos disponibles, en los que se ha podido validar su correcto funcionamiento tanto con hardware AMD Instinct en el cluster CTE-AMD de Marenostrum 4 como con hardware NVIDIA HOPPER en el clúster ACC del recién inaugurado Marenostrum 5. Las lecciones aprendidas y las recomendaciones para investigaciones futuras en este campo vital también formaron parte de las conclusiones de mi trabajo, ofreciendo un camino claro para la continuación del desarrollo de las herramientas del departamiento de herramientas del BSC.