Evaluación de algoritmos de multiplicación de matrices dispersas portados a un entorno GPGPU
Visualitza/Obre
Estadístiques de LA Referencia / Recolecta
Inclou dades d'ús des de 2022
Cita com:
hdl:2117/100887
Tipus de documentTreball Final de Grau
Data2017-01-19
Condicions d'accésAccés obert
Tots els drets reservats. Aquesta obra està protegida pels drets de propietat intel·lectual i
industrial corresponents. Sense perjudici de les exempcions legals existents, queda prohibida la seva
reproducció, distribució, comunicació pública o transformació sense l'autorització del titular dels drets
Abstract
Actualmente la mayoría de estudios científicos son llevados a cabo haciendo
uso de simulaciones. Las simulaciones presentan ventajas como: la opción de
repetir los experimentos todas las veces se quiera, poder cambiar parámetros
físicos y la más importante resultan más económicas que la experimentación
real.
Para realizar estas simulaciones se debe discretizar el problema haciendo
uso de una malla de puntos que simule el objeto de estudio. En la figura 1 podemos
ver un ejemplo de la simulación de una mandíbula [1]. Con las relaciones
de adyacencia impuestas en cada punto, se relaciona el valor de un conjunto
de variables incógnitas definidas en cada nodo y denominadas grados de libertad
[2]. Este conjunto de relaciones se puede representar como un sistema de
ecuaciones lineales. El número de ecuaciones de dicho sistema es proporcional
al número de nodos.
Para resolver los sistemas de ecuaciones se usan matrices. Estas matrices resultan
ser de un tamaño enorme, algunas superando los cientos de millones de
filas [5], debido a que tienen tantas filas como puntos tiene el mallado. Además,
la gran mayoría de los elementos de estas matrices son ceros. Estas matrices de
gran tamaño donde la mayoría de sus elementos son nulos son conocidas como
matrices dispersas.
La operación producto matriz dispersa vector (SpMV) es la operación fundamental en este cálculo. Ejecutándose de forma iterativa hasta llegar a una
solución. Como resultado, las simulaciones tienen su rendimiento altamente
ligado al rendimiento de esta operación. El problema de esta operación es que
la gran mayoría de las operaciones son inútiles, ya que casi todos los elementos
son ceros ( 99% elementos nulos).
La operación básica del producto SpMV se muestra en la figura 2. En ella solo
hay 2 operaciones aritméticas por cada 3 accesos a memoria. Además, estos
accesos debidos a la gran dispersad de las matrices son accesos irregulares. La
combinación de muchos accesos y accesos irregulares hace que la operación
este limitada por ancho de banda a memoria.
Una solución al problema de la gran cantidad de cálculos inútiles es la compactación
de las matrices en formatos donde no se guarden los ceros. Además,
algunos de ellos intentan regularizar los accesos a memoria de la matriz.
Durante los últimos años se ha popularizado el uso de las tarjetas gráficas
como unidad de cálculo científico. Las tarjetas gráficas poseen una arquitectura
paralela que encaja a la perfección en muchos problemas científicos con
un gran coste computacional o de ancho de banda a memoria. Su arquitectura
está especialmente diseñada para ejecutar problemas con un alto grado de
paralelismo. En las aplicaciones de cálculo científico es habitual encontrar este
tipo de paralelismo.
La utilización de tarjetas gráficas se ha mostrado como una solución para
mejorar el rendimiento de la operación SpMV. El gran ancho de banda de las
GPUs encaja a la perfección con las necesidades de este problema.
En este proyecto se analizan los rendimientos de varios formatos de representación
de matrices dispersas portados a un entorno GPU.
TitulacióGRAU EN ENGINYERIA INFORMÀTICA (Pla 2010)
Col·leccions
Fitxers | Descripció | Mida | Format | Visualitza |
---|---|---|---|---|
122055.pdf | 965,4Kb | Visualitza/Obre |