Title: Arquitecturas AvanzadasCurso 10/11
1Arquitecturas Avanzadas Curso 10/11
Horas 5 6 7 2 3
- INTRODUCCIÓN
- CONECTIVIDAD
- MÁQUINAS MIMD
- MÁQUINAS SIMD
- AUMENTO DE PRESTACIONES
2arqAva Clasificación de Flynn Ampliada Introducci
ón-2
Arquitecturas Paralelas
SISD
SIMD
MISD
MIMD
Von Neumann
??
3arqAva Temario SIMD-3
- MÁQUINAS SIMD
- Procesamiento Sistólico
- Introducción
- Metodología
- Ejemplos
- Procesamiento Vectorial
- Definiciones y tipos de instrucciones
- Memorias entrelazadas
- Funciones vectoriales compuestas
- Encadenamiento Hardware
Bibliografía VLSI Array Processors S.Y.
Kung-1988 119..149 Advanded Computer
Architecture... Kai Hwang-1993 Capítulo 8
4arqAva 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
5arqAva 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
6arqAva Introducción (Límites de MIMD para grano
fino) SIMD-6
Problema Multiplicar una secuencia muy grande de
vectores por una matriz
..... Xi4, ..... X24, X14 A4x4 gt ..... Yi4,
..... Y24, Y14
Tiempo ? de cálculo de Yi4 en monoprocesador?
T() gt 2 T() gt 1 T(Mem ltgt Reg) gt 1
7arqAva Introducción (Límites de MIMD para grano
fino) SIMD-7
Paralelización de X4A4x4 con multiprocesadores
Cada cuánto tiempo obtengo Yi?
8arqAva Introducción (Límites de MIMD para grano
fino) SIMD-8
Hagamos los cálculos repeat ?i,j Xi
Ai,j -- Los 16 Pij T1 Yi
?1,i?2,i?3,i?4,i -- Los 4 P1i
T2 forever
T1 1(r) 2() 1(w) 4
SEGURO?
T2 3(r) 3() 1(w) 7
- El tiempo puede dispararse 20 ....
- Barreras de sincronización Hw.
B(SP1i) B(SP1i) B(SP1i)
Subir (SNuevoY)
- Mejorable con multicomputadores?
9arqAva Introducción (Límites de MIMD para grano
fino) SIMD-9
Paralelización de X4A4x4 con multicomputadores
Flujo E/S? Xi / Yi
DI
1
Coste
3
3
SIA21N
9
2
17
-1
9
Sistólicos
10arqAva Introducción (El modelo sistólico) SIMD-10
1978 (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
Aplicaciones Computación científica, procesado
de señal e imagen, análisis de datos
biológicos, criptografía, etc.
11arqAva 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
12arqAva Introducción (El modelo sistólico) SIMD-12
Ejemplos de redes sistólicas
13arqAva Introducción (El modelo sistólico) SIMD-13
Modo de operación síncrono
- Cada celda siempre hace lo mismo
- Recibe datos de sus vecinos
- Realiza unos cálculos sencillos
- Transmite resultados a sus vecinos
14arqAva Introducción (Ejemplo Vector
Matriz) SIMD-14
Cómo utilizar esta arquitectura para multiplicar
Vectores2 Matriz2x2?
Recordar el intento de paralelización con
multicomputadores
Situación justo al inicio del ciclo
15arqAva Introducción (Ejemplo Vector
Matriz) SIMD-15
16arqAva Introducción (Ejemplo Vector
Matriz) SIMD-16
Tiempo de cálculo de Yi4 con este método?
Obtenemos un resultado cada ciclo (?) Transferir
datos gt 1 Multiplicar gt 2 Sumar gt 1 Total gt
4
17arqAva Introducción (Ejemplo Vector
Matriz) SIMD-17
Posible aspecto de una celda
18arqAva Introducción (Algunos inconvenientes) SIMD
-18
- Dificultad algorítmica (Veremos una
sistematización)
Soluciones?
19arqAva Introducción (Ejemplos de
máquinas) SIMD-19
- iWarp (1988-1992)
- 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 gt
64µP
iWarp Anatomy of a Parallel Computing System
1998
20arqAva Introducción (Ejemplos de
máquinas) SIMD-20
- SAMBA (1993-1995) www.irisa.fr/SAMBA
- Systolic Accelerator for Molecular Biological
Applications - Laboratorio IRISA de Rennes
- 1994 gt Chips con 4µP de 100MIPS (12bits) (Total
128µP)
1998 gt Speeding up genome computations with a
systolic accelerator Estudio genético gt 41 en
SAMBA y 127,5h en una WorkStation 1998 gt Chips
con 16..20µP más MIPS gt Todo en una tarjeta PCI
21arqAva Introducción (Ejemplos de
máquinas) SIMD-21
Empresa comprada en junio 2000 por Celera
Genomics Group. www.celera.com
22arqAva Introducción (Ejemplos de
máquinas) SIMD-22
- Procesador CSX700 Hoy
- www.clearspeed.com
- Convierta su PC en un supercomputador
9 Top500 11/06 TSUBAME Grid Cluster 29 Top500
11/08 56 Top500 11/09 GPUs
23arqAva Introducción (Ejemplos de
máquinas) SIMD-23
- DeCypher Engine G4 gt SeqCruncher Hoy
- www.timelogic.com
24arqAva Introducción (Ejemplos de
máquinas) SIMD-24
- Cell Hoy www.blachford.info/computer/Cell/Cell0_
v2.html
25arqAva Introducción (Ejemplos de
máquinas) SIMD-25
26arqAva Vectoriales (Definiciones) SIMD-26
Vector Conjunto ordenado de unidades de datos
escalares de un mismo tipo
27arqAva Vectoriales (Definiciones) SIMD-27
Vector Conjunto ordenado de unidades de datos
escalares de un mismo tipo
Stride ? tsize(tipo)
Utilidad?
28arqAva 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
LIMITACIONES! Más datos que U.P. Operaciones
escalares
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.
29arqAva Vectoriales (Definiciones) SIMD-29
Unidad Funcional Aritmética Segmentada
Registros Vectoriales
4 Etapas Sumar Exponentes Multiplicar
Mantisas Normalizar Redondear
30arqAva Vectoriales (Tipos de instrucciones)
SIMD-30
- TIPOS DE INSTRUCCIONES VECTORIALES
Unidad funcional segmentada
31arqAva Vectoriales (Tipos de instrucciones)
SIMD-31
Utilidad?
32arqAva Vectoriales (Tipos de instrucciones)
SIMD-32
33arqAva Vectoriales (Tipos de instrucciones) SIMD-
33
Utilidad?
Utilidad VM?
34arqAva Vectoriales (Memorias entrelazadas)
SIMD-34
Memoria multipuerto?
Cuántos bancos?
Acceso paralelo al vector V16 ?
Demasiado secuencial !
35arqAva Vectoriales (Memorias entrelazadas) SIMD-3
5
Para acceder a un vector en memoria (longElemento
palabra) DirInicio, NumElementos, Stride
(Separación entre elementos)
36arqAva Vectoriales (Memorias entrelazadas) SIMD-3
6
Stride1
Stride2?
Módulos
M7
M6
M5
M4
M3
M2
M1
M0
Tiempo
Ojo al ubicar matrices en memoria !
Stride 3?
37arqAva Vectoriales (Memorias entrelazadas) SIMD-3
7
Entrelazado de orden inferior Acceso Simultáneo
Memoria de 2ab palabras, de módulos m2a,
Palabras por módulo w2b
M0
M1
Mm-1
0
1
m-1
m
m1
2m-1
b
Ciclo de búsqueda
Dirección de memoria
2m
2m1
3m-1
módulo
palabra
a
m(w-1)
m(w-1)1
wm-1
RIM
RIM
RIM
Ciclo de acceso
Multiplexador
38arqAva Vectoriales (Memorias entrelazadas)
SIMD-38
Módulos
Ciclo de búsqueda
M7
M6
Ciclo de acceso
M5
M4
M3
M2
M1
Tiempo
M0
m palabras (8)
Pérdida de eficiencia para Stride ? 1
39arqAva Vectoriales (Funciones vectoriales
compuestas) SIMD-39
FUNCIONES VECTORIALES COMPUESTAS
BUCLE I1 HASTA 100 CARGA R1,X(I) CARGA
R2,Y(I) MULTIPLICA R1,S SUMA R2,R1 ALMACENA
Y(I), R2 FIN BUCLE
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?
40arqAva Vectoriales (Encadenamiento
hardware) SIMD-40
ENCADENAMIENTO HARDWARE
Una vez extraídos X e Y, hay que realizar 2
operaciones vectoriales
S X(I) Y(I)
Vx
Vector intermedio
Vector intermedio
2
S
Multiplicador
Sumador
Vy
Etapa de procesamiento
41arqAva 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)
42arqAva 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
43arqAva Vectoriales (Encadenamiento
hardware) SIMD-43
Carga X
Carga Y
S X
V Y
Almacena Y
t
Carga Y
Carga X
S X
V Y
Almacena Y
t
Carga X
Limitaciones Unidades Funcionales Registros
Vectoriales
Carga Y
S X
V Y
Almacena Y
t
44arqAva Vectoriales (Encadenamiento
hardware) SIMD-44
FIN