Upload
pink
View
71
Download
0
Embed Size (px)
DESCRIPTION
Procesadores Vectoriales y Matriciales. Unidad 3. Arquitecturas SIMD. Docente: Ing. José Díaz Chow. Taxonomía de Flynn SISD: Flujo simple de instrucciones , flujo simple de datos . SIMD: Flujo simple de instrucciones , flujo de múltiples datos . - PowerPoint PPT Presentation
Citation preview
Unidad 3. Arquitecturas SIMD
Procesadores Vectoriales y Matriciales
Docente: Ing. José Díaz Chow
Recordemos …
» Taxonomía de Flynn˃ SISD: Flujo simple de instrucciones, flujo simple de
datos.˃ SIMD: Flujo simple de instrucciones, flujo de
múltiples datos.˃ MISM: Flujo de múltiples instrucciones, flujo simple
de datos.˃ MIMD: Flujo de múltiples instrucciones, flujo de
múltiples datos.
Objetivos
» Explicar las necesidades que propiciaron la aparición de las Arquitecturas Vectoriales y Matriciales, estableciendo diferencias en el enfoque y solución que implementa cada una de ellas.
» Identificar el tipo y nivel de paralelismo alcanzado en procesadores vectoriales y matriciales.
» Explicar los tipos de Arquitecturas SIMD, tipo y nivel de paralelismo alcanzado en cada una de ellas.
Introducción
» Limitaciones de desempeño en el campo de la computación científica.
» Necesidad de procesar gran volumen de información.
» Necesidad de procesar vectores y Matrices, no solo escalares.
Introducción
» Algoritmos secuenciales para cálculo vectorial.» Ejemplo: Multiplicación de Matrices: C[] = A[] x B[]
- Algoritmo costoso: O(n3). FOR I = 1 TO N
FOR J=1 TO M
C[I,J] = 0.0
FOR K=1 TO L
C[I,J] = C[I,J]+A[I,K]*B[K,J]
END FOR
END FOR
END FOR N
t
Caracteristicas
» Colección o arreglo de datos.» Almacenados en celdas contiguas en la
memoria.» Independencia de datos (operación en
elemento [i, j] no depende de resultado en [i-1, j-1]).
» Una misma operación sobre todo un conjunto de datos.
Operaciones
» f1: V V (VSQRT, VSIN, VCOS )» f2: V E (VSUM:Sumatoria de elementos, VMAX,
VMIN)» f3: V x V V (VADD, VMP:Multiplicación de vectores o
matrices)» f4: V x E V (SMUL:Escalación del vector,
SADD:Desplazamiento)» f5: V x V E (SMP:Producto punto de vectores)
Exigencias
» Manejo de operandos vectoriales y escalares
» Algoritmos idóneos al cálculo vectorial: múltiples datos operados a la vez.
» Ejecución a alta velocidad: Transferencia desde memoria a alta velocidad.
Soluciones
» Procesadores Vectoriales˃ Utilizaron el beneficio de los cauces para acelerar
el rendimiento de cálculo vectorial.
» Procesadores Matriciales˃ Implementación de retículas de unidades de
ejecución denominadas EP (Elementos de Procesamiento) que pueden trasladar datos entre la memoria y otros EPs, y realizar operaciones con estos datos, ya sea síncrona o asincronamente.
Implementaciones
» Inicios de 1960: Proyecto Salomon en Westinghouse. ˃ 1 CPU coordinando múltiples ALUs˃ Nunca construido
» 1972: Illiac IV en la IU@Urbana : PA˃ Meta: 1 GFlop con 256 EP˃ Logrado: 100MFlop con 64 EP˃ Usado en cálculos de dinámica de fluidos.˃ Demostró la eficacia de los SIMD en cálculos intensivos
con matrices.
Implementaciones
» Mediados de los 70: CDC STAR-100 y Texas Instruments Advanced Scientific Computer TI-ASC.˃ Procesadores vectoriales˃ Aprovechamiento de la segmentación ˃ Escalaridad (cada cauce ~ 20 MFlops)˃ Máquinas Memoria-Memoria
» Mediados 70: Cray-1.˃ Supercomputador vectorial (80 a 240 Mflops)˃ Máquina Registro a Registro
+ Encadenamiento de vectores+ Enmascaramiento de vectores+ 64 registros vectoriales de 64 palabras
Implementaciones
» Finales 70: Supercomputadoras Japonesas Vectoriales ˃ Fujitsu, Hitachi y NEC˃ Máquinas Registro a Registro˃ Rendimiento similar al Cray pero menor tamaño.
» Finales 70: FPS Processor Array asociado.˃ Processor Array asociado para minicomputadoras.
» Finales 70 y 80’s: Cray-2, Cray X-MP y Cray Y-MP˃ Cray se mantiene como lider.˃ Migración de Vector Processor – Processor Arrays –
Multiprocesadores.
Implementaciones
» Otras formas de computación SIMD˃ Objetivo: Reducción del BW requerido por Processor Array.
˃ WaveFront Processors+ Principio de disparo y expansión.+ Procesamiento de señales: DSP, Multimedia
˃ Systolic Processors+ Cauce reticular
˃ Associative Processors+ Basado en memoria asociativa+ Operación aplicada a coincidencias.
Arquitecturas SIMD
» Procesadores Vectoriales˃ Arquitecturas Memoria a Memoria˃ Arquitecturas Registro a Registro
» Procesadores Matriciales˃ Array Processor˃ Systolic Processors˃ Associative Processors˃ Wavefront Processors
Procesadores vectoriales
» Las características y exigencias del procesamiento vectorial son propias para la ejecución segmentada.˃ Alto rendimiento con cauce lleno: resultados en cada ciclo. ˃ No riesgos estructurales, de datos o control.
» Exigencias: flujo de datos de entrada y la recepción de salida.
Procesadores vectoriales
» Arquitecturas que emplean cauces para procesamiento de vectores.
» Operación del cauce equivalente a ciclo completo. Reduce fetch, decode y control.
Procesadores vectoriales
» Cauces aritméticos.» Entradas: Vector –Vector o Vector-Escalar.» Salida a Vector o Escalar.» Requieren registros especiales para control de
la longitud del vector.» Formato especial de instrucción
Procesadores Vectoriales
» Esquemas o métodos de procesamiento para tratamiento de matrices˃ Procesamiento horizontal (filas: izq der)˃ Procesamiento vertical ( columnas: arriba abajo)˃ Procesamiento en bucle ( ciclos de sub-matrices )
» Tiempo de retardo de inicialización o preparación del cauce y de paso o flushing.
t = tinicialización + tpaso
Procesadores Vectoriales
» Entrada de datos/Recepción de salida a alta velocidad.˃ Desde Memoria (Requerido acceso rápido)˃ Usar registros vectoriales
» Dos enfoques de implementación:˃ Supercomputadores Vectoriales˃ Procesadores vectoriales Asociados
VP M – M
» Los operandos vectoriales residen en memoria.» Operación requiere carga de operandos a
cauces y almacenamiento de resultados a memoria al vuelo.
» Se requieren memorias de alta velocidad, ideal: entregar un par de datos y recibir un resultado por ciclo.
» Alto tiempo de preparación (típico ~20 ciclos)˃ Rendimiento favorecido con vectores grandes.
VP M – M
» Uso de memorias entrelazadas. ˃ Una búsqueda + ráfaga de datos.˃ Capacidad de entregar y recibir múltiples datos.
» Procesamiento en flujo continuo.
VP M – M
» Formato requiere especificar direcciones en memoria de los vectores y en algunas máquinas con palabras variables, el incremento o tamaño del elemento así como el tamaño del vector.
COP V1 V2 Vr Incr Tam
VP R-R
» Emplean banco de registros vectoriales. » Carga de Memoria a registros a alta velocidad.» Tamaño restringido de los registros vectoriales
(64, 72, 128 elementos)» Ejecución en partes para vectores largos.
VP R-R
» Menor tiempo de preparación y en general menor ciclo de máquina que la M-M.
» Mejor desempeño que M-M con vectores de longitud pequeña y mediana.
» Capacidad de enmascaramiento de elementos de vectores.
» Capacidad de encadenamiento de cauces.» Predominan sobre las M-M.
VP R-R
» Formatos de instrucción usan directamente registros vectoriales / escalares (Instrucciones de carga) o direcciones de memoria y registros a emplear.
COP RV1 RV2 RVr Tam
COP RV1 Tam@V2 Incr
VP R-R
» Múltiples unidades Vectoriales y Escalares.» Prefetch + Ejecución simultánea de varias instrucciones Tratar potenciales dependencias de datos.
M EM ORIAPRINCIPAL
UNIDAD DEPROCESAM IENTO DE
INSTRUCCIONES(IPU)
CO NTROLADOR DEACCESO VECTORIAL
CO NTROLADOR DEINSTRUCCIONES
VECTORIALES
BANCO DEREGISTROSESCALARES
BANCO DEREGISTROS
VECTORIALES
ProcesadorEscalar
ProcesadorVectorial
CAUCE 1
CAUCE 2
CAUCE n
CAUCE V1
CAUCE V2
CAUCE Vn
VP R-R
» Encadenamiento de cauces: ejecución paralela de varias instrucciones con dependencias R-D.
VP R-R
» Enmascaramiento de operaciones vectoriales.˃ Selección de qué elementos son sujetos de operación.
˃ Luego de operación C[] vale:
A[] = 1 2 3 4 5
B[] = 10 20 30 40 50
M1[] = 1 0 1 0 1
C[] = 7 7 7 7 7
C[] = 11 7 33 7 55