Upload
hoangdien
View
221
Download
0
Embed Size (px)
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)