TEMA 3 PROCESADORES VECTORIALES - … · PROCESADORES VECTORIALES Proporcionan operaciones para...

Preview:

Citation preview

TEMA 3 PROCESADORES

VECTORIALES

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o

V e n t a j a s d e l o s p r o c e s a d o r e s v e c t o r i a l e s PROCESADORES VECTORIALES

Proporcionan operaciones para trabajar con vectores. Una sola instrucción trabaja sobre todos los elementos de un vector:

– El cálculo sobre los elementos de un vector suele ser independiente. Menos riesgos de datos.

– Los accesos a memoria siguen un patrón fijo. Los elementos de los vectores están ordenados.

– Se eliminan bucles y dependencia de control.

-Pueden trabajar también con operandos escalares.

ESQUEMA PROCESADOR VECTORIAL

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o

D L X v e c t o r i a l : D L X V Características del procesador

vectorial genérico Registros vectoriales: Hay de 8 a 256 registros para

almacenar vectores de 64 elementos por lo general(cada elemento de 64 bits).

• Unidades Funcionales Vectoriales: Totalmente segmentadas. Aceptan una nueva operación cada ciclo. Las hay Punto Flotante y enteras.

• Unidades Vectoriales de Carga y Almacenamiento: Totalmente segmentadas. También se ocupan de los accesos a memoria escalares.

• Registros escalares

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o

E j e m p l o s d e p r o c e s a d o r e s v e c t o r i a l e s

Características procesadores vectoriales comerciales

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o

O p e r a c i o n e s t í p i c a s e n e l D L X V Operaciones vectoriales

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o

E e m l o : S A X P Y / D A X P Y • O p e r a c i ó n S A X P Y ( D A X P Y e n d o b l e p r e c i s i ó n ) :

Y = a · X + Y V e c t o r e s d e 6 4

e l e m e n t o s d e 6 4 b i t s

Operaciones vectoriales

de manera escalar

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o Strip mining (troceado del vector)

MVL: máxima longitud del vector (64) VLR: longitud del vector en cada momento

Ejemplo

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I

D L X V

Operaciones vectoriales por filas o columnas

C = A · B

Operaciones vectoriales condicionales

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o

O p e r a c i o n e s v e c t o r i a l e s c o n d i c i o n a l e s

R e g i s t r o V e c t o r - M a s k ( V M ) :

V e c t o r d e l o n g i t u d M V L . L a s

o p e r a c i o n e s v e c t o r i a l e s s e

a p l i c a r á n a l e l e m e n t o i d e l

v e c t o r , s i y s ó l o s i e l b i t i - é s i m o

d e l V M e s t á a 1

Operaciones vectoriales condicionales

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o

S t r i p - m i n i n g • T i e m p o d e e j e c u c i ó n

elementoarranquen TnTT • n: número de elementos en cada vector • Tarranque: latencia de producir el primer resultado • Telemento: tiempo que se tarda en calcular el resto de

elementos

MEDIDA DEL RENDIMIENTO DE UN FRAGMENTO DE CÓDIGO VECTORIAL

n

nn

T

TFLOPSnR

)/ flotante comaen sOperacioneelementosn (

/

Convoy: conjunto de instrucciones que pueden ser emitidas simultáneamente al no existir dependencias verdaderas entre ellas ni riesgos estructurales

DEPENDENCIA RAW. SIN ENCADENAMIENTO

n

nT

FLOPSnR

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. No se permite riesgos estructurales

Encadenamiento sin solapamiento

Convoy: conjunto de instrucciones

que pueden ser emitidas simultáneamente al no existir dependencias verdaderas entre ellas ni riesgos estructurales

DEPENDENCIA RAW

Encadenamiento con solapamiento

LA UNIDAD FUNCIONAL DE CARGA/ALMACENAMIENTO VECTORIAL

Es capaz de mantener un ancho de banda sostenido de una palabra por ciclo de reloj tras la latencia de acceso inicial.

El tiempo de arranque corresponde con los tiempos de acceso a memoria.

El tiempo de elemento es el tiempo empleado desde un banco de memoria hasta un registro o viceversa

Instrucción de carga

Instrucción de almacenamiento

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a d e C o m p u t a d o r e s I J u a n A n t o n i o M a e s t r o

S t r i p - m i n i n g Y = a · X + Y

V e c t o r e s d e 6 4

e l e m e n t o s d e 6 4 b i t s

Medida del rendimiento de un bucle vectorizado

Strip mining (troceado)

A T 5 1 1 8 – A r q u i t e c t u r a e I n g e n i e r í a J u a n A n t o n i o M a e s t r o

S t r

elementoarranquebuclebasen TnTTMVL

nTT

)(

• n: número de elementos en cada vector • MVL: Longitud máxima del vector en la arquitectura • Tbase: tiempo que consumen las instrucciones escalares antes de abordar

el bucle exterior (que secciona el vector en secciones) Líneas 1,2,3 • Tbucle: Tiempo de gestión del bucle con operaciones escalares para

realizar el seccionamiento. Líneas 4,5,9,10 y 11 • Tarranque: Tiempo de inicio de las operaciones vectoriales de los convoyes

de instrucciones • Telemento: número de grupos vectoriales (convoyes) Líneas 6,7 y 8

Tiempo de ejecución de un bucle con stripmining:

Medida del rendimiento de un bucle vectorizado

)n es vectorialsOperacione

(limn

n TR

• MVL es 64 y la frecuencia de reloj es 500 Mhz. • Todas las operaciones vectoriales están segmentadas.

En el PROCESADOR VECTORIAL, 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.

• Tbase=10 ciclos, Tbucle=15 ciclos

CASO 1: Sin encadenamiento de

resultados entre unidades

elementoarranquebuclebasen TnTTMVL

nTT

)(

ciclos

elementos

ciclosTelemento 4

64

64646464

CASO 1: Sin encadenamiento de

resultados entre unidades

elementoarranquebuclebasen TnTTMVL

nTT

)(

CASO 1: Sin encadenamiento de

resultados entre unidades

CASO 2: Con encadenamiento de

resultados entre unidades

ciclos

elementos

ciclosTelemento 3

64

646464

CASO 2: Con encadenamiento de

resultados entre unidades

elementoarranquebuclebasen TnTTMVL

nTT

)(

CASO 2: Con encadenamiento de

resultados entre unidades

CASO 3: Con encadenamiento y dos unidades de

carga/almacenamiento

ciclos

elementos

ciclosTelemento 2

64

6464

CASO 3: Con encadenamiento y dos unidades de

carga/almacenamiento

elementoarranquebuclebasen TnTTMVL

nTT

)(

CASO 3: Con encadenamiento y dos unidades de

carga/almacenamiento

CASO 4: Con encadenamiento, dos unidades de carga/almacenamiento y

solapamiento entre convoyes dentro de la misma iteración

CASO 4: Con encadenamiento, dos unidades de carga/almacenamiento y

solapamiento entre convoyes dentro de la misma iteración

elementoarranquebuclebasen TnTTMVL

nTT

)(

CASO 4: Con encadenamiento, dos unidades de carga/almacenamiento y

solapamiento entre convoyes dentro de la misma iteración

examen 2012 (muy similar al ejercicio 3.11 y 3.12) está resuelto en Alf carpeta documentos. Allí están todas las soluciones a

problemas de examen de procesadores vectoriales)

Recommended