Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
L A B O R A T O R I O D E I N T E L P A R A L A A C A D E M I A
I N S T R U C T O R E S :
E L B A K A R E N S Á E N Z G A R C Í A
K A R E N S Á E N Z 1
TEMARIO
Antecedentes
GPU – CUDA
� GPGPU
� Arquitectura CUDA
� GPU Genérico
Modelo de ejecución CUDA
� Grids ,Bloques, Hilos� Grids ,Bloques, Hilos
Modelo de programación CUDA
� Device y Host
� Funciones CUDA
Manejo de arreglos unidimensionales
Manejo de arreglos bidimensionales
Memoria Compartida
K A R E N S Á E N Z 3
CÓMPUTO SERIAL
Uso de un recurso de cómputo para resolver un problema computacional
K A R E N S Á E N Z 4
CÓMPUTO PARALELO
Uso de varios recursos de cómputo para resolver un problema
K A R E N S Á E N Z 5
CÓMPUTO PARALELO
Recurso Computacional
� Una sola computadora con varios procesadores
� Varias computadoras conectadas en red
� Combinación de ambas
Tipo de problema computacional
� Se debe poder dividir en partes pequeñas que puedan resolverse de forma simultanea y al mismo tiempode forma simultanea y al mismo tiempo
� Poderlo resolver en menos tiempo con varios recursos computacionales que con solo uno.
K A R E N S Á E N Z 6
MODELOS DE PROGRAMACIÓN PARALELA
De acuerdo al manejo de memoria�Memoria compartida (shared memory)�Modelo de hilos
�Memoria distribuida (distributed memory)�Memoria compartida distribuida (distributed shared
memory)memory)
K A R E N S Á E N Z 7
MEMORIA COMPARTIDA
MEMORIA
BUS
UP1 UP2 UPN
K A R E N S Á E N Z 8
MODELO HILOS
• Tipo de programación en memoria compartida.
K A R E N S Á E N Z 9
MEMORIA DISTRIBUIDA
N E T W O R K
U P 1 U P 2 U P 3 U P 4 U P 5 U P N
M E M M E M M E M M E M M E M M E M
K A R E N S Á E N Z 10
LA METODOLOGÍA DE DISEÑO DE FOSTER
K A R E N S Á E N Z 11
Ian Foster, Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering, Addison-Wesley,1995
PARTICIONAMIENTO
O DESCOMPOSICIÓN
Descomposición de dominio o datos
K A R E N S Á E N Z 12
PARTICIONAMIENTO
• Descomposición funcional o tareas
K A R E N S Á E N Z 13
DESCOMPOSICIÓN PIPILINED
K A R E N S Á E N Z 14
DESCOMPOSICIÓN DE DOMINIO
CPU 0 CPU 1 CPU 2 CPU 3
Encontrar el elemento mayor en un arreglo de enteros
K A R E N S Á E N Z 15
DESCOMPOSICIÓN DE DOMINIO
CPU 0 CPU 1 CPU 2 CPU 3
Encontrar el elemento mayor en un arreglo de enteros
K A R E N S Á E N Z 16
EJEMPLO DESCOMPOSICIÓN DE DOMINIO O
DATOSSumar los renglones de una matriz de 4*28
for (i=0; i<4i++)
{
B[i]=0;
for (j=0;j<28)
B[ i ] = A[ i ][ j ] + B[ i ];B[ i ] = A[ i ][ j ] + B[ i ];
}
K A R E N S Á E N Z 17
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
EJEMPLO DESCOMPOSICIÓN DE DOMINIO O
DATOS
Opción 1 Dividir el número de Renglones de A entre el número de CPUs disponibles
Opción 2 Asignar cada renglón a un CPU se necesita
cpu 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
cpu 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
cpu 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
K A R E N S Á E N Z 18
cpu 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
cpu 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
cpu 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
cpu 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 406
¿Que pasaría con si la matriz A fuera de 1000*1000?
K A R E N S Á E N Z 19
DESCOMPOSICIÓN FUNCIONAL
f()
r()
q()h()
g()
K A R E N S Á E N Z 20
s()
q()h()
DESCOMPOSICIÓN FUNCIONAL
f()
r()
q()h()
g()
CPU 0
CPU 2
CPU 1
K A R E N S Á E N Z 21
s()
q()h()
DESCOMPOSICIÓN FUNCIONAL
f()
r()
q()h()
g()
CPU 0
CPU 2
CPU 1
K A R E N S Á E N Z 22
s()
q()h()
DESCOMPOSICIÓN FUNCIONAL
f()
r()
q()h()
g()
CPU 0
CPU 2
CPU 1
K A R E N S Á E N Z 23
s()
q()h()
DESCOMPOSICIÓN FUNCIONAL
f()
r()
q()h()
g()
CPU 0
CPU 2
CPU 1
K A R E N S Á E N Z 24
s()
q()h()
DESCOMPOSICIÓN FUNCIONAL
f()
r()
q()h()
g()
CPU 0
CPU 2
CPU 1
K A R E N S Á E N Z 25
s()
q()h()