Unidad 3. Arquitecturas SIMD

Slides:



Advertisements
Presentaciones similares
Arquitectura RISC & CISC y DSP
Advertisements

Dispositivos de Entrada y Salida
El modelo de Von Neumann
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
1.3. PROGRAMACION PARALELA
Tipos de Organización ... La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid.
Organización y arquitectura de sistemas de memoria
Multiprocesadores 3.1 Dominios de aplicación
Arquitectura de Computadores I
PROCESADORES SUPERESCALARES
Computación PROGRAMACIÓN.
Fecha: 11/09/13.  Todos los sistemas distribuidos constan de varias CPU, organizadas de diversas formas.  La forma de interconectarlas entre sí. 
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
Clasificación de las Computadoras
Pipelines: Riesgos.
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
El procesador: la ruta de datos y el control (II Parte)
EMISION MULTIPLE DE INSTRUCCIONES
Arquitectura de Conjunto de Instrucciones (ISA)
CLASIFICACIÓN DE COMPUTADORAS
Composición Interna de un Procesador
Tema 6: Procesadores Vectoriales
Arquitectura del Computador
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tipos de Computadoras Deacuerdo a lo o que Procesan y su velocidad. Herramientas Computacionales 1 Instituto de Ciencias y Estudios Superiores de Tamaulipas.
ARQUITECTURAS SIMD TIPOS
ARQUITECTURA DE MÁQUINAS COMPUTADORAS III
P(C) = m * nMAXIMO GRADO DE PARALELISMO WSBS ha sido llamado el procesamiento en serie de bits, ya que se procesa un bit por vez (n = m = 1). Es el procesamiento.
5º Microprocesadores para comunicaciones
Procesamiento paralelo
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Unidad 3. Arquitecturas SIMD
Segmentación No Lineal
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
Clase 10: Estructuras de datos y arreglos.
Arquitectura de Máquinas Computadoras II
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
(Organización y Manejo de Archivos)
Contenido Marco de referencia Arquitectura de computadoras paralelas
Asignación de Espacio No Contiguo
ARQUITECTURAS SIMD Clase Práctica No Vector Processor M-M 1. Estime el tiempo de ejecución de una suma vectorial en un Vector Processor M-M basado.
CLASIFICACIÓN DE LAS COMPUTADORAS
Electrónica aplicada al tratamiento de datos Procesadores digitales de señal (PDS) DSP: Digital Signal Processors (procesadores) DSP: Digital.
TEMA 2: Organización de computadores
Organización de Computadoras
Clasificación de las Computadoras
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.
Arquitecturas Paralelas
Arquitectura de Von Neumann
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
“Organización y Arquitectura de Computadores” William Stallings
PROCESADORES DE SEÑALES DE VIDEO VSP2000 PALOMA FUENTES Microprocesadores para Comunicaciones – 5º ETSIT.
CLASIFICACION DE LAS COMPUTADORAS
Utiliza un reloj para sincronizar la entrada y salida de señales en un chip de memoria. Ahorra tiempo al ejecutar los comandos y al transmitir los datos.
ARQUICTECTURA DE SERVIDORES
COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS.
Clasificación Computador
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
* UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNIC IONES ADMINISTRACION DE SERVIDORES «ARQUITECTURA DE COMPUTADORAS»
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Ingeniería en Computación Centro Universitario UAEM Valle de México Arquitectura de Computadoras Elaborado por: Dra. Maricela Quintana López.
Clasificación de las Computadoras
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
1 TEMA 2: Organización de computadores Procesadores Memorias Dispositivos de E/S.
Transcripción de la presentación:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. VP R-R

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

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

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