Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa...
Transcript of Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa...
![Page 1: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/1.jpg)
JGPU 2011. Universidad de Alicante
Portada
Computación matricial dispersa con
GPUs y su aplicación en Tomografía
Electrónica
Universidad de Almería
F. Vázquez, J. A. Martínez, E. M. Garzón, J. J. Fernández
![Page 2: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/2.jpg)
JGPU 2011. Universidad de Alicante 2
Contenidos Computación matricial dispersa
Introducción a SpMV
Formatos de representación de matrices dispersas
Formatos ELLR y ELLR-T
Evaluación comparativa
Modelo analítico de ejecución ELLR-T
Tomografía Electrónica
Métodos de reconstrucción WBP, SIRT
WBP Matricial
SIRT Matricial
![Page 3: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/3.jpg)
JGPU 2011. Universidad de Alicante 3
Contenidos Computación matricial dispersa
Introducción a SpMV
Formatos de representación de matrices dispersas
Formatos ELLR y ELLR-T
Evaluación comparativa
Modelo analítico de ejecución ELLR-T
Tomografía Electrónica
Métodos de reconstrucción WBP, SIRT
WBP Matricial
SIRT Matricial
![Page 4: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/4.jpg)
JGPU 2011. Universidad de Alicante 4
Computación matricial dispersa
SpMV: Producto matriz dispersa vector
Operación ampliamente utilizada Procesamiento de imágenes, simulación, ingeniería de control, etc..
Aumentar el rendimiento de SpMV equivale a
aumentar el rendimiento de estas aplicaciones
Matriz dispersa > 90% del total son ceros
Representación en formato denso excede capacidad de memoria. 200000 x 200000 > 150 GB
La mayoría de las operaciones son cero
![Page 5: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/5.jpg)
JGPU 2011. Universidad de Alicante 5
Computación matricial dispersa
Matriz dispersa. Ventajas: No se realizan operaciones sobre elementos nulos ya que no se representan
El espacio de memoria se reduce considerablemente
Inconvenientes: Pérdida de la estructura densa: Número de columnas
Necesario usar otras estructuras de datos que permitan la identificación de cada entrada de la matriz
Formatos de representación
![Page 6: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/6.jpg)
JGPU 2011. Universidad de Alicante 6
Contenidos Computación matricial dispersa
Introducción a SpMV
Formatos de representación de matrices dispersas
Formatos ELLR y ELLR-T
Evaluación comparativa
Modelo analítico de ejecución ELLR-T
Tomografía Electrónica
Métodos de reconstrucción WBP, SIRT
WBP Matricial
SIRT Matricial
![Page 7: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/7.jpg)
JGPU 2011. Universidad de Alicante 7
Computación matricial dispersa
El rendimiento de SpMV viene determinado por: Formato de representación utilizado
Patrón de la matriz
![Page 8: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/8.jpg)
JGPU 2011. Universidad de Alicante 8
Computación matricial dispersa
Formatos de representación N. Bell, M. Garland
• CRS, CRS-vector, COO, ELL, HYB
M. M. Baskaran, R. Bordawekar
• SpMV4GPU
J. W. Choi, A. Singth, R. W. Vuduc Georgia, USA
• BELLPACK
A. Monakov, A. Lokhmotov, A. Avestiyan Moscow, Russia
• Sliced ELLPACK
![Page 9: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/9.jpg)
JGPU 2011. Universidad de Alicante 9
Computación matricial dispersa
CRS
A: Elementos no nulos de la matriz
J: Índices de columna
start: Inicio y fin de cada fila
![Page 10: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/10.jpg)
JGPU 2011. Universidad de Alicante 10
Computación matricial dispersa
SpMV CRS: 1 thread por fila
int x = blockIdx.x * blockDim.x + threadIdx.x; if(x<N){ int i, k, p; float svalue=0.0; i=start[x]; k=start[x+1]; for (p=i;p<k;p++){
svalue+=A[p] * v[ J[p] ]; } u[x]=svalue; }
SpMV GPU: u = Av
![Page 11: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/11.jpg)
JGPU 2011. Universidad de Alicante 11
Computación matricial dispersa
CRS Acceso a memoria no coalescente
Desbalanceo de carga si el número de no nulos por fila es muy distinto entre threads de un mismo bloque
Indirección en el acceso a v
int x = blockIdx.x * blockDim.x + threadIdx.x; if(x<N){ int i, k, p; float svalue=0.0; i=start[x]; k=start[x+1]; for (p=i;p<k;p++){
svalue+=A[p] * v[ J[p] ]; } u[x]=svalue; }
![Page 12: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/12.jpg)
JGPU 2011. Universidad de Alicante 12
Computación matricial dispersa
SpMV CRS-vector: 32 threads por fila
![Page 13: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/13.jpg)
JGPU 2011. Universidad de Alicante 13
Computación matricial dispersa
SpMV CRS-vector: Etapa de reducción-suma
![Page 14: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/14.jpg)
JGPU 2011. Universidad de Alicante 14
Computación matricial dispersa
CRS-vector Acceso a memoria coalescente parcial
Coalescencia parcial: No tiene en cuenta la alineación de segmentos:
• 3º half-warp: thread_id: 32..47
• Segmentos: 0..15, 16..31, 32..47, 48..63
• thread_id 32 toca 3º segmento posición 37
• thread_id 43 toca 4º segmento posición 48
Aumenta el paralelismo al aumentar el número de threads por fila
Desbalanceo a nivel de fila si el número de no nulos no es múltiplo de 32. 1ª fila tiene 37 no nulos, threads 5..31 parados en la 2ª iteración
![Page 15: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/15.jpg)
JGPU 2011. Universidad de Alicante 15
Computación matricial dispersa
SpMV4GPU: 16 threads por fila + segmentos alineados
![Page 16: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/16.jpg)
JGPU 2011. Universidad de Alicante 16
Computación matricial dispersa
SpMV4GPU Acceso a memoria coalescente total
Disminuye el grado de desbalanceo con respecto a CRS-vector al destinar la mitad de threads a cada fila
• P.ej: Fila con 60 no nulos y siguiente con 5 no nulos
– SpMV4GPU:
» 1ª fila: 4 iteraciones, 4 threads parados en la última iteración
» 2ª fila: 1 iteración, 11 threads parados
– CRS-vector:
» 1ª fila: 2 iteraciones, 4 threads parados en la última iteración
» 2ª fila: 1 iteración, 27 threads parados
![Page 17: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/17.jpg)
JGPU 2011. Universidad de Alicante 17
Computación matricial dispersa
COO: 1 thread por elemento no nulo
A: Elementos no nulos de la matriz
I, J: Índices de fila y columna
![Page 18: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/18.jpg)
JGPU 2011. Universidad de Alicante 18
Computación matricial dispersa
COO Límite físico en el número máximo de threads que pueden ejecutarse
• Capacidad de cómputo 1.x: 33.553.920 threads (65535 bloques x 512 threads/bloque)
• Capacidad de cómputo 2.x: 67.107.840 threads (65535
bloques x 1024 threads/bloque) Acceso a memoria coalescente
Desestructuración de la matriz. Requiere un acceso
adicional a I para obtener el índice de fila
Función atómica de suma. El resultado de una fila ha de ser actualizado por varios threads simultáneamente
![Page 19: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/19.jpg)
JGPU 2011. Universidad de Alicante 19
Computación matricial dispersa
ELL
A: Valores de la matriz. Dimensión N x max
J: Índices de columna. Dimensión N x max
max: Máximo de elementos no nulos entre todas las filas Estructura regular
![Page 20: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/20.jpg)
JGPU 2011. Universidad de Alicante 20
Computación matricial dispersa
SpMV ELL
int x = blockIdx.x * blockDim.x + threadIdx.x; if(x<N){ int p, col; float value, svalue=0.0; for (p=0;p<max;p++){ value = A[N * p + x]; col = J[N * p + x]; if (value <> 0)
svalue+=value * v[ col ]; } u[x]=svalue; }
SpMV GPU: u = Av
![Page 21: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/21.jpg)
JGPU 2011. Universidad de Alicante 21
Computación matricial dispersa
ELL Acceso a memoria coalescente parcial
Computación innecesaria. max es un valor global entre todas las filas de la matriz. Todos los threads han de llegar a max y realizar la comprobación value <> 0
Pérdida de rendimiento en situaciones en las que max y el número de elementos no nulos de la fila sean muy distintos
Divergencia. La sentencia if incluye una divergencia que produce una serialización en los threads que cumplen la condición
![Page 22: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/22.jpg)
JGPU 2011. Universidad de Alicante 22
Computación matricial dispersa
HYB Trata de eliminar los problemas de ELL
Distribuye la matriz en dos estructuras: ELL y COO para eliminar las discordancias entre el número de no nulos de cada fila y max
Las filas con 2/3 de max ELL
Resto COO
Una misma fila está representada con dos formatos
Se necesitan varios kernels para realizar SpMV
Imposible realizar precálculos durante la realización de SpMV
![Page 23: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/23.jpg)
JGPU 2011. Universidad de Alicante 23
Computación matricial dispersa
BELLPACK
Tres parámetros
Sub-bloque denso: r x c
División en sub-matrices de
R filas
No es un formato general
Válido para matrices con
Sub-bloques r x c densos
![Page 24: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/24.jpg)
JGPU 2011. Universidad de Alicante 24
Computación matricial dispersa
BELLPACK
Cada sub-matriz de R filas
con sub-bloques r x c se
representa en ELL
Sólo se almacena el índice
de columna del primer
elemento del sub-bloque
![Page 25: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/25.jpg)
JGPU 2011. Universidad de Alicante 25
Computación matricial dispersa
BELLPACK Válido para matrices que presentan una estructuras de sub-bloques densos
No es un formato de representación general
Necesario “tunning” de parámetros:
• Tamaño del sub-bloque: r x c
• Tamaño de las sub-matrices: R
• Tamaño del bloque de threads para la ejecución: BS
Dada la reordenación previa de filas, es necesario una reordenación posterior del vector resultado
Acceso a memoria coalescente total
![Page 26: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/26.jpg)
JGPU 2011. Universidad de Alicante 26
Computación matricial dispersa
Sliced ELLPACK
División en grupos de S filas
Si S = 1 CRS
Si S = N ELL
Reordenación inicial de filas
Bloque de BS threads por S filas
T=BS/S: Nº de threads por fila
Si T > 1 Reducción-suma
![Page 27: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/27.jpg)
JGPU 2011. Universidad de Alicante 27
Computación matricial dispersa
Sliced ELLPACK Parámetro max de ELL variable cada S filas
• No sufre la sobrecarga de ELL en filas con un número de no nulos muy distinto
Uso variable del número de threads por fila
• Permite la adaptación a distintos tipos de matrices
– 1 thread en filas muy dispersas
– Varios threads en matrices con menos filas, pero menos dispersas
Acceso a memoria coalescente total
Necesario “tunning” de T y S
Reordenación del vector resultado
![Page 28: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/28.jpg)
JGPU 2011. Universidad de Alicante 28
Contenidos Computación matricial dispersa
Introducción a SpMV
Formatos de representación de matrices dispersas
Formatos ELLR y ELLR-T
Evaluación comparativa
Modelo analítico de ejecución ELLR-T
Tomografía Electrónica
Métodos de reconstrucción WBP, SIRT
WBP Matricial
SIRT Matricial
![Page 29: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/29.jpg)
JGPU 2011. Universidad de Alicante 29
Computación matricial dispersa
ELLR-T: Basado en el formato ELL R: Nueva estructura de datos que indica el número de elementos no nulos por fila: rl
T: Número de threads que calculan una fila
• T puede ser: 1, 2, 4, 8, 16 ó 32
Con T = 1, ELLR-1 equivale a ELLR y es la versión inicial
Ventajas:
• Elimina la sobrecarga de ELL mediante el vector rl
• Estructura regular de la matriz ajustada a max
• No requiere reordenación de filas
• Sencillez, permite realizar precálculos
• Ajuste de BS y T mediante modelo analítico de ejecución
• Coalescencia total, mejor rendimiento
![Page 30: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/30.jpg)
JGPU 2011. Universidad de Alicante 30
Computación matricial dispersa
ELLR
A: Valores de la matriz
J: Índices de columna
rl: Longitud de cada fila
![Page 31: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/31.jpg)
JGPU 2011. Universidad de Alicante 31
Computación matricial dispersa
ELLR
![Page 32: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/32.jpg)
JGPU 2011. Universidad de Alicante 32
Computación matricial dispersa
Operaciones ELL vs ELLR
Accesos a memoria 307 vs 169
ELLR: Tiempos de espera reducidos a max local del warp
![Page 33: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/33.jpg)
JGPU 2011. Universidad de Alicante 33
Computación matricial dispersa
ELLR-T T threads calculan una fila
Aumenta número de threads totales de ejecución
Aumenta número de bloques totales de ejecución
Aumenta longitud de la cola de bloques por multiprocesador
Implica: Aumentar paralelismo
Ocupación: Ocultación de latencias en el acceso a memoria
• Aumenta el número de warps/bloques/threads activos
• Capacidad de cómputo 1.x: 32 - 8 - 1024
• Capacidad de cómputo 2.x: 48 - 8 - 1536
![Page 34: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/34.jpg)
JGPU 2011. Universidad de Alicante 34
Computación matricial dispersa
ELLR-T
![Page 35: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/35.jpg)
JGPU 2011. Universidad de Alicante 35
Computación matricial dispersa
ELLR-T
![Page 36: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/36.jpg)
JGPU 2011. Universidad de Alicante 36
Computación matricial dispersa
ELLR-T
![Page 37: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/37.jpg)
JGPU 2011. Universidad de Alicante 37
Computación matricial dispersa
![Page 38: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/38.jpg)
JGPU 2011. Universidad de Alicante 38
Computación matricial dispersa
![Page 39: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/39.jpg)
JGPU 2011. Universidad de Alicante 39
Computación matricial dispersa
![Page 40: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/40.jpg)
JGPU 2011. Universidad de Alicante 40
Contenidos Computación matricial dispersa
Introducción a SpMV
Formatos de representación de matrices dispersas
Formatos ELLR y ELLR-T
Evaluación comparativa
Modelo analítico de ejecución ELLR-T
Tomografía Electrónica
Métodos de reconstrucción WBP, SIRT
WBP Matricial
SIRT Matricial
![Page 41: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/41.jpg)
JGPU 2011. Universidad de Alicante 41
Computación matricial dispersa Conjunto de matrices
![Page 42: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/42.jpg)
JGPU 2011. Universidad de Alicante 42
Computación matricial dispersa
![Page 43: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/43.jpg)
JGPU 2011. Universidad de Alicante 43
Computación matricial dispersa
![Page 44: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/44.jpg)
JGPU 2011. Universidad de Alicante 44
Computación matricial dispersa
Matriz
(GFLOPS)
BELLPACK
C1060
Sliced ELLPACK
GTX 280
ELLR-T
GTX 285
mac_econ -- 10,14 8,25
qcd5_4 25 25,67 29,29
mc2depi -- 20,03 23,60
rma10 18 20,60 24,38
cop20k_A -- 13,01 16,74
dense2 17 28,67 30,26
cant 27 24,74 30,01
pdb1HYS 21 25,56 29,62
consph 27 28,40 29,64
shipsec1 29 28,53 29,92
pwtk 23 28,52 31,48
![Page 45: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/45.jpg)
JGPU 2011. Universidad de Alicante 45
Contenidos Computación matricial dispersa
Introducción a SpMV
Formatos de representación de matrices dispersas
Formatos ELLR y ELLR-T
Evaluación comparativa
Modelo analítico de ejecución ELLR-T
Tomografía Electrónica
Métodos de reconstrucción WBP, SIRT
WBP Matricial
SIRT Matricial
![Page 46: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/46.jpg)
JGPU 2011. Universidad de Alicante 46
Computación matricial dispersa
Modelo analítico de ejecución ELLR-T Objetivo: Determinar a tiempo real T y BS
Ejecución:
1. Lectura del histograma de la matriz rl
2. Aplicación del modelo y obtención de T y BS 3. Lectura de la matriz y representación en ELLR-T
4. Llamada al kernel SpMV de ELLR-T con tamaño de bloque
BS
![Page 47: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/47.jpg)
JGPU 2011. Universidad de Alicante 47
Computación matricial dispersa
Bases de diseño Asignación de bloques a los multiprocesadores de la GPU
SpMV está limitado por los accesos a memoria
Contar número de accesos a memoria de cada SM
Rendimiento de SpMV ligado al multiprocesador más lento
![Page 48: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/48.jpg)
JGPU 2011. Universidad de Alicante 48
Computación matricial dispersa
Características No modela el acceso al vector v en caché de texturas
Evalúa los tamaños de bloque que generan una ocupación del 100%
• Capacidad de cómputo 1.x: BS=128, 256, 512
• Capacidad de cómputo 2.x: BS=256, 512, 768
Resultados
• 91% acierto cuando se utiliza caché de texturas para v
• 97% acierto cuando no se utiliza caché de texturas para v
![Page 49: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/49.jpg)
JGPU 2011. Universidad de Alicante 49
Computación matricial dispersa
![Page 50: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/50.jpg)
JGPU 2011. Universidad de Alicante 50
Contenidos Computación matricial dispersa
Introducción a SpMV
Formatos de representación de matrices dispersas
Formatos ELLR y ELLR-T
Evaluación comparativa
Modelo analítico de ejecución ELLR-T
Tomografía Electrónica
Métodos de reconstrucción WBP, SIRT
WBP Matricial
SIRT Matricial
![Page 51: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/51.jpg)
JGPU 2011. Universidad de Alicante 51
Tomografía Electrónica
Métodos de reconstrucción WBP y SIRT
Adquisición de imágenes mediante geometría de eje único de giro
La imagen de proyección contiene la información de las rebanadas perpendiculares al eje de giro para un determinado ángulo
En la práctica toda la información de una misma rebanada se agrupa en una estructura llamada sinograma
La apilación de las reconstrucciones 2D de los sinogramas dan lugar al volúmen 3D
![Page 52: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/52.jpg)
JGPU 2011. Universidad de Alicante 52
Tomografía Electrónica
WBP: Weighted BackProjection Retroproyección de las imágenes de proyección para cada ángulo de giro
![Page 53: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/53.jpg)
JGPU 2011. Universidad de Alicante 53
Tomografía Electrónica
WBP: Weighted BackProjection Weighted: Filtro paso alto con el objeto de eliminar el ruido implícito en el proceso de retroproyección
Complejidad del orden O(N3 x M). N: Núm. Voxels, M: Núm. Imágenes de proyección
La reconstrucción está fuertemente afectada por la limitación de los ángulos de giro y la función de transferencia del microscopio, lo que se traduce en un emborronamiento de la imagen
Válido para la obtención de una vista preliminar del espécimen
![Page 54: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/54.jpg)
JGPU 2011. Universidad de Alicante 54
Tomografía Electrónica
SIRT: Simultaneous Iterative Reconstruction Technique
Cada iteración:
a) Proyección
b) Cálculo de error
c) Retroproyección
![Page 55: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/55.jpg)
JGPU 2011. Universidad de Alicante 55
Tomografía Electrónica
SIRT: Simultaneous Iterative Reconstruction Technique
Más robusto en presencia de ruido y limitación ángulos de giro
Altos requerimientos computacionales
Reconstrucciones de mayor calidad que WBP
a) WBP
b) SIRT
![Page 56: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/56.jpg)
JGPU 2011. Universidad de Alicante 56
Contenidos Computación matricial dispersa
Introducción a SpMV
Formatos de representación de matrices dispersas
Formatos ELLR y ELLR-T
Evaluación comparativa
Modelo analítico de ejecución ELLR-T
Tomografía Electrónica
Métodos de reconstrucción WBP, SIRT
WBP Matricial
SIRT Matricial
![Page 57: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/57.jpg)
JGPU 2011. Universidad de Alicante 57
Tomografía Electrónica
WBP Matricial
for s in Nslices
gs = B ps
Rebanada 4 x 4 – nbins = 4, ntilts = 1
![Page 58: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/58.jpg)
JGPU 2011. Universidad de Alicante 58
Tomografía Electrónica
WBP Matricial: Patrón general
![Page 59: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/59.jpg)
JGPU 2011. Universidad de Alicante 59
Tomografía Electrónica
WBP Matricial: Niveles de simetría
General
Sym1: Elementos adyacentes
Sym2: Nivel de filas
Sym3: Angular
A: A1, A2, A3, A12, A13, A23, A123
B: B1, B2, B3, B12, B13, B23, B123
Cada nivel de simetría reduce la matriz en un 50%
![Page 60: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/60.jpg)
JGPU 2011. Universidad de Alicante 60
Tomografía Electrónica
WBP Matricial: ELLR General
![Page 61: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/61.jpg)
JGPU 2011. Universidad de Alicante 61
Tomografía Electrónica
WBP Geforce GTX 295
![Page 62: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/62.jpg)
JGPU 2011. Universidad de Alicante 62
Tomografía Electrónica
WBP Geforce GTX 295
![Page 63: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/63.jpg)
JGPU 2011. Universidad de Alicante 63
Contenidos Computación matricial dispersa
Introducción a SpMV
Formatos de representación de matrices dispersas
Formatos ELLR y ELLR-T
Evaluación comparativa
Modelo analítico de ejecución ELLR-T
Tomografía Electrónica
Métodos de reconstrucción WBP, SIRT
WBP Matricial
SIRT Matricial
![Page 64: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/64.jpg)
JGPU 2011. Universidad de Alicante 64
Tomografía Electrónica
SIRT Matricial Proyección: qk = A gk
Cálculo de error: ek = (p – qk) / w
Retroproyección: gk+1 = gk + B ek
A = BT
![Page 65: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/65.jpg)
JGPU 2011. Universidad de Alicante 65
Tomografía Electrónica
SIRT Matricial
A: General
B: Sym2
![Page 66: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/66.jpg)
JGPU 2011. Universidad de Alicante 66
Tomografía Electrónica
SIRT
![Page 67: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/67.jpg)
JGPU 2011. Universidad de Alicante 67
Tomografía Electrónica
SIRT
![Page 68: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/68.jpg)
JGPU 2011. Universidad de Alicante 68
Tomografía Electrónica WBP: 25 min vs 10 seg
SIRT: 38 horas vs 19 min
![Page 69: Computación matricial dispersa con GPUs y su aplicación en ... · Computación matricial dispersa ELL Acceso a memoria coalescente parcial Computación innecesaria. max es un valor](https://reader035.fdocument.pub/reader035/viewer/2022070916/5fb6388575f7e66ad3086de7/html5/thumbnails/69.jpg)
JGPU 2011. Universidad de Alicante 69
Contraportada