Desenvolupament de Micro-kernels per l'anàlisi i sintonització de rendiment sobre accel·leradores (GPGPUs)

Autor: Navarro Lorente, Laura, Universitat Autònoma de Barcelona. Escola d'Enginyeria
Přispěvatelé: César Galobardes, Eduardo
Jazyk: Catalan; Valencian
Rok vydání: 2021
Předmět:
Zdroj: Dipòsit Digital de Documents de la UAB
Universitat Autònoma de Barcelona
Popis: Aquest article presenta l'estudi i paral·lelització en acceleradores GPU de patrons basats en els problemes computacionals més habitualment utilitzats en el marc de la Computació d'Alt Rendiment. La paral·lelització en GPU s'ha basat en l'aplicació de diferents tècniques d'optimització mitjançant OpenACC i CUDA, seguit d'un anàlisi de l'impacte que aquestes tècniques provoquen en el rendiment obtingut per diverses mides de problema. També s'ha estudiat la importància que prenen les transferències de dades entre Device i Host a l'hora d'aconseguir acceleracions elevades. Per últim, s'ha realitzat una comparació dels resultats de rendiment obtinguts entre CUDA i OpenACC, amb el que s'ha pogut concloure que tot i que OpenACC és molt més ràpid i senzill d'implementar té un clar desavantatge envers el rendiment obtingut amb CUDA en la major part dels casos; aquest queda accentuat quan es tenen en compte els temps de transferència, que en OpenACC són molt més lents. This article presents the study of patterns based on computational problems most commonly used within High Performance Computing and their parallelization in GPU accelerators. Different optimization techniques via OpenACC and CUDA have been used for GPU parallelization, followed by an analysis of the impact these techniques caused on the performance obtained on several problem sizes. The importance of data transfers between Device and Host for achieving high speedups has also been studied. Finally, a performance comparison between CUDA and OpenACC has been made based on the obtained results, by which has been concluded that OpenACC, although, is much faster and easier to be implemented than CUDA, it has a clear disadvantage on performance compared to CUDA in most cases; this issue is accentuated when data transfer times are taken into account, which in OpenACC are much slower. Este artículo presenta el estudio y paralelización en aceleradoras GPU de patrones basados en los problemas computacionales más habitualmente utilizados en el marco de la Computación de Alto Rendimiento. La paralelización en GPU se ha basado en la aplicación de diferentes técnicas de optimización mediante OpenACC y CUDA, seguido de un análisis del impacto que estas técnicas provocan en el rendimiento obtenido por varias medidas de problema. También se ha estudiado la importancia que toman las transferencias de datos entre Device y Host en la hora de conseguir aceleraciones elevadas. Por último, se ha realizado una comparación de los resultados de rendimiento obtenidos entre CUDA y OpenACC, con el que se ha podido concluir que a pesar de que OpenACC es mucho más rápido y sencillo de implementar tiene una clara desventaja hacia el rendimiento obtenido con CUDA en la mayor parte de los casos; este queda acentuado cuando se tienen en cuenta los tiempos de transferencia, que en OpenACC son mucho más lentos.
Databáze: OpenAIRE