La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Unidad 3. Arquitecturas SIMD

Presentaciones similares


Presentación del tema: "Unidad 3. Arquitecturas SIMD"— Transcripción de la presentación:

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

2 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. Recordemos …

3 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. Objetivos

4 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

5 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 t N Introducción

6 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. Caracteristicas

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

8 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. Exigencias

9 Soluciones Procesadores Vectoriales Procesadores Matriciales
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. Soluciones

10 Implementaciones Inicios de 1960: Proyecto Salomon en Westinghouse.
1 CPU coordinando múltiples ALUs Nunca construido 1972: Illiac IV en la : 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

11 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

12 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

13 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. Implementaciones

14 Arquitecturas SIMD Procesadores Vectoriales Procesadores Matriciales
Arquitecturas Memoria a Memoria Arquitecturas Registro a Registro Procesadores Matriciales Array Processor Systolic Processors Associative Processors Wavefront Processors Arquitecturas SIMD

15 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

16 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

17 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

18 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

19 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 Procesadores Vectoriales

20 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

21 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

22 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. VP M – M

23 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

24 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

25 Formatos de instrucción usan directamente registros vectoriales / escalares (Instrucciones de carga) o direcciones de memoria y registros a emplear. VP R-R

26 VP R-R Múltiples unidades Vectoriales y Escalares.
Prefetch + Ejecución simultánea de varias instrucciones  Tratar potenciales dependencias de datos. VP R-R

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

28 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[] = C[] = 7 C[] = 11 7 33 55 VP R-R


Descargar ppt "Unidad 3. Arquitecturas SIMD"

Presentaciones similares


Anuncios Google