28
Unidad 3. Arquitecturas SIMD Procesadores Vectoriales y Matriciales Docente: Ing. José Díaz Chow

Unidad 3. Arquitecturas SIMD

  • Upload
    pink

  • View
    60

  • 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

Page 1: Unidad 3.  Arquitecturas SIMD

Unidad 3. Arquitecturas SIMD

Procesadores Vectoriales y Matriciales

Docente: Ing. José Díaz Chow

Page 2: Unidad 3.  Arquitecturas SIMD

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.

Page 3: Unidad 3.  Arquitecturas SIMD

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.

Page 4: Unidad 3.  Arquitecturas SIMD

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.

Page 5: Unidad 3.  Arquitecturas SIMD

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

Page 6: Unidad 3.  Arquitecturas SIMD

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.

Page 7: Unidad 3.  Arquitecturas SIMD

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)

Page 8: Unidad 3.  Arquitecturas SIMD

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.

Page 9: Unidad 3.  Arquitecturas SIMD

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.

Page 10: Unidad 3.  Arquitecturas SIMD

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.

Page 11: Unidad 3.  Arquitecturas SIMD

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

Page 12: Unidad 3.  Arquitecturas SIMD

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.

Page 13: Unidad 3.  Arquitecturas SIMD

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.

Page 14: Unidad 3.  Arquitecturas SIMD

Arquitecturas SIMD

» Procesadores Vectoriales˃ Arquitecturas Memoria a Memoria˃ Arquitecturas Registro a Registro

» Procesadores Matriciales˃ Array Processor˃ Systolic Processors˃ Associative Processors˃ Wavefront Processors

Page 15: Unidad 3.  Arquitecturas SIMD

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.

Page 16: Unidad 3.  Arquitecturas SIMD

Procesadores vectoriales

» Arquitecturas que emplean cauces para procesamiento de vectores.

» Operación del cauce equivalente a ciclo completo. Reduce fetch, decode y control.

Page 17: Unidad 3.  Arquitecturas SIMD

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

Page 18: Unidad 3.  Arquitecturas SIMD

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

Page 19: Unidad 3.  Arquitecturas SIMD

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

Page 20: Unidad 3.  Arquitecturas SIMD

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.

Page 21: Unidad 3.  Arquitecturas SIMD

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.

Page 22: Unidad 3.  Arquitecturas SIMD

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

Page 23: Unidad 3.  Arquitecturas SIMD

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.

Page 24: Unidad 3.  Arquitecturas SIMD

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.

Page 25: Unidad 3.  Arquitecturas SIMD

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

Page 26: Unidad 3.  Arquitecturas SIMD

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

Page 27: Unidad 3.  Arquitecturas SIMD

VP R-R

» Encadenamiento de cauces: ejecución paralela de varias instrucciones con dependencias R-D.

Page 28: Unidad 3.  Arquitecturas SIMD

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