[en] ABSTRACT: Graphics Processing Units (GPU) have been initially designed for graphics and they are frequently used in design and videogames. However, the rise of data-intensive algorithms, such as Machine Lear ning, has meant an increase in utilization of these devices in other fields in what is known as GPGPU (General-purpose computing on graphics processing units). This kind of algorithms makes use of Data Level Parallelism or Single Instruction Multiple Data (SIMD), characteristic of GPU design, which makes them ideal candidates. However, the execution on GPUs, seemingly simple in its architecture, is not trivial. If we want to optimize the resources used, and improve their functioning, it is advisable to have an analysis model that can go into depth in the microarchitecture behavior. An evaluation of this type, in which the performance losses in the different hardware components are analyzed, is the TopDown analysis. Initially developed by Intel for its CPUs, the target of this proyect is trying to replicate this methodology, adapting it to NVIDIA's GPUs hardware features. For this purpose, first a study of the metholodgy proposed by Intel will be carried out, taking into account the way in which it has been designed. Then, we will try to replicate it on a NVIDIA GPU for what, the microarchitectural concepts of this device will be explained, which will later allow to define our TopDown for NVIDIA devices, making use of the available hardware counters. Finally, at the end of the proyect, a series of tests are proposed to analyze how different modern NVIDIA architectures behave in recent benchmarks, assessing in which microarchitecture components performance losses occur.

[es] RESUMEN: Las Unidades de Procesamiento Gráfico (GPU) han sido inicialmente diseñadas para gráficos, y frecuentemente utilizadas en diseño y videojuegos. Sin embargo, el auge de algoritmos de uso intensivo de datos, como los de Machine Learning, ha provocado un aumento en el uso de estos dispositivos en otros campos en lo que se conoce como GPGPU (General-purpose computing on graphics processing units). En este tipo de algoritmos se explota el Paralelismo a Nivel de Datos o Single Instruction Multiple Data (SIMD), propio del diseño de las GPU, que las hace candidatas ideales para obtener al máximo rendimiento, superior al obtenido por una CPU en este paradigma de ejecución. Sin embargo, la ejecución en este tipo de sistemas, aparentemente sencillos en su arquitectura, no es trivial. Si queremos optimizar el uso de sus recursos y mejorar su funcionamiento, se hace recomendable tener un modelo de análisis que pueda entrar en profundidad en el comportamiento de la microarquitectura. Una evaluación de este tipo, en la que se analizan las pérdidas de rendimiento en los diferentes componentes hardware es el análisis TopDown. Inicialmente desarrollado por Intel para sus CPUs, el objetivo de este proyecto es el de intentar replicar esta metodología, adaptándola a las características hardware de una GPU de NVIDIA. Para ello, primero se hará un estudio de la metodología propuesta por Intel, identificando la forma en la que esta ha sido diseñada. A continuación, se tratará de repli car en una GPU de NVIDIA, explicando los conceptos microarquitecturales de este dispositivo, que permitirán posteriormente definir nuestro TopDown para NVIDIA, haciendo uso de los contadores hardware disponibles para obtener los resultados. Por último, al final del proyecto, se proponen una serie de pruebas que permiten analizar cómo se comportan diferentes arquitecturas modernas de NVI DIA sobre benchmarks recientes, evaluando en que componentes microarquitecturales se producen pérdidas de rendimiento.