000085225 001__ 85225
000085225 005__ 20191118101529.0
000085225 037__ $$aTAZ-TFG-2019-2895
000085225 041__ $$aeng
000085225 1001_ $$aSoria Pardos, Víctor
000085225 24200 $$aCharacterization of HPC applications for ARM SIMD instructions
000085225 24500 $$aCaracterización de aplicaciones HPC para extensiones vectoriales de ARM
000085225 260__ $$aZaragoza$$bUniversidad de Zaragoza$$c2019
000085225 506__ $$aby-nc-sa$$bCreative Commons$$c3.0$$uhttp://creativecommons.org/licenses/by-nc-sa/3.0/
000085225 520__ $$aHoy en día, la mayoría de repertorios de instrucciones (ISA) incluyen instrucciones que procesan multiples datos en una única instruccion. Éstas instrucciones se utilizan para acelerar aplicaciones de alto rendimiento (HPC). La primera parte de este trabajo busca caracterizar aplicaciones HPC que han sido optimizadas utilizando NEON, que es el actual subcojunto de instrucciones vectoriales soportado por los procesadores basados en la ISA ARMv8. Para alcanzar este objetivo tenemos a nuestra disposición dos procesadores tope de gama basados en ARMv8, que son ThunderX y ThunderX2, y dos de los principales compiladores del mercado, GCC y Arm HPC Compiler. Con ellos hemos caracterizado una colección de benchmarks extraidos del conjunto de benchmarks RAJAPerf y las aplicaciones HACCKernels y HPCG. Esta caracterización incluye una serie de experimentos que buscan calcular el speed-up, la escalabilidad, la eficiencia energética y de consumo de potencia. Además, hemos analizado el código ensamblador para identificar que optimiaciones se han llevado a cabo y qué caracteristicas hacen que unos experimentos sean más rápidos que otros. La segunda parte de este trabajo se centra en la nueva extensión vectorial escalable (SVE) de Arm, la cual está especificada en la ISA ARMv8.2. Esta especificación introduce el modelo de programación independiente de la longitud de los registros vectoriales (VLA). La cual permite que los fabricantes de procesadores puedan elegir diferentes longitudes de vectores entre 128 y 2048 bits, para la implementación de sus microarquitecturas. A día de hoy, no existe ninguna máquina que implementa este nuevo repertorio de instrucciones, por lo tanto hemos tenido que usar una herramienta de emulación (ArmIE) desarrollada por Arm. Esta herramienta nos permite ejecutar binarios compilados con soporte para SVE en procesadores de la ISA ARMv8. Nuestro trabajo analiza cómo los compiladores GCC y Arm HPC Compiler vectorizan estos benchmarks y además propone ciertas optimizaciones de bajo nivel para mejorar la generación de código.<br /><br />
000085225 521__ $$aGraduado en Ingeniería Informática
000085225 540__ $$aDerechos regulados por licencia Creative Commons
000085225 700__ $$aArmejach Sanosa, Adrià$$edir.
000085225 700__ $$aMoretó Planas, Miquel$$edir.
000085225 7102_ $$aUniversidad de Zaragoza$$bInformática e Ingeniería de Sistemas$$cArquitectura y Tecnología de Computadores
000085225 7202_ $$aSuárez Gracia, Darío$$eponente
000085225 8560_ $$f715726@celes.unizar.es
000085225 8564_ $$s3589051$$uhttps://zaguan.unizar.es/record/85225/files/TAZ-TFG-2019-2895.pdf$$yMemoria (eng)
000085225 909CO $$ooai:zaguan.unizar.es:85225$$pdriver$$ptrabajos-fin-grado
000085225 950__ $$a
000085225 951__ $$adeposita:2019-11-18
000085225 980__ $$aTAZ$$bTFG$$cEINA
000085225 999__ $$a20190830103655.CREATION_DATE