Procesadores Vectoriales



Documentos relacionados
13. Computadores vectoriales segmentados. 14. Computadores SIMD.

Programación Vectorial

PROGRAMACION VECTORIAL RAFAEL VALDÉS VALDAZO UO ÁNGEL MARÍA VILABOA PÉREZ UO BLOQUE PARALELAS 4º INFORMÁTICA UNIVERSIDAD DE OVIEDO

COMPUTADORES VECTORIALES (DLXV)

El procesador vectorial consta de:

Práctica 2 Procesadores vectoriales (I) 1. Práctica 2. Procesadores vectoriales (I)

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Arquitectura de Computadores Problemas (hoja 2). Curso

Procesadores vectoriales

COMPUTADORES SEGMENTADOS (DLX)

Planificación estática

Arquitectura de Computadores Problemas (hoja 4). Curso

Procesadores segmentados. El DLX.

TEMA 3 PROCESADORES VECTORIALES

AMPLIACIÓN DE ARQUITECTURA DE COMPUTADORES

Problema. Dispone del siguiente fragmento de código intermedio:

Arquitectura de los Ordenadores (Teoría) Final Junio Mañana Pág 1 APELLIDOS Y NOMBRE GRUPO Nº EXPEDIENTE

EXAMEN DE ARQUITECTURA II Septiembre, 2010

ARQUITECTURA DE COMPUTADORES I

ORDENADORES VECTORIALES

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso

Organización del Computador. Prof. Angela Di Serio

Arquitectura e Ingeniería de Computadores Problemas (hoja 3). Curso

PROCESADORES DE EMISIÓN MÚLTIPLE

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Tema IV. Unidad aritmético lógica

Arquitectura de Computadores Problemas (hoja 2). Curso

Evaluación del rendimiento de procesadores Intel Nehalem. Modelos x7550, x5670 y x5570

TIPOS DE PROCESAMIENTOS

Arquitecturas DSP. Phil Lapsley, Jeff Bier, Amit Shoham, Edward A. Lee DSP Processor Fundamentals. Architectures and Features IEEE Press 1997

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos

Tema 2. Diseño del repertorio de instrucciones

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano

TEMA 3 PROCESADORES VLIW (Very Long Instruction Word)

Estructura de Computadores

Espacios generados, dependencia lineal y bases

SOLUCION EXAMEN junio 2006

Tarea 4.2 Memoria Virtual

Modelo de aplicaciones CUDA

Estructura y Tecnología de Computadores (ITIG) Luis Rincón Córcoles Ángel Serrano Sánchez de León

Entorno de Ejecución del Procesador Intel Pentium

Plataformas de soporte computacional: arquitecturas avanzadas,

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Representación en Punto Flotante

PROCESADORES VECTORIALES

1) En un DLX con segmentación ejecutamos el siguiente fragmento de código:

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

1. Vectores 1.1. Definición de un vector en R2, R3 (Interpretación geométrica), y su generalización en Rn.

Segundo parcial de Sistemas Operativos. 24/6/2008. Ejercicios. 5 puntos. Duración 2h.

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

Ámbito Científico-Tecnológico Módulo III Bloque 2 Unidad 1 Quien parte y reparte, se lleva la mejor parte

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE

VECTORES EN EL PLANO

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

Tema 1. Introducción a los computadores

Taller de Informática I Dpto. Computación F.C.E. y N. - UBA 2010

3.8 Construcción de una ALU básica

Aritmética finita y análisis de error

Guía para comparar presupuestos de Traducción

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Tema 3. Medidas de tendencia central Introducción. Contenido

Extensiones multimedia Intel

De acuerdo con sus características podemos considerar tres tipos de vectores:

Definición de vectores

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio

CIRCUITOS ARITMÉTICOS. Tema 5: CIRCUITOS ARITMÉTICOS

Capítulo 12: Indexación y asociación

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed

Unidad V: Integración

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

Organización de Computadoras. Turno Recursantes Clase 8

Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción

ARQUITECTURA DE COMPUTUTADORAS II

Resolución de problemas en paralelo


Control y temporización Comunicación con la CPU Comunicación con el dispositivo externo Almacén temporal de datos Detección de errores

2.4. Modos de direccionamiento Distintas formas que tiene la arquitectura para especificar la ubicación de los operandos.

Presentación de la materia Historia de las computadoras

1. Representación de la información en los sistemas digitales

UNIDAD Nº 1: 1. SISTEMAS DE NUMERACION. Formalizado este concepto, se dirá que un número X viene representado por una cadena de dígitos:

TEMA 1 Representación de la información

Espacios vectoriales y aplicaciones lineales.

Sesión No. 12. Contextualización: Nombre de la sesión: SAP segunda parte PAQUETERÍA CONTABLE

Curso de seguridad informática en el entorno docente. Sesión 4. PONENTE: Jaime López Soto.

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012

COMPUTADORES SEGMENTADOS (DLX)

Arquitecturas CISC y RISC

Métricas de Rendimiento

Electrónica Digital. Conceptos Digitales. Dr. Oscar Ruano

Transcripción:

Procesadores Vectoriales Curso 2011-2012

Por qué procesamiento vectorial? La segmentación tiene límites: Si se aumenta mucho el número de etapas, baja el ciclo de reloj, pero aumentan las dependencias. Esto conlleva a un mayor CPI. Velocidad de lectura de instrucciones: Es difícil traer instrucciones de memoria con una velocidad de lectura alta (cuello de botella de Flynn).

Ventajas de los procesadores vectoriales Proporcionan operaciones para trabajar con vectores. Una sola instrucción trabajo sobre todos los elementos de un vector: El cálculo sobre los elementos de un vector suele ser independiente. Menos riesgos de datos. El número de instrucciones es bajo. Se mitiga el cuello de botella de Flynn. Los accesos a memoria siguen un patrón fijo. Los elementos de los vectores están ordenados. Se eliminan bucles y dependencia de control.

DLX vectorial: DLXV

DLX vectorial: DLXV Registros vectoriales: Hay 8 registros para almacenar vectores de 64 elementos (cada elemento de 64 bits). Unidades Funcionales Vectoriales: Totalmente segmentadas. Aceptan una nueva operación cada ciclo. Hay 5 (3 en Punto Flotante y 2 enteras). Unidades Vectoriales de Carga y Almacenamiento: Totalmente segmentadas. También se ocupan de los accesos a memoria escalares. Registros escalares: Los del DLX. 32 GPR y 32 FPR de 32 bits.

Ejemplos de procesadores vectoriales

Operaciones típicas en el DLXV

Ejemplo: SAXPY / DAXPY Operación SAXPY (DAXPY en doble precisión): DAXPY LD F0,a ADDI R4,Rx,#512 Loop: LD F2,0(Rx) MULTD F2,F0,F2 LD F4,0(Ry) ADDD F4,F2,F4 SD 0(Ry),F4 ADDI Rx,Rx,#8 ADDI Ry,Ry,#8 SUB R20,R4,Rx BNEZ R20,Loop Y = a X + Y Vectorización Vectores de 64 elementos de 64 bits LD LV MULTSV LV ADDV SV F0,a V1,Rx V2,F0,V1 V3,Ry V4,V2,V3 Ry,V4 Se reduce el número de instrucciones que se traen de memoria y los riesgos de datos

Operaciones vectoriales Todas las operaciones vectoriales están segmentadas. En el DLXV, la suma tiene un tiempo de inicio de 6 ciclos, y la multiplicación de 7. Las operaciones aritméticas tienen latencia 1. Las cargas y almacenamientos en memoria también están segmentadas, con un tiempo de inicio de 12 ciclos. Pueden realizarse operaciones en paralelo, siempre que existan múltiples puertos de lectura y escritura en la memoria.

Operaciones vectoriales Grupo: Conjunto de instrucciones vectoriales que pueden ejecutarse en paralelo. No pueden tener ningún tipo de riesgo entre ellas. Tiempo de grupo: Tiempo aproximado de ejecución de una instrucción vectorial. Es independiente del número de elementos del vector. m grupos con una longitud de vector de n, tardarían m n ciclos. Esto no es exacto, ya que falta el tiempo de iniciación de las operaciones.

Ejemplo de operaciones vectoriales DAXPY LV MULTSV LV ADDV SV V1,Rx V2,F0,V1 V3,Ry V4,V2,V3 Ry,V4 Tiempo de ejecución: 4 instantes + Iniciación de cada uno de los grupos. En este caso, no hay anticipación de datos 4 grupos: 1. LV 2. MULTSV LV 3. ADDV 4. SV

Strip-mining Operación SAXPY (DAXPY en doble precisión): Y = a X + Y low = 0; VL = n % MVL; for (j=0;j<=(n/mvl);j++) { for (i=low;i<=low+vl-1;i++) Y[i]= a*x[i] + Y[i]; low = low + VL; VL = MVL; } Vectores de 64 elementos de 64 bits Vectorizable

Strip-mining Tiempo de ejecución de un bucle con stripmining: T n = n ( T + T bucle inicio MVL ) + n T grupo n: número de elementos en cada vector MVL: Longitud máxima del vector en la arquitectura T bucle : Tiempo de gestión del bucle T inicio : Tiempo de inicio de las operaciones vectoriales T grupo : número de grupos vectoriales

Tiempo de ejecución de DAXPY T n = n ( T + T + bucle inicio MVL ) T n n = (15 + 42) + 4 64 n T MVL: 64 T bucle : 15 (estimado genérico) T inicio : Suma de tiempos de inicio de operaciones ( LV+max(MULTSV,LV)+ADDV+SV = 12+12+6+12). T grupo : 4 grupos n grupo

Encadenamiento MULTV V1,V2,V3 ADDV V4,V1,V5 Encadenamiento: La salida de una instrucción se anticipa a la entrada de la siguiente. El tiempo de ejecución viene dado por el número de elementos del vector (número de ciclos) más las iniciaciones de las instrucciones.

Operaciones vectoriales condicionales for (i=0;i<64;i++) { if (A[i]!= 0) A[i] = A[i] - B[i]; } Registro Vector-Mask (VM): Vector de longitud MVL. Las operaciones vectoriales se aplicarán al elemento i del vector, si y sólo si el bit i-ésimo del VM está a 1 LV V1,Ra LV V2,Rb LD F0,#0 SNESV F0,V1 SUBV V1,V1,V2 CVM SV Ra,V1

Nivel de vectorización Nivel de vectorización sobre el benchmark Perfect Club:

Medidas del rendimiento vectorial R : Tasa de MFLOPS considerando vectores de longitud infinita. N 1/2 : Longitud de vector necesaria para conseguir un rendimiento igual a la mitad de R. N v : Longitud de vector necesaria para que el modo de operación vectorial produzca un mejor rendimiento que el modo escalar.