laboratorio de intel para la academia...

Post on 13-Jul-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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()

top related