La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitecturas AvanzadasCurso 10/11 1INTRODUCCIÓN 2CONECTIVIDAD 3MÁQUINAS MIMD 4MÁQUINAS SIMD 5AUMENTO DE PRESTACIONES Horas 5 6 7 2 3.

Presentaciones similares


Presentación del tema: "Arquitecturas AvanzadasCurso 10/11 1INTRODUCCIÓN 2CONECTIVIDAD 3MÁQUINAS MIMD 4MÁQUINAS SIMD 5AUMENTO DE PRESTACIONES Horas 5 6 7 2 3."— Transcripción de la presentación:

1 Arquitecturas AvanzadasCurso 10/11 1INTRODUCCIÓN 2CONECTIVIDAD 3MÁQUINAS MIMD 4MÁQUINAS SIMD 5AUMENTO DE PRESTACIONES Horas

2 arqAva Clasificación de Flynn AmpliadaIntroducción-2 Arquitecturas Paralelas SISDSIMDMISDMIMD Multi- procesadores Multi- computadores MPPCOW Von Neumann Procesadores Vectoriales Array de Procesadores Sistólicos UMANUMACOMA Distintas formas de organizar la memoria común ?? Beowulf Symetric Multi Processor Distributed Shared Memory

3 arqAva TemarioSIMD-3 3MÁQUINAS SIMD 1Procesamiento Sistólico 1Introducción 2Metodología 3Ejemplos 2Procesamiento Vectorial 1Definiciones y tipos de instrucciones 2Memorias entrelazadas 3Funciones vectoriales compuestas 4Encadenamiento Hardware Bibliografía: VLSI Array Processors S.Y. Kung-1988 [ ] Advanded Computer Architecture... Kai Hwang-1993 [Capítulo 8]

4 arqAva Sistólicos (Introducción)SIMD-4 INTRODUCCIÓN Límites de MIMD para grano fino El modelo sistólico Ejemplo Vector x Matriz Algunos inconvenientes Ejemplos de máquinas

5 arqAva Introducción (Límites de MIMD para grano fino)SIMD-5 Problema : Multiplicar una secuencia muy grande de vectores por una matriz Filtrado de imagen Generación de efectos de vídeo Conversión, cod/decod de vídeo Manipulación de imagen en 3D Procesado de imágenes médicas Reconocimiento de objetos detectando bordes Filtros FIR para sistemas de comunicaciones Algunas aplicaciones

6 arqAva Introducción (Límites de MIMD para grano fino)SIMD-6 Problema : Multiplicar una secuencia muy grande de vectores por una matriz..... X i 4,..... X 2 4, X 1 4 * A 4x4 ==>..... Y i 4,..... Y 2 4, Y 1 4 (x 1,x 2,x 3,x 4 ) i * a 11 a 12 a 13 a 14 a 21 a 22 a 23 a 24 a 31 a 32 a 33 a 34 a 41 a 42 a 43 a 44 = (y 1,y 2,y 3,y 4 ) i x 1 a 11 +x 2 a 21 +x 3 a 31 +x 4 a 41 x 1 a 14 +x 2 a 24 +x 3 a 34 +x 4 a 44 ¿Tiempo de cálculo de Y i 4 en monoprocesador? T(*) => 2T(+) => 1 T(Mem Reg) => 1 T(Y i 4 ) = 16*2+12*1+20*1+4*1 = 68 (*) (+) (r) (w)

7 arqAva Introducción (Límites de MIMD para grano fino)SIMD-7 Paralelización de X 4 *A 4x4 con multiprocesadores 132 x x 1 x 2 x 3 x 4..X2X1..X2X1 P 11.. P 14. P P 41.. P => Cargar coeficientes y P 11 P 12 P 13 P y 1 y 2 y 3 y => 4 P 1i suman Y 1 Y => 16 P ij multiplican ¿Cada cuánto tiempo obtengo Y i ?

8 -- Código de P 1i repeat -- Multiplicar -- Sumar arqAva Introducción (Límites de MIMD para grano fino)SIMD-8 Hagamos los cálculos: repeat [i,j]:= X[i] * A[i,j] -- Los 16 P ij T 1 Y[i]:= [1,i]+ [2,i]+ [3,i]+ [4,i] -- Los 4 P 1i T 2 forever T 1 = 1(r) + 2(*) + 1(w) = 4 T 2 = 3(r) + 3(+) + 1(w) = 7 11¿SEGURO? B(SP 1i ); B(SP 1i ); B(SP 1i ); Subir (SNuevoY); Bajar (SNuevoX); ¡ Sincronizar ! ¿Conflictos de accesos paralelos a datos comunes? El tiempo puede dispararse Barreras de sincronización Hw. ¿Mejorable con multicomputadores?

9 arqAva Introducción (Límites de MIMD para grano fino)SIMD-9 Paralelización de X 4 *A 4x4 con multicomputadores 132 x x 1 x 2 x 3 x y y 1 y 2 y 3 y S=I*A 21 +N ? ? * + ! ! Coste 2 19 ¿Será alcanzable 4? Sistólicos D=I ¿Flujo E/S? X i / Y i

10 arqAva Introducción (El modelo sistólico)SIMD (H.T. Kung y C.E. Leiserson) Mucho interés en los 80 Objetivo:Aprovechar el alto grado de paralelismo espacial y temporal de algunos algoritmos muy demandados y limitados por cómputo....X 4 3, X 4 2, X 4 1 * a 11 a 12 a 13 a 14 a 21 a 22 a 23 a 24 a 31 a 32 a 33 a 34 a 41 a 42 a 43 a 44 =.... Y 4 3, Y 4 2, Y (E/S) vs 28 (*/+) Aplicaciones:Computación científica, procesado de señal e imagen, análisis de datos biológicos, criptografía, etc. Flujo Datos Yale, Carnegie Mellon, MIT

11 arqAva Introducción (El modelo sistólico)SIMD-11 Sistólicos: Máquinas paralelas de propósito específico: Paralelismo masivo y descentralizado (Pipeline) Peso del cómputo mucho mayor que el de E/S Comunicaciones locales Arquitectura regular y modular organizada como una red de un gran número de unidades de proceso idénticas (celdas), conectadas localmente. Sólo las celdas de los bordes pueden comunicarse con el exterior. Modo de operación síncrono Factores de posibilidad (VLSI, CAD) y muy escalables HOST ARQUITECTURA SISTÓLICA Trabajos Resultados

12 arqAva Introducción (El modelo sistólico)SIMD-12 Ejemplos de redes sistólicas

13 arqAva Introducción (El modelo sistólico)SIMD-13 Modo de operación síncrono t 0 t 1 t 2 t 3 t Cada celda siempre hace lo mismo: Recibe datos de sus vecinos Realiza unos cálculos sencillos Transmite resultados a sus vecinos Paralelo Recibe datos de sus vecinos Realiza unos cálculos sencillos Transmite resultados a sus vecinos i i+1 i+2 En cada ciclo ( ), dos fases: 1Intercambio de datos 2 Cálculo

14 arqAva Introducción (Ejemplo Vector * Matriz)SIMD-14 ¿Cómo utilizar esta arquitectura para multiplicar Vectores 2 * Matriz 2x2 ? Recordar el intento de paralelización con multicomputadores a ij N S DI 1?I, ?N, !S, !D 2S = (I* a ij )+N, D = I Propagación de las Xi a 22 a 11 a 12 a t0t0 x11x11 Situación justo al inicio del ciclo x 1 1 a 11 a 22 a 11 a 12 a t1t1 x12x12 x11x11 x21x21

15 arqAva Introducción (Ejemplo Vector * Matriz)SIMD-15 x 1 1 a 11 x12x12 x11x11 x21x21 t1t1 x 1 2 a 11 x13x13 x12x12 x22x22 t2t2 x21x21 y11y11 x 1 1 a 12 x 1 3 a 11 x14x14 x13x13 x23x23 t3t3 x22x22 y12y12 x 1 2 a 12 y21y21 x 1 4 a 11 x15x15 x14x14 x24x24 t4t4 x23x23 y13y13 x 1 3 a 12 y22y22 x 1 i a 11 x 1 i+1 x1ix1i x2ix2i titi x 2 i-1 Y 1 i-1 x 1 i-1 a 12 Y 2 i-2

16 arqAva Introducción (Ejemplo Vector * Matriz)SIMD-16 ¿Tiempo de cálculo de Y i 4 con este método? x11x11 x12x21x12x21 x13x22x31x13x22x31 x14x23x32x41x14x23x32x41 x15x24x33x42x15x24x33x42 t0t0 x 1 i+1 x 2 i x 3 i-1 x 4 i-2 titi y 1 1 y 1 2 y 2 1 y 1 3 y 2 2 y 3 1 y 1 4 y 2 3 y 3 2 y 4 1 y 1 5 y 2 4 y 3 3 y 4 2 t4t4 Obtenemos un resultado cada ciclo ( ) Transferir datos=>1 Multiplicar=>2 Sumar=>1 Total=>4 ¿Tiempos creíbles?

17 arqAva Introducción (Ejemplo Vector * Matriz)SIMD-17 Posible aspecto de una celda: * + Ck a ij

18 arqAva Introducción (Algunos inconvenientes)SIMD-18 Dificultad algorítmica (Veremos una sistematización) Sincronismo de reloj (Sesgo de reloj | Clock Skew) Ck ¿Soluciones? Ck Distribución regular de Ck Frente de Ola | Wave Front Asíncronos Flujo de Datos vs Flujo de Control

19 arqAva Introducción (Ejemplos de máquinas)SIMD-19 iWarp ( ) Carnegie Mellon Univ. + Intel Supercomputing System Div. Todavía la mejor en 1995 para algunas aplicaciones µP RISC de 32 bits de 96bit LIW a 20MHz Desde 4 a 1024 celdas. Típico un toro de 8x8 => 64µP www-2.cs.cmu.edu/~iwarp iPSC iWarp: Anatomy of a Parallel Computing System 1998

20 arqAva Introducción (Ejemplos de máquinas)SIMD-20 SAMBA ( )www.irisa.fr/SAMBA Systolic Accelerator for Molecular Biological Applications Laboratorio IRISA de Rennes 1994 => Chips con 4µP de 100MIPS (12bits) (Total 128µP) 1998 => Speeding up genome computations with a systolic accelerator Estudio genético => 41 en SAMBA y 127,5h en una WorkStation 1998 => Chips con µP más MIPS => Todo en una tarjeta PCI

21 arqAva Introducción (Ejemplos de máquinas)SIMD-21 GeneMatcher2: 192 P SIMD Empresa comprada en junio 2000 por Celera Genomics Group. … GeneMatcher2 … 2004] Sistema de análisis de similitud de secuencias genéticas. Acelerador => P

22 arqAva Introducción (Ejemplos de máquinas)SIMD-22 Procesador CSX700 [Hoy] Convierta su PC en un supercomputador 96 GFlops y < 9 W 96 #9 Top500 11/06 TSUBAME Grid Cluster #29 Top500 11/08 #56 Top500 11/09 + GPUs

23 arqAva Introducción (Ejemplos de máquinas)SIMD-23 DeCypher Engine G4 => SeqCruncher [Hoy] Xeon

24 arqAva Introducción (Ejemplos de máquinas)SIMD-24 Cell [Hoy] QS21

25 arqAva Introducción (Ejemplos de máquinas)SIMD-25 GPUs[Hoy] 240 Tesla C1060 *4 Tesla S1070 *170 TSUBAME

26 arqAva Vectoriales (Definiciones)SIMD-26 DEFINICIONES Vector:Conjunto ordenado de unidades de datos escalares de un mismo tipo Vectorización Conversión de código escalar a vectorial Proporción de vectorización Grado de vectorización alcanzado Compilador vectorial Traductor diseñado para vectorizar código Procesador vectorial:Conjunto de elementos hardware diseñado para procesar vectores Un resultado por ciclo Menor overhead control bucle por software Menos conflictos de accesos a memoria

27 arqAva Vectoriales (Definiciones)SIMD-27 Vector: Conjunto ordenado de unidades de datos escalares de un mismo tipo short V1[5];long V2[5];tPersona V3[5]; V1[0] $ 1000 V1[2] V1[1] V1[3] V1[4] V2[0] $ 1000 V2[1] V2[2] V2[3] V2[4] $ 1006 $ 1002 $ 1004 $ 1008 $ 1004 $ 1008 $ 100C $ 1010 Stride 2Stride 4 $ 1004 V4[0] $ 1000 V4[2] V4[1] V4[3] V4[4] $ 1008 $ 100C $ 1010 ¿Vector V4? Stride 4 Stride tsize(tipo) ¿Utilidad?

28 arqAva Tipo / Fuentes (Control, Datos, Flujo)Introducción-28 PARALELISMO DE DATOS (Espacial) –Operaciones sobre datos regulares (vectores) aplicando la misma operación sobre cada elemento En los procesadores vectoriales hay poca replicación hardware (pocas unidades de proceso que sumen). En su lugar, se apoyan en una especialización mediante pipeline A C B Suma de Vectores, etc. ¡LIMITACIONES! Más datos que U.P. Operaciones escalares

29 arqAva Vectoriales (Definiciones)SIMD A CB Unidad Funcional Aritmética Segmentada 4 Etapas:Sumar Exponentes Multiplicar Mantisas Normalizar Redondear Un resultado por ciclo Registros Vectoriales

30 TIPOS DE INSTRUCCIONES VECTORIALES S x V k V i Escalar-Vector ViVi VkVk S M V V M Memoria-Vector, Vector-Memoria V Memoria arqAva Vectoriales (Tipos de instrucciones) SIMD-30 Vector-Vector V i V j V j x V k V i ViVi VkVk VjVj Unidad funcional segmentada

31 Vector reducción V i S, V j x V k S S VkVk VjVj etc. Compresión (gather recoger) M V j x V k etc. memoria VkVk etc. VjVj VL A0A0 arqAva Vectoriales (Tipos de instrucciones) SIMD-31 ¿Utilidad?

32 Expansión (scatter esparcir) etc xx xx etc. VjVj VkVk memoria V j x V k M VL A0A0 arqAva Vectoriales (Tipos de instrucciones) SIMD-32 MPI_Scatter MPI_Gather MPI_Reduce MPI

33 Máscara (masking) etc. VkVk V k x V m V i VL arqAva Vectoriales (Tipos de instrucciones)SIMD xx etc. ViVi VM ¿Utilidad? ¿Utilidad VM?

34 arqAva Vectoriales (Memorias entrelazadas) SIMD-34 ¿Memoria multipuerto? Vectorial M.P. ¿Un único pipe? Vectorial Patrón de acceso a MP ¡ Demasiado secuencial ! Acceso a bloques: Instrucciones Arrays Líneas de caché ¿ Acceso paralelo al vector V[16] ? M0M0 M1M1 M7M7 V[0]V[1]V[7] V[8]V[9] palabramódulo n3 Entrelazado orden inferior ¿Cuántos bancos?

35 arqAva Vectoriales (Memorias entrelazadas)SIMD-35 Para acceder a un vector en memoria (longElemento = palabra): DirInicio, NumElementos, Stride (Separación entre elementos) Entrelazado de orden inferior: Acceso Concurrente Memoria de 2 a+b palabras, # de módulos: m=2 a, Palabras por módulo: w=2 b palabramódulo a Dirección de memoria b 0 m m(w-1) 2m RIM M0M0 1 m+1 m(w-1)+1 2m+1 RIM M1M1 m-1 2m-1 wm-1 3m-1 RIM M m-1 decodificador RDM

36 arqAva Vectoriales (Memorias entrelazadas)SIMD-36 M0M0 M2M2 M1M1 M5M5 M4M4 M3M3 M6M6 M7M7 Módulos Tiempo t de acceso ( ) t de transmisión ( ) Stride=1¿Stride=2? Pérdida de eficiencia ¿Stride = 3?Sin pérdida de eficiencia t total de un vector grande (m ) ¡ Ojo al ubicar matrices en memoria !

37 0 m m(w-1) 2m RIM M0M0 1 m+1 m(w-1)+1 2m+1 RIM M1M1 m-1 2m-1 wm-1 3m-1 RIM M m-1 módulopalabra b Dirección de memoria a arqAva Vectoriales (Memorias entrelazadas)SIMD-37 Multiplexador Ciclo de búsqueda Ciclo de acceso Entrelazado de orden inferior: Acceso Simultáneo Memoria de 2 a+b palabras, # de módulos: m=2 a, Palabras por módulo: w=2 b

38 arqAva Vectoriales (Memorias entrelazadas) SIMD-38 M0M0 M2M2 M1M1 M5M5 M4M4 M3M3 M6M6 M7M7 Módulos Tiempo m palabras (8) Ciclo de búsqueda Ciclo de acceso Pérdida de eficiencia para Stride 1

39 arqAva Vectoriales (Funciones vectoriales compuestas)SIMD-39 FUNCIONES VECTORIALES COMPUESTAS BUCLE I=1 HASTA 100 CARGA R1,X(I) CARGA R2,Y(I) MULTIPLICA R1,S SUMA R2,R1 ALMACENA Y(I), R2 FIN BUCLE Carga de Vector Escalar x Vector Carga de Vector Suma vectorial Almacenamiento de Vector Y(I) = S * X(I) + Y(I) Vectorización IV1: CARGA VECTOR IV2: CARGA VECTOR IV3: MULTIPLICA VECTOR x ESCALAR IV4: SUMA VECTOR, VECTOR IV5: ALMACENA VECTOR Si disponemos de 2 U.F. (*,+) ¿Ociosa siempre una?

40 arqAva Vectoriales (Encadenamiento hardware)SIMD-40 ENCADENAMIENTO HARDWARE S * X(I) + Y(I) Una vez extraídos X e Y, hay que realizar 2 operaciones vectoriales Vx Vy S Vector intermedio Sumador Multiplicador Etapa de procesamiento Y(I) = S * X(I) + Y(I)Conflicto en los 3 accesos a memoria Cuantos más pipelines de acceso a memoria tengamos, mejor podremos encadenar los procesamientos vectoriales

41 arqAva Vectoriales (Encadenamiento hardware)SIMD-41 Y(I) = S * X(I) + Y(I)Conflicto en los 3 accesos a memoria Disponiendo de un solo pipeline para acceso a memoria (Cray I): memoria VyVy Carga de memoria Carga de Y Etapa 1 memoria V4V4 Almacenamiento en memoria Almacenamiento de Y Etapa 3 memoria Carga de memoria Carga de X VxVx VyVy S V3V3 V4V4 Sumador Multiplicador Etapa de procesamiento Etapa 2

42 arqAva Vectoriales (Encadenamiento hardware)SIMD-42 Y(I) = S * X(I) + Y(I) Conflicto en los 3 accesos a memoria Disponiendo de tres pipelines para acceso a memoria (Cray X-MP): Encadenamiento completo memoria Carga de memoria Carga de Y memoria V4V4 Almacenamiento en memoria Almacenamiento de Y memoria Carga de memoria Carga de X VxVx VyVy S V3V3 Sumador Multiplicador Etapa de procesamiento

43 arqAva Vectoriales (Encadenamiento hardware)SIMD-43 Carga X Carga Y S * X Almacena Y V + Y t Carga Y Carga X S * X Almacena Y V + Y t Carga X Carga Y S * X Almacena Y V + Y Eficiencia sin utilizar encadenamiento: Eficiencia utilizando encadenamiento con un solo pipe de acceso a memoria: Eficiencia utilizando encadenamiento con 3 pipes de acceso a memoria: t Limitaciones: # Unidades Funcionales # Registros Vectoriales

44 arqAva Vectoriales (Encadenamiento hardware)SIMD-44 Cray Y-MP registros de 64 elementos Fujitsu VP Fichero registros 64K: 8 x x x x x x 32 Earth Simulator registros de 256 elementos + 17 registros máscara FIN 64 bits128 bits


Descargar ppt "Arquitecturas AvanzadasCurso 10/11 1INTRODUCCIÓN 2CONECTIVIDAD 3MÁQUINAS MIMD 4MÁQUINAS SIMD 5AUMENTO DE PRESTACIONES Horas 5 6 7 2 3."

Presentaciones similares


Anuncios Google