[ca] Les Xarxes Neuronals Profundes (DNNs) han revolucionat el panorama del Machine Learning (ML) amb la seva capacitat de processar grans quantitats de dades, cosa que els permet modelar relacions complexes i fer prediccions en múltiples i diversos camps com el comerç electrònic, la medicina i l'entreteniment. La seva aplicació aporta grans avantatges, però implica un gran cost per la capacitat computacional necessària. Una de les operacions que representa una gran part de la càrrega de treball computacional de la majoria de tipus de DNNs, incloent-hi les Xarxes Neuronals Convolucionals (CNNs) o les Xarxes Neuronals Gràfiques (GNNs), són les Multiplicacions Matricials Generals (General Martix Multiplication GEMMs). En l'actualitat, la major part de la investigació per millorar la velocitat i l'eficiència de les GEMMs se centra en acceleradors i GPUs, però cal tenir en compte que les CPUs continuen estant àmpliament presents i de vegades infrautilitzades en els sistemes de computació moderns, especialment en els centres de dades. Per això, aquest treball se centra en l?anàlisi del rendiment de les GEMM en sistemes de CPU. En particular, aquest estudi explora l'impacte de diferents tècniques basades en la reutilització i el moviment de dades que consisteixen en la divisió de matrius, la modificació del flux de dades i la partició en diferents nuclis en un conjunt d'arquitectures de CPU. Els resultats obtinguts d'aquestes simulacions han demostrat que les arquitectures multicore tenen el millor rendiment a causa de l'alt grau de paral·lelisme de les GEMM. A més, hem observat que l'impacte de la divisió de les matrius en els accessos a la memòria i el temps d'execució no és uniforme en les diferents dimensions de les matrius. Finalment, hem observat que quan les dades d'entrada són estacionàries, en general, el flux de dades té millor rendiment que quan les dades de sortida són estacionàries, tot i que hem observat també que hi ha algunes excepcions.

[en] Deep Neural Networks (DNN) have revolutionized the scene of Machine learning (ML) with their ability to process large amounts of data, which allow them to model complex relationships and make predictions across multiple and diverse fields such as e-commerce, medical and entertainment. With such great advantages comes a great computational cost. One of the operations that represents a large fraction of the computational workload of most types of DNNs, including Convolutional Neural Networks (CNNs) or Graph Neural Networks (GNNs), are General Matrix-Matrix Multiplications (GEMMs). Nowadays, most of the research on improving the speed and efficiency of GEMMs is focused on accelerators and GPUs, but we have to take into account that CPUs are still extensively present and sometimes underutilized in modern computing systems, especially in data centers. As a result, this thesis focuses on the performance analysis of GEMMs in CPU systems. In particular, this study is explores the impact of different tiling, dataflow, and partitioning techniques on the data reuse and data movement in a set of CPU architectures. The results obtained from these simulations have shown that multi-core architectures are faster than single-core ones due to the high degree of parallelism in GEMMs. Also, we have observed that the impact of tiling on the memory accesses and runtime is not uniform across the different matrix dimensions. Finally, we have observed that the input stationary dataflow has, in general, better performance than the output stationary, however, we have observed that there are some exceptions.